#!/bin/bash os=`cat /etc/issue |grep -c CentOS` if [ $os = "0" ]; then echo "This script work only on CentOS. Exit." exit fi echo "Enter username to create (default, admin):" # введите имя зера чтобы создать его( дефолт - админ) read USER echo "This host is VPS? (yes/no. Default, no):" # Этот хост является ВПСкой, по дефолту НЕТ! read thisvps echo "Use Remi repos? (yes/no. Default, yes):" # использовать репозиторий реми. read useremi if [ -z $USER ]; then USER=admin fi if [ -z $thisvps ]; then thisvps=no fi if [ -z $useremi ]; then useremi=yes fi confighost=linux-notes.org # тут нужно прописать свой ХОСТ! USERPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15` SQLPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15` thiswebazilla=`uname -a | grep -c "webazilla"` sestat=`sestatus|grep -c enabled` if [ $sestat = "1" ]; then sed -i 's/enforcing/disabled/gi' /etc/selinux/config sed -i 's/permissive/disabled/gi' /etc/selinux/config chkconfig sshd on echo "Need reboot to SELinux disable ... After reboot run script again" exit fi checkarch=`uname -a | grep -c "i386"` if [ $checkarch = "1" ]; then PL=i386 else PL=x86_64 fi # check to exist homedir if [ ! -d /home ]; then echo "/home is no exist! setup canceled." exit fi iptables -F iptables -X /etc/init.d/iptables save # add additional dns servers, OpenDNS echo "nameserver 8.8.8.8" >> /etc/resolv.conf # Нужно прописать ДНСы сервера, так как у меня это 8.8.8.8, то я и записал их. mkdir /root/.ssh cd /root/.ssh chown -R root /root chmod -R 400 /root if [ $thisvps = "no" ]; then cd /etc rm -f /etc/sysctl.conf wget http://$confighost/config/linux/sysctl.conf sysctl -p ln -fs /usr/share/zoneinfo/Europe/Kiev /etc/localtime # тайм зона, у меня это Киев, можно использовать например Москва (Moscow) yum --noplugins -y install ntp ntpdate pool.ntp.org echo "1 1 * * * root ntpdate pool.ntp.org" >> /etc/crontab fi if [ $thisvps = "yes" ]; then ln -fs /usr/share/zoneinfo/Europe/Kiev /etc/localtime # тайм зона, у меня это Киев, можно использовать например Москва (Moscow) fi if [ $PL = x86_64 ]; then cd /root rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm rpm -ihv /root/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm if [ $useremi = yes ]; then rpm -ihv http://rpms.famillecollet.com/enterprise/remi-release-5.rpm fi fi if [ $PL = i386 ]; then cd /root rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm rpm -ihv /root/rpmforge-release-0.3.6-1.el5.rf.i386.rpm if [ $useremi = yes ]; then rpm -ihv http://rpms.famillecollet.com/enterprise/remi-release-5.rpm fi fi if [ $useremi = yes ]; then yum --noplugins --enablerepo=remi install mc.$PL vsftpd.$PL httpd.$PL httpd-devel.$PL php.$PL mysql-server.$PL php-mysql.$PL nginx.$PL mod_geoip.$PL php-mbstring.$PL php-gd.$PL php-mcrypt.$PL make.$PL which.$PL else yum --noplugins install mc.$PL vsftpd.$PL httpd.$PL httpd-devel.$PL php.$PL mysql-server.$PL php-mysql.$PL nginx.$PL mod_geoip.$PL php-mbstring.$PL php-gd.$PL php-mcrypt.$PL make.$PL which.$PL fi chkconfig --level 2345 mysqld on chkconfig --level 2345 httpd on chkconfig --level 2345 vsftpd on chkconfig --level 2345 nginx on chkconfig --level 2345 cups off chkconfig --level 2345 sendmail on chkconfig --level 2345 sshd on cd /etc/vsftpd rm -f /etc/vsftpd/vsftpd.conf wget http://$confighost/config/linux/vsftpd.conf chmod 400 /etc/vsftpd/vsftpd.conf cd /usr/local/src wget http://$confighost/config/mod_rpaf-0.6.tar.gz tar xzf mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6 ln -s /usr/sbin/apxs /usr/sbin/apxs2 make rpaf-2.0 make install-2.0 cd /etc/httpd/conf.d wget http://$confighost/config/linux/mod_rpaf.conf iplist=`ifconfig | grep inet | awk '{print $2}' | awk -F: '{print $2}' | grep -v '^$' | tr "\n" " "` sed -i "s/127.0.0.1/$iplist/g" /etc/httpd/conf.d/mod_rpaf.conf # Create user and setup user folders adduser -d /home/$USER -m -s /sbin/nologin $USER echo "$USER:$USERPASS" |chpasswd mkdir /home/$USER/domains chmod -R 755 /home/$USER cd /home/$USER wget http://$confighost/config/linux/create_domain.sh sed -i "s/testuser/$USER/g" /home/$USER/create_domain.sh chmod +x /home/$USER/create_domain.sh mkdir /etc/httpd/vhosts cd /etc/httpd/vhosts wget http://$confighost/config/linux/sample cd /home/$USER wget http://$confighost/config/linux/create_base.sh sed -i "s/INSERTPASSHERE/$SQLPASS/g" /home/$USER/create_base.sh chmod +x /home/$USER/create_base.sh cd /home/$USER wget http://$confighost/config/linux/create_multi_bases.sh sed -i "s/INSERTPASSHERE/$SQLPASS/g" /home/$USER/create_multi_bases.sh sed -i "s/username/$USER/g" /home/$USER/create_multi_bases.sh chmod +x /home/$USER/create_multi_bases.sh cd /etc/httpd/conf/ rm -f /etc/httpd/conf/httpd.conf wget http://$confighost/config/linux/httpd.conf rm -f /etc/httpd/conf.d/proxy_ajp.conf rm -f /etc/httpd/conf.d/welcome.conf cd /etc/nginx/ rm -f /etc/nginx/nginx.conf wget http://$confighost/config/linux/nginx.conf iplist2=`ifconfig | grep inet | awk '{print $2}' | awk -F: '{print $2}' | grep -v '^$'|grep -v 127.0.0.1 | sed 's/\(.*\)/listen \1;/'` sed -i "s/user_name/$USER/gi" /etc/nginx/nginx.conf sed -i "s/IPADDR/$iplist2/gi" /etc/nginx/nginx.conf mkdir /home/mysql mkdir /home/mysql/tmp chown -R mysql /home/mysql/ chmod -R 755 /home/mysql/ cd /etc rm -f /etc/my.cnf if [ $thisvps = "no" ]; then wget http://$confighost/config/linux/my.cnf fi if [ $thisvps = "yes" ]; then wget http://$confighost/config/linux/vps/my.cnf fi service mysqld start mysqladmin password $SQLPASS echo "DELETE FROM mysql.user WHERE Password=''" | mysql --password=$SQLPASS service vsftpd start service httpd start service nginx start service cups stop if [ $PL = x86_64 ]; then cd /root wget http://$confighost/config/linux/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz # ставит ZendOptimizer tar zxvf /root/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz cd /root/ZendOptimizer-3.3.3-linux-glibc23-x86_64 ./install.sh fi if [ $PL = i386 ]; then cd /root wget http://$confighost/config/linux/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz # ставит ZendOptimizer tar zxvf /root/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz cd ZendOptimizer-3.3.3-linux-glibc23-i386 ./install.sh fi echo "##############################" echo "Setup ready!" echo "FTP username: $USER" echo "FTP password: $USERPASS" echo "MySQL root password: $SQLPASS" echo "##############################"