Centos 安装nginx+mysql+php+phpmyadmin 的shell脚本

来源:互联网 发布:suffer软件免费下载 编辑:程序博客网 时间:2024/05/17 05:59
#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH# Check if user is rootif [ $(id -u) != "0" ]; then    echo "Error: You must be root to run this script, please use root to install lnmp"    exit 1ficlearecho "========================================================================="echo "LNMP V0.7 for CentOS/RadHat Linux VPS  Written by Licess"echo "========================================================================="echo "A tool to auto-compile & install Nginx+MySQL+PHP on Linux "echo ""echo "For more information please visit http://www.lnmp.org/"echo "========================================================================="cur_dir=$(pwd)if [ "$1" != "--help" ]; then#set main domain namedomain="www.lnmp.org"echo "Please input domain:"read -p "(Default domain: www.lnmp.org):" domainif [ "$domain" = "" ]; thendomain="www.lnmp.org"fiecho "==========================="echo domain="$domain"echo "==========================="#set mysql root passwordecho "==========================="mysqlrootpwd="root"echo "Please input the root password of mysql:"read -p "(Default password: root):" mysqlrootpwdif [ "$mysqlrootpwd" = "" ]; thenmysqlrootpwd="root"fiecho "==========================="echo mysqlrootpwd="$mysqlrootpwd"echo "==========================="get_char(){SAVEDSTTY=`stty -g`stty -echostty cbreakdd if=/dev/tty bs=1 count=1 2> /dev/nullstty -rawstty echostty $SAVEDSTTY}echo ""echo "Press any key to start..."char=`get_char`rpm -qa|grep  httpdrpm -e httpdrpm -qa|grep mysqlrpm -e mysqlrpm -qa|grep phprpm -e phpyum -y remove httpdyum -y remove phpyum -y remove mysql-server mysqlyum -y remove php-mysqlyum -y install yum-fastestmirroryum -y remove httpdyum -y update#Set timezonerm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeyum install -y ntpntpdate -d cn.pool.ntp.orgdate#Disable SeLinuxif [ -s /etc/selinux/config ]; thensed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configfifor packages in patch make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel vim-minimal nano fonts-chinese gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip;do yum -y install $packages; doneecho "============================check files=================================="if [ -s php-5.2.17.tar.gz ]; then  echo "php-5.2.17.tar.gz [found]"  else  echo "Error: php-5.2.17.tar.gz not found!!!download now......"  wget -c http://us2.php.net/distributions/php-5.2.17.tar.gzfiif [ -s php-5.2.17-fpm-0.5.14.diff.gz ]; then  echo "php-5.2.17-fpm-0.5.14.diff.gz [found]"  else  echo "Error: php-5.2.17-fpm-0.5.14.diff.gz not found!!!download now......"  wget -c http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gzfiif [ -s PDO_MYSQL-1.0.2.tgz ]; then  echo "PDO_MYSQL-1.0.2.tgz [found]"  else  echo "Error: PDO_MYSQL-1.0.2.tgz not found!!!download now......"  wget -c http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgzfiif [ -s memcache-3.0.5.tgz ]; then  echo "memcache-3.0.5.tgz [found]"  else  echo "Error: memcache-3.0.5.tgz not found!!!download now......"  wget -c http://pecl.php.net/get/memcache-3.0.5.tgzfiif [ -s pcre-8.12.tar.gz ]; then  echo "pcre-8.12.tar.gz [found]"  else  echo "Error: pcre-8.12.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/web/pcre/pcre-8.12.tar.gzfiif [ -s nginx-0.8.54.tar.gz ]; then  echo "nginx-0.8.54.tar.gz [found]"  else  echo "Error: nginx-0.8.54.tar.gz not found!!!download now......"  wget -c http://nginx.org/download/nginx-0.8.54.tar.gzfiif [ -s mysql-5.1.54.tar.gz ]; then  echo "mysql-5.1.54.tar.gz [found]"  else  echo "Error: mysql-5.1.54.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/datebase/mysql/mysql-5.1.54.tar.gzfiif [ -s libiconv-1.13.1.tar.gz ]; then  echo "libiconv-1.13.1.tar.gz [found]"  else  echo "Error: libiconv-1.13.1.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/web/libiconv/libiconv-1.13.1.tar.gzfiif [ -s libmcrypt-2.5.8.tar.gz ]; then  echo "libmcrypt-2.5.8.tar.gz [found]"  else  echo "Error: libmcrypt-2.5.8.tar.gz not found!!!download now......"  wget -c  http://soft.vpser.net/web/libmcrypt/libmcrypt-2.5.8.tar.gzfiif [ -s mhash-0.9.9.9.tar.gz ]; then  echo "mhash-0.9.9.9.tar.gz [found]"  else  echo "Error: mhash-0.9.9.9.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/web/mhash/mhash-0.9.9.9.tar.gzfiif [ -s mcrypt-2.6.8.tar.gz ]; then  echo "mcrypt-2.6.8.tar.gz [found]"  else  echo "Error: mcrypt-2.6.8.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/web/mcrypt/mcrypt-2.6.8.tar.gzfiif [ -s phpmyadmin.tar.gz ]; then  echo "phpmyadmin.tar.gz [found]"  else  echo "Error: phpmyadmin.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/datebase/phpmyadmin/phpmyadmin.tar.gzfiif [ -s p.tar.gz ]; then  echo "p.tar.gz [found]"  else  echo "Error: p.tar.gz not found!!!download now......"  wget -c http://soft.vpser.net/prober/p.tar.gzfiif [ -s autoconf-2.13.tar.gz ]; then  echo "autoconf-2.13.tar.gz [found]"  else  echo "Error: autoconf-2.13.tar.gz not found!!!download now......"  wget -c http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gzfiecho "============================check files=================================="cd $cur_dirtar zxvf autoconf-2.13.tar.gzcd autoconf-2.13/./configure --prefix=/usr/local/autoconf-2.13make && make installcd ../tar zxvf libiconv-1.13.1.tar.gzcd libiconv-1.13.1/./configuremake && make installcd ../cd $cur_dirtar zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configuremake && make install/sbin/ldconfigcd libltdl/./configure --enable-ltdl-installmake && make installcd ../../cd $cur_dirtar zxvf mhash-0.9.9.9.tar.gzcd mhash-0.9.9.9/./configuremake && make installcd ../ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.laln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.soln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.aln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.laln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.soln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1cd $cur_dirtar zxvf mcrypt-2.6.8.tar.gzcd mcrypt-2.6.8/./configuremake && make installcd ../if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then        ln -s /usr/lib64/libpng.* /usr/lib/        ln -s /usr/lib64/libjpeg.* /usr/lib/fiecho "============================mysql install=================================="cd $cur_dirtar -zxvf mysql-5.1.54.tar.gzcd mysql-5.1.54/./configure --prefix=/usr/local/mysql --with-extra-charsets=all --enable-thread-safe-client --enable-assembler --with-charset=utf8 --enable-thread-safe-client --with-extra-charsets=all --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infilemake && make installcd ../groupadd mysqluseradd -s /sbin/nologin -M -g mysql mysqlcp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnfsed -i 's/skip-locking/skip-external-locking/g' /etc/my.cnf/usr/local/mysql/bin/mysql_install_db --user=mysqlchown -R mysql /usr/local/mysql/varchgrp -R mysql /usr/local/mysql/.cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqlchmod 755 /etc/init.d/mysqlcat > /etc/ld.so.conf.d/mysql.conf<<EOF/usr/local/mysql/lib/mysql/usr/local/libEOFldconfigln -s /usr/local/mysql/lib/mysql /usr/lib/mysqlln -s /usr/local/mysql/include/mysql /usr/include/mysql/etc/init.d/mysql startln -s /usr/local/mysql/bin/mysql /usr/bin/mysqlln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldumpln -s /usr/local/mysql/bin/myisamchk /usr/bin/myisamchk/usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd/etc/init.d/mysql restart/etc/init.d/mysql stopecho "============================mysql intall completed========================="echo "============================php+eaccelerator install======================"cd $cur_direxport PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconfexport PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheadertar zxvf php-5.2.17.tar.gzgzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1cd php-5.2.17/./buildconf --force./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic make ZEND_EXTRA_LIBS='-liconv'make installmkdir -p /usr/local/php/etccp php.ini-dist /usr/local/php/etc/php.inicd ../ln -s /usr/local/php/bin/php /usr/bin/phpln -s /usr/local/php/bin/phpize /usr/bin/phpizeln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpmcd $cur_dirtar zxvf memcache-3.0.5.tgzcd memcache-3.0.5//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make installcd ../tar zxvf PDO_MYSQL-1.0.2.tgzcd PDO_MYSQL-1.0.2//usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysqlmake && make installcd ../# php extensionssed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\nextension = "pdo_mysql.so"\n#' /usr/local/php/etc/php.inised -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.inised -i 's/post_max_size = 8M/post_max_size = 50M/g' /usr/local/php/etc/php.inised -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /usr/local/php/etc/php.inised -i 's/;date.timezone =/date.timezone = PRC/g' /usr/local/php/etc/php.inised -i 's/short_open_tag = Off/short_open_tag = On/g' /usr/local/php/etc/php.inised -i 's/; cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.inised -i 's/; cgi.fix_pathinfo=0/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.inised -i 's/max_execution_time = 30/max_execution_time = 300/g' /usr/local/php/etc/php.iniif [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then        wget -c http://soft.vpser.net/web/zend/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz        tar zxvf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gzmkdir -p /usr/local/zend/cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/else        wget -c http://soft.vpser.net/web/zend/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gztar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gzmkdir -p /usr/local/zend/cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/ficat >>/usr/local/php/etc/php.ini<<EOF;eaccelerator;ionCube[Zend Optimizer] zend_optimizer.optimization_level=1 zend_extension="/usr/local/zend/ZendOptimizer.so" EOFgroupadd wwwuseradd -s /sbin/nologin -g www wwwmkdir -p /home/wwwrootchmod +w /home/wwwrootmkdir -p /home/wwwlogschmod 777 /home/wwwlogschown -R www:www /home/wwwrootrm -f /usr/local/php/etc/php-fpm.confcp conf/php-fpm.conf /usr/local/php/etc/php-fpm.confwget -c http://soft.vpser.net/lnmp/ext/init.d.php-fpm5.2cp init.d.php-fpm5.2 /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpmecho "============================php+eaccelerator install completed======================"echo "============================nginx install================================="cd $cur_dirtar zxvf pcre-8.12.tar.gzcd pcre-8.12/./configuremake && make installcd ../tar zxvf nginx-0.8.54.tar.gzcd nginx-0.8.54/./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6make && make installcd ../rm -f /usr/local/nginx/conf/nginx.confcd $cur_dircp conf/nginx.conf /usr/local/nginx/conf/nginx.confcp conf/dabr.conf /usr/local/nginx/conf/dabr.confcp conf/discuz.conf /usr/local/nginx/conf/discuz.confcp conf/sablog.conf /usr/local/nginx/conf/sablog.confcp conf/typecho.conf /usr/local/nginx/conf/typecho.confcp conf/wordpress.conf /usr/local/nginx/conf/wordpress.confcp conf/discuzx.conf /usr/local/nginx/conf/discuzx.confcp conf/none.conf /usr/local/nginx/conf/none.confcp conf/wp2.conf /usr/local/nginx/conf/wp2.confsed -i 's/www.lnmp.org/'$domain'/g' /usr/local/nginx/conf/nginx.confrm -f /usr/local/nginx/conf/fcgi.confcp conf/fcgi.conf /usr/local/nginx/conf/fcgi.conf/etc/init.d/mysql startcd $cur_dircp lnmp /root/lnmpchmod +x /root/lnmpcp vhost.sh /root/vhost.shchmod +x /root/vhost.shecho "============================nginx install completed================================="#phpinfocat >/home/wwwroot/phpinfo.php<<eof<?phpinfo();?>eof#probercd $cur_dirtar zxvf p.tar.gzcp p.php /home/wwwroot/p.phpcp conf/index.html /home/wwwroot/index.htmlecho "============================phpMyAdmin install================================="#phpmyadmintar zxvf phpmyadmin.tar.gzmv phpmyadmin /home/wwwroot/chmod 755 -R /home/wwwroot/phpmyadmin/chown www:www -R /home/wwwroot/phpmyadmin/echo "============================phpMyAdmin install completed================================="echo "============================add nginx and php-fpm on startup============================"echo "Download new nginx init.d file......"wget -c http://soft.vpser.net/lnmp/ext/init.d.nginxcp init.d.nginx /etc/init.d/nginxchmod +x /etc/init.d/nginxchkconfig --level 345 php-fpm onchkconfig --level 345 nginx onchkconfig --level 345 mysql onecho "===========================add nginx and php-fpm on startup completed===================="echo "Starting LNMP..."/etc/init.d/mysql start/etc/init.d/php-fpm start/etc/init.d/nginx startecho "===================================== Check install ==================================="clearif [ -s /usr/local/nginx ]; then  echo "/usr/local/nginx [found]"  else  echo "Error: /usr/local/nginx not found!!!"fiif [ -s /usr/local/php ]; then  echo "/usr/local/php [found]"  else  echo "Error: /usr/local/php not found!!!"fiif [ -s /usr/local/mysql ]; then  echo "/usr/local/mysql [found]"  else  echo "Error: /usr/local/mysql not found!!!"fiecho "========================== Check install ================================"echo "Install lnmp 0.7 completed! enjoy it."echo "========================================================================="echo "LNMP V0.7 for CentOS/RadHat Linux VPS  Written by Licess "echo "========================================================================="echo ""echo "For more information please visit http://www.lnmp.org/"echo ""echo "lnmp status manage: /root/lnmp {start|stop|reload|restart|kill|status}"echo "default mysql root password:$mysqlrootpwd"echo "phpinfo : http://$domain/phpinfo.php"echo "phpMyAdmin : http://$domain/phpmyadmin/"echo "Prober : http://$domain/p.php"echo "Add VirtualHost : /root/vhost.sh"echo ""echo "The path of some dirs:"echo "mysql dir:   /usr/local/mysql"echo "php dir:     /usr/local/php"echo "nginx dir:   /usr/local/nginx"echo "web dir :     /home/wwwroot"echo ""echo "========================================================================="fi/root/lnmp statusnetstat -ntl


原创粉丝点击