Eugeny / ajenti-v

Virtual Hosting addon for Ajenti
ajenti.org/#product-ajenti-v
MIT License
225 stars 79 forks source link

CentOS 7 #92

Open cawilliamson opened 10 years ago

cawilliamson commented 10 years ago

Hello there!

I may be missing something here but I have installed a fresh CentOS 7 build and Ajenti is installed and running just fine. The problem is - whenever I try to install Ajenti-V on this box I receive the following output:

[root@localhost ~]# yum install ajenti-v ajenti-v-nginx ajenti-v-mysql ajenti-v-php-fpm php-mysql ... snip ... --> Finished Dependency Resolution Error: Package: nginx-1.4.2-16.1.x86_64 (ajenti) Requires: libpcre.so.0()(64bit) Error: Package: supervisor-3.0-13.1.noarch (ajenti) Requires: python(abi) = 2.6 Installed: python-2.7.5-16.el7.x86_64 (@anaconda) python(abi) = 2.7 python(abi) = 2.7 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

It looks like CentOS 7 uses Python 2.7 by default now and your build of supervisor is expecting python 2.6. There also appears to be an issue with the libpcre.

Other than that - these appear to be the only issues with CentOS 7 and Ajenti-V at this point which is pretty good going considering how new the distro version is!

Eugeny commented 10 years ago

I've updated the repo, please try again (yum clean metadata)

cawilliamson commented 10 years ago

Now that is impressive!

Fixed already! Thanks a lot!

cawilliamson commented 10 years ago

I've found another issue related to CentOS 7 - this time in the form of libgdbm.

Strangely - pure-ftpd appears to be missing from the CentOS 7 repo too. I could use vsftpd as an alternative to that but the libgdbm issue does prevent me from running a mail server at the moment.

[root@server ~]# yum -y install ajenti-v-mail ajenti-v-ftp-pureftpd ... snip ... --> Finished Dependency Resolution Error: Package: ajenti-v-ftp-pureftpd-0.1.3-1.noarch (ajenti) Requires: pure-ftpd Error: Package: courier-authlib-userdb-0.64.0-1.el6.x86_64 (ajenti) Requires: libgdbm.so.2()(64bit) Error: Package: courier-authlib-0.64.0-1.el6.x86_64 (ajenti) Requires: libgdbm.so.2()(64bit) Error: Package: courier-imap-4.9.3-1.x86_64 (ajenti) Requires: libgdbm.so.2()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

Eugeny commented 10 years ago

It's actually me reading both FB and Github here :) I'm working to get proper EL7 packages atm.

Eugeny commented 10 years ago

Well, it looks like there are no Courier and Pure-FTPd packages for EL7 yet :(

cawilliamson commented 10 years ago

That explains it! :(

I'll use vsftpd for now in that case and I'll probably just install postfix as an MTA since I don't use the server specifically as a mail server other than mailing out alerts, etc.

Thank you for taking the time to look in to this - much appreciated.

cawilliamson commented 10 years ago

Found another one but this is pretty small...

I can't enable the puma module for ajenti-v because of a missing dependency of 'bundler' which would make sense... but it's actually installed as confirmed by:

[root@server ~] # which bundler /usr/local/rvm/gems/ruby-2.1.2/bin/bundler

I was able to hack a workaround together by adding the following line to the init script:

... echo "Starting $NAME:" export PATH=/usr/local/rvm/gems/ruby-2.1.2/bin:$PATH export LC_CTYPE=en_US.UTF8 ...

I know this is because the binary is obviously outside of the standard system PATH variable but as far as I'm aware init scripts are typically executed with /etc/profile sourced if I'm not mistaken? As such, the PATH variable should be defined and should include the above mentioned path as a result.

I'm not clear if this is an issue or just human error on my part? If this is an issue - I'd be curious to know if this is specific to CentOS 7. I was running Ajenti on debian earlier on today and I installed things the same way - as soon as I had installed bundler via rvm on Debian it found the binary right away.

CentOS 7 obviously uses systemd which may be breaking things here.

Eugeny commented 10 years ago

Well the Bundler has to be on the services' $PATH (not only on Ajenti's path but also on Supervisor's) for Bundler-enabled ruby websites to work in Ajenti V. I guess symlinking bundle binary to /usr/bin is an acceptable solution here?

cawilliamson commented 10 years ago

Yup, that'll work!

Reverted the init script change and things are working well with that change in place.

So we're just waiting on CentOS/RHEL to release courier and pure-ftpd packages and we should have a complete build here. I'm not too worried about those right now though - pure-ftpd would be nice but I can live with vsftpd for now.

Thanks for the help once again!

skylineservers commented 10 years ago

http://support.ajenti.org/topic/423530-installing-ajenti-v-on-centosrhel/ This page doesn't reveal that ajenti-v-ftp-vsftpd is an available package. I'd rather use vsftp anyways so this was exciting to finally discover after repeatedly failing to get pure-ftpd working on centos 7. Works great now :)

Edit: Ah, so the vsftpd plugin doesn't work so well, that's why it's not listed. @cawilliamson can you elaborate on your vsftpd setup so I can get everything working smoothly on centos7? Thanks!

Eugeny commented 10 years ago

@skylineservers I decided to hide it because many users had unreproducible problems with vsftpd and authentication.

skylineservers commented 10 years ago

@Eugeny yes I see now. I ended up compiling pure-ftpd from source and have it achingly close to perfectly functional, but I'm still having the same issue with basic authentication. I've got the plugin happy so that when I click "save" in the ftp tab it writes the new user and runs pure-pw mkdb successfully (and I see the users with pure-pw list), yet authentication fails each time. Your plugin successfully wrote the /etc/pure-ftpd/pure-ftpd.conf file. Any ideas what might be preventing the auth? Very grateful for your hard work!

Eugeny commented 10 years ago

@skylineservers anything on the pureftpd log? Syslog? auth.log?

skylineservers commented 10 years ago

Wow, centos7/systemd is such a joy ride. In case it helps anyone, here's a loose guide on how I got pure-ftpd compiled and installed. What's interesting is that when I tried to do this fresh on a dev environment, it worked pretty smoothly except that ajenti wouldn't recognize the binaries for pure-pw and pure-ftpd in the plugins page. Interestingly, though, it would recognize these binaries if I ran ajenti-panel -v for debug mode, letting me add new ftp users via the FTP tab in Ajenti. . Even though I got pretty far with this, the PAM auth still completely stopped it from authenticating. I eventually ended up dropping it in favor of vsftpd so we could just use the system users to authenticate instead of creating the new database of users within pure-ftpd.

yum install pam-devel gcc -y
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz
tar -zxvf pure-ftpd-1.0.36.tar.gz
cd pure-ftpd-1.0.36
./configure --prefix=/usr/local/pure-ftpd --with-everything --with-puredb --with-pam --with-altlog
make && make install
mkdir /usr/local/pure-ftpd/etc/
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/
cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl
cd /usr/local/bin/
ln -s /usr/local/pure-ftpd/bin/pure-* .
ls -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/share/man/man8/* /usr/local/share/man/man8/
ln -s /usr/local/pure-ftpd/etc/pure-ftpd.conf /etc/
mkdir /etc/pure-ftpd
ln -s /usr/local/pure-ftpd/etc/pure-ftpd.conf /etc/pure-ftpd/
touch /usr/local/pure-ftpd/etc/pureftpd.passwd
ln -s /usr/local/pure-ftpd/etc/pureftpd.passwd /etc/pure-ftpd/ 
pure-pw mkdb
rpm -ivh --nodeps http://repo.ajenti.org/ng/centos/7.3/ajenti-v-ftp-pureftpd-0.1.4-1.noarch.rpm 
Rewt0r commented 10 years ago

Currently having issues installing the mysql plugin on CentOS 7 following http://support.ajenti.org/topic/423530-installing-ajenti-v-on-centosrhel/:

Error: Package: ajenti-v-mysql-0.3.1-1.noarch (ajenti) Requires: mysql-server You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest

louislam commented 10 years ago

@Rewt0r

I resolved the problem by adding the mysql-community repo. (Linux things are killing me in deep)

sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Rewt0r commented 10 years ago

I already have a MySQL server installed, is there no way to install ajenti to use current configuration? I don't mind setting up the servers through SSH I just thought Ajenti looked pretty good and was about to give it a try.

arkhej commented 5 years ago

Well the Bundler has to be on the services' $PATH (not only on Ajenti's path but also on Supervisor's) for Bundler-enabled ruby websites to work in Ajenti V. I guess symlinking bundle binary to /usr/bin is an acceptable solution here?

Hello, I tried to create the symlink but doesn't work. There is a new way to solve this? I'm using Debian 9.9 + Ruby 2.6.3

Thanks!