Pages

Saturday, 4 August 2012

Zpanel installation

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!)

No comments:

Post a Comment