PREPARING THE SERVER:
edit /etc/selinux/config
SELINUX=disabled
save and quit, reboot
chkconfig --levels 235 sendmail off
/etc/init.d/sendmail stop
yum remove sendmail
yum remove vsftpd
service iptables save
service iptables stop
chkconfig iptables off
OR
/etc/init.d/iptables save
/etc/init.d/iptables stop
chkconfig --levels 235 iptables off
yum update
*May already be installed, but we will just make sure...
yum install sudo
yum install make
yum install zip
yum install wget
EXTRACT ZPANEL:
*Download and extract the archive to your machine (anywhere)
tar -xvf zpanel.tar.gz
cd zpanel/etc/build/
chmod +x prepare.sh
./prepare.sh
cp -R ../../* /etc/zpanel/panel/
chmod -R 777 /etc/zpanel/
chmod -R 777 /var/zpanel/
chmod 644 /etc/zpanel/panel/etc/apps/phpmyadmin/config.inc.php
*Copy the CentOS 6.2 config pack...
cp -R /etc/zpanel/panel/etc/build/config_packs/centos_6_2/* /etc/zpanel/configs/
MAIN PACKAGES:
yum install httpd php php-devel php-gd php-mbstring php-imap php-mysql php-xml php-xmlrpc curl curl-devel perl-libwww-perl libxml2 libxml2-devel mysql-server zip webalizer gcc gcc-c++ httpd-devel at make mysql-devel bzip2-devel
CONFIGURE MYSQL
chkconfig --levels 235 mysqld on
service mysqld start
/usr/bin/mysql_secure_installation
*Set new password and accept defaults.
SET ZPANEL DATABASE CONFIG:
edit /etc/zpanel/panel/cnf/db.php
$host = "localhost";
$dbname = "zpanel_core";
$user = "root";
$pass = "YOUR_ROOT_MYSQL_PASSWORD";
import zpanel database:
mysql -uroot -pYOUR_ROOT_MYSQL_PASSWORD < /etc/zpanel/configs/zpanel_core.sql
SET ZPANEL APACHE CONFIG:
edit /etc/httpd/conf/httpd.conf
At end of file add: Include /etc/zpanel/configs/apache/httpd.conf
*Change default docroot
edit /etc/httpd/conf/httpd.conf change Docroot to:
DocumentRoot "/etc/zpanel/panel"
*Set ZPanel Network info and compile the default vhost.conf
/etc/zpanel/panel/bin/setso --set zpanel_domain CONTROLPANEL.YOURDOMAIN.COM
/etc/zpanel/panel/bin/setso --set server_ip YOUR_PUBLIC_IP_ADDRESS
php /etc/zpanel/panel/bin/daemon.php
echo "127.0.0.1 CONTROLPANEL.YOURDOMAIN.COM" >> /etc/hosts
chkconfig --levels 235 httpd on
service httpd start
echo "apache ALL=NOPASSWD: /etc/zpanel/panel/bin/zsudo" >> /etc/sudoers
POSTFIX-DOVECOT (CentOS6 uses Dovecot2):
yum install postfix dovecot dovecot-mysql
mkdir -p /var/zpanel/vmail
chmod -R 777 /var/zpanel/vmail
chmod -R g+s /var/zpanel/vmail
groupadd -g 5000 vmail
useradd -m -g vmail -u 5000 -d /var/zpanel/vmail -s /bin/bash vmail
chown -R vmail.vmail /var/zpanel/vmail
mysql -uroot -pYOUR_ROOT_MYSQL_PASSWORD < /etc/zpanel/configs/postfix/zpanel_postfix.sql
# Postfix Master.cf
echo "# Dovecot LDA" >> /etc/postfix/master.cf
echo "dovecot unix - n n - - pipe" >> /etc/postfix/master.cf
echo ' flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d ${recipient}' >> /etc/postfix/master.cf
*Edit these files and add mysql root and password:
/etc/zpanel/configs/postfix/conf/dovecot-sql.conf
/etc/zpanel/configs/postfix/conf/mysql_relay_domains_maps.cf
/etc/zpanel/configs/postfix/conf/mysql_virtual_alias_maps.cf
/etc/zpanel/configs/postfix/conf/mysql_virtual_domains_maps.cf
/etc/zpanel/configs/postfix/conf/mysql_virtual_mailbox_limit_maps.cf
/etc/zpanel/configs/postfix/conf/mysql_virtual_mailbox_maps.cf
/etc/zpanel/configs/postfix/conf/mysql_virtual_transport.cf
mv /etc/postfix/main.cf /etc/postfix/main.old
ln /etc/zpanel/configs/postfix/conf/main.cf /etc/postfix/main.cf
mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.old
ln -s /etc/zpanel/configs/dovecot2/dovecot.conf /etc/dovecot/dovecot.conf
*Edit /etc/zpanel/configs/postfix/conf/main.cf
myhostname = control.yourdomain.com
mydomain = control.youromain.com
chkconfig --levels 345 postfix on
chkconfig --levels 345 dovecot on
service postfix start
service dovecot start
*Server will need a reboot for postfix to be fully functional
ROUNDCUBE:
mysql -uroot -pYOUR_ROOT_MYSQL_PASSWORD < /etc/zpanel/configs/roundcube/zpanel_roundcube.sql
edit /etc/zpanel/panel/etc/apps/webmail/config/db.inc.php
$rcmail_config['db_dsnw'] = 'mysql://root:YOUR_ROOT_MYSQL_PASSWORD@localhost/zpanel_roundcube';
PROFTPD:
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -Uvh epel-release*rpm
yum install proftpd proftpd-mysql
mysql -uroot -pYOUR_ROOT_MYSQL_PASSWORD < /etc/zpanel/configs/proftpd/zpanel_proftpd.sql
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser
/** IF WE WANT TO NOT USE ROOT THEN WE CAN DO THIS
mysql -u root -p
create database zpanel_proftpd;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Replace the string password with whatever password you want to use for the MySQL user proftpd.
**/
edit /etc/zpanel/configs/proftpd/proftpd-mysql.conf, replace with your credentials: SQLConnectInfo DATABASE@localhost USER PASSWORD
*** Format is: SQLConnectInfo DATABASE@localhost USER PASSWORD
SQLConnectInfo zpanel_proftpd@localhost root password
mv /etc/proftpd.conf /etc/proftpd.old
touch /etc/proftpd.conf
echo "include /etc/zpanel/configs/proftpd/proftpd-mysql.conf" >> /etc/proftpd.conf
mkdir /var/zpanel/logs/proftpd
chmod -R 644 /var/zpanel/logs/proftpd
chkconfig --levels 345 proftpd on
service proftpd start
BIND:
yum install bind bind-utils bind-libs
CONFIGURE BIND AS NEEDED - ONCE RUNNING INCLUDE ZPANEL NAMED PATH
echo 'include "/etc/zpanel/configs/bind/etc/named.conf";' >> /etc/named.conf
chkconfig --levels 345 named on
service named start
ZPANEL ZSUDO:
# Must be owned by root with 4777 permissions, or zsudo will not work!
cc -o /etc/zpanel/panel/bin/zsudo /etc/zpanel/configs/bin/zsudo.c
sudo chown root /etc/zpanel/panel/bin/zsudo
chmod +s /etc/zpanel/panel/bin/zsudo
ZPANEL DAEMON:
touch /etc/cron.d/zdaemon
echo "*/5 * * * * root /usr/bin/php -q /etc/zpanel/panel/bin/daemon.php >> /dev/null 2>&1" >> /etc/cron.d/zdaemon
# Permissions must be 644 or cron will not run!
sudo chmod 644 /etc/cron.d/zdaemon
service crond restart
REBOOT SERVER
Browse to http://CONTROLPANEL.YOURDOMAIN.COM (Or by your server IP) http://xxx.xxx.xxx.xxx
USER: zadmin
PASS: password (Change on 1st login!)