web自动安装脚本(apache/nginx+php+mysql)

来源:互联网 发布:软件行业净利润率 编辑:程序博客网 时间:2024/05/31 19:11

[我的Linux,让Linux更易用]此安装均为自动进行,只在mysql设置密码及Zend安装时会有提示操作,其它均为自动直到安装完成.
安装目录设置,下有说明

注:如不是安装本人定制的ISO,先用使用yum安装相关的包和库,如
yum install -y gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel libmcrypt-devel libmhash-devel

软件版本为均为最新,如nginx-0.8.38,httpd-2.2.15
httpd-2.2.15
nginx-0.8.38
mysql-5.1.47
php-5.2.13
eaccelerator-0.9.6
ZendOptimizer-3.3.3
软件安装目录在 /usr/local/如需要修改,请下载脚本后,修改如下几项
IN_DIR="/usr/local" 改为相应的目录
X86=0 如是X86,也就是64位兼容的,把0改为1
然后执行 sh wdl_install.sh 开始安装,默认安装apache,如要安装nginx,执行
sh wdl_install.sh nginx
即可进行安装,安装完后,可以查看
http://ip/phpinfo.php

本脚本在基于CentOS 5.5 的i386,x86定制版上测试通过,定制版ISO下载
http://www.wdlinux.cn/wdlinux_CentOS_5.5

也可以下载原版CentOS5.5
http://mirrors.163.com/
http://mirrors.sohu.com/

下载
http://www.wdlinux.cn/in_scripts/wdl_install.sh.txt

查看最新更新请看  http://www.wdlinux.cn/apache_nginx_php_mysql_install_auto

 

#!/bin/bash## Web Server Install Script# Created by wdlinux QQ:12571192# Url:http://www.wdlinux.cn# 2010.04.08# Last Updated 2010.05.27# IN_PWD=$(pwd)IN_SRC=${IN_PWD}/softIN_LOG=${IN_SRC}/wdl_install.logIN_DIR="/usr/local"SERVER="apache"RE_INS=0X86=0SOFT_DOWN=0#soft url and downHTTPD_DU="http://www.eu.apache.org/dist/httpd/httpd-2.2.15.tar.gz"NGINX_DU="http://nginx.org/download/nginx-0.8.40.tar.gz"MYSQL_DU="http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.47.tar.gz"PHP_DU="http://cn2.php.net/get/php-5.2.13.tar.gz/from/cn.php.net/mirror"EACCELERATOR_DU="http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2"ZEND_DU="http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz"ZENDX86_DU="http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz"PHP_FPM_DU="http://php-fpm.org/downloads/php-5.2.13-fpm-0.5.14.diff.gz"VSFTPD_DU="http://hbdx.wdlinux.cn:8080/vsftpd-2.2.2.tar.gz"PHPMYADMIN_DU="http://hbdx.wdlinux.cn:8080/phpMyAdmin-3.3.3-all-languages.tar.gz"if [[ ! -d $IN_SRC ]];then        mkdir $IN_SRCfiif [[ ! -d $IN_DIR ]];then        mkdir -p $IN_DIRfiif [[ `uname -m | grep "x86_64"` ]];thenX86=1fiif [[ $1 == "nginx" ]];thenSERVER="nginx"elseSREVER="apache"ficd $IN_SRCfunction make_clean {if [[ $RE_INS == 1 ]];thenmake cleanfi}function wget_down {if [[ $SOFT_DOWN == 1 ]];thenecho "start down..."        for i in $*; do                [ `wget -c $i` ] && exit        donefi}if [[ $SERVER == "apache" ]];thenwget_down $HTTPD_DUelif [[ $SERVER == "nginx" ]];thenwget_down $NGINX_DU $PHP_FPMfiif [[ $X86 == "1" ]];thenwget_down $ZENDX86_DUelsewget_down $ZEND_DUfiwget_down $MYSQL_DU $PHP_DU $EACCELERATOR_DU $VSFTPD_DU $PHPMYADMIN_DUfunction error {        echo "ERROR: "$1        exit}function file_cp {if [[ -f $2 ]];thenmv $2 $2`date +%Y%m%d%H`ficp $1 $2}function file_bk {if [[ -f $1 ]];thenmv $1 $1"_"`date +%Y%m%d%H`fi}sed -i '/wdl_install.sh/d' /etc/rc.d/rc.local# install functionfunction mysql_ins {echo "installing mysql..."cd $IN_SRCuseradd -d /dev/null -s /sbin/nologin mysql >&2 > /dev/nulltar zxvf mysql-5.1.47.tar.gz >&2 > /dev/nullif [[ $X86 == 1 ]];thenLIBNCU="/usr/lib64/libncursesw.so.5"elseLIBNCU="/usr/lib/libncursesw.so.5"ficd mysql-5.1.47/make_clean>&2 > /dev/null./configure --prefix=$IN_DIR/mysql-5.1.47 --enable-assembler --enable-thread-safe-client --with-extra-charsets=complex --with-ssl --with-embedded-server --with-named-curses-libs=$LIBNCU>&2 > /dev/null[ $? != 0 ] && exitmake>&2 > /dev/null[ $? != 0 ] && exitmake install>&2 > /dev/null[ $? != 0 ] && exitln -s $IN_DIR/mysql-5.1.47 $IN_DIR/mysqlfile_cp "support-files/my-large.cnf" "/etc/my.cnf"$IN_DIR/mysql/bin/mysql_install_db >&2 > /dev/nullchown -R mysql.mysql $IN_DIR/mysql/varfile_cp "support-files/mysql.server" "/etc/rc.d/init.d/mysqld"chmod 755 /etc/rc.d/init.d/mysqldchkconfig --add mysqld/etc/rc.d/init.d/mysqld startPATH=$PATH:$IN_DIR/mysql/bin$IN_DIR/mysql/bin/mysql_secure_installation}function apache_ins {echo "installing httpd..."cd $IN_SRCtar zxvf httpd-2.2.15.tar.gz>&2 > /dev/nullcd httpd-2.2.15make_clean>&2 > /dev/null./configure --prefix=$IN_DIR/httpd-2.2.15 --with-mpm=worker --enable-rewrite --enable-deflate --disable-userdir --enable-so>&2 > /dev/null[ $? != 0 ] && exitmake>&2 > /dev/null[ $? != 0 ] && exitmake install>&2 > /dev/null[ $? != 0 ] && exitln -s $IN_DIR/httpd-2.2.15 $IN_DIR/apachecd $IN_DIR/apache/conf/extramv httpd-vhosts.conf httpd-vhost.conf.bk#wget_down http://www.wdlinux.cn/conf/httpd22/httpd-wdl.conf#wget_down http://www.wdlinux.cn/conf/httpd22/httpd-vhosts.confsed -i 's|#Include conf/extra/httpd-vhosts.conf|Include conf/extra/httpd-vhosts.conf|g' $IN_DIR/apache/conf/httpd.confecho "Include conf/extra/httpd-wdl.conf" >> $IN_DIR/apache/conf/httpd.confecho "$IN_DIR/apache/bin/apachectl start" >> /etc/rc.d/rc.local #echo "<? phpinfo();?>" > $IN_DIR/apache/htdocs/phpinfo.phpmkdir -p /home/wdlinuxecho "<? phpinfo();?>" > /home/wdlinux/phpinfo.php}function nginx_ins {echo "installing nginx..."cd $IN_SRCtar zxvf nginx-0.8.40.tar.gz>&2 > /dev/nullcd nginx-0.8.40make_clean>&2 > /dev/null./configure --user=www --group=www --prefix=$IN_DIR/nginx-0.8.40 --with-http_stub_status_module --with-http_ssl_module>&2 > /dev/null[ $? != 0 ] && exitmake>&2 > /dev/null[ $? != 0 ] && exitmake install>&2 > /dev/null[ $? != 0 ] && exitln -s $IN_DIR/nginx-0.8.40 $IN_DIR/nginxmkdir -p /home/wdlinux>&2 > /dev/null#cd $IN_DIR/nginx/conf#file_bk nginx.conf#wget_down http://www.wdlinux.cn/conf/nginx/nginx.conf#file_bk fcgi.conf#wget http://www.wdlinux.cn/conf/nginx/fcgi.confecho "$IN_DIR/php/sbin/php-fpm start" >> /etc/rc.d/rc.local#cd /etc/rc.d/init.d/#wget_down http://www.wdlinux.cn/conf/nginx/nginxd#chmod 755 nginxd#chkconfig --add nginxd#echo "<? phpinfo();?>" > $IN_DIR/nginx/html/phpinfo.phpecho "<? phpinfo();?>" > /home/wdlinux/phpinfo.phpcp $IN_DIR/nginx/html/index.html /home/wdlinux}function php_ins {echo "installing php..."cd $IN_SRCtar zxvf php-5.2.13.tar.gz>&2 > /dev/nullNV=""[ $SERVER == "nginx" ] && NV="--enable-fastcgi --enable-fpm" && gzip -cd php-5.2.13-fpm-0.5.14.diff.gz | patch -fd php-5.2.13 -p1>&2 > /dev/null[ $SERVER == "apache" ] && NV="--with-apxs2=$IN_DIR/apache/bin/apxs"cd php-5.2.13/make_clean>&2 > /dev/null./configure --prefix=$IN_DIR/php-5.2.13 --with-mysql=$IN_DIR/mysql --with-iconv-dir=/usr --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash $NV>&2 > /dev/null[ $? != 0 ] && exitmake>&2 > /dev/null[ $? != 0 ] && exitmake install>&2 > /dev/null[ $? != 0 ] && exitln -s $IN_DIR/php-5.2.13 $IN_DIR/phpcp php.ini-dist $IN_DIR/php/lib/php.iniif [[ $SERVER == "nginx" ]];thensed -i '/nobody/s#<!--##g' $IN_DIR/php/etc/php-fpm.confsed -i '/nobody/s#-->##g' $IN_DIR/php/etc/php-fpm.conffi}function eaccelerator_ins {echo "installing eaccelerator..."cd $IN_SRCtar jxvf eaccelerator-0.9.6.tar.bz2>&2 > /dev/nullcd eaccelerator-0.9.6/make_clean>&2 > /dev/null$IN_DIR/php/bin/phpize>&2 > /dev/null./configure --enable-eaccelerator=shared --with-php-config=$IN_DIR/php/bin/php-config>&2 > /dev/null[ $? != 0 ] && exitmake>&2 > /dev/null[ $? != 0 ] && exitmake install>&2 > /dev/null[ $? != 0 ] && exitmkdir $IN_DIR/eaccelerator_cacheif [[ $SERVER == "nginx" ]];thenEA_DIR="$IN_DIR/php/lib/php/extensions/no-debug-non-zts-20060613"elseEA_DIR="$IN_DIR/php/lib/php/extensions/no-debug-zts-20060613"fiecho '[eaccelerator]extension_dir="'$EA_DIR'"extension="/eaccelerator.so"eaccelerator.shm_size="64"eaccelerator.cache_dir="'$IN_DIR'/eaccelerator_cache"eaccelerator.enable="1"eaccelerator.optimizer="1"eaccelerator.check_mtime="1"eaccelerator.debug="0"eaccelerator.filter=""eaccelerator.shm_max="0"eaccelerator.shm_ttl="3600"eaccelerator.shm_prune_period="3600"eaccelerator.shm_only="0"eaccelerator.compress="1"eaccelerator.compress_level="9"' >> $IN_DIR/php/lib/php.ini}function zend_ins {        echo "Zend installing..."        cd $IN_SRCif [[ $X86 == "1" ]];then        tar zxvf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz>&2 > /dev/null        cd ZendOptimizer-3.3.3-linux-glibc23-x86_64        sh install.shelse        tar zxvf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz>&2 > /dev/null        cd ZendOptimizer-3.3.3-linux-glibc23-i386        sh install.shfi}function vsftpd_ins {echo "vsftpd installing..."cd $IN_SRCtar zxvf vsftpd-2.2.2.tar.gz>&2 > /dev/nullcd vsftpd-2.2.2make>&2 > /dev/nullmkdir /usr/share/emptymkdir -p $IN_DIR/vsftpdinstall -m 755 vsftpd $IN_DIR/vsftpd/vsftpdinstall -m 644 vsftpd.8 /usr/share/man/man8install -m 644 vsftpd.conf.5 /usr/share/man/man5install -m 644 vsftpd.conf /etc/vsftpd.confcd /etc/file_bk vsftpd.conf#wget_down http://www.wdlinux.cn/conf/vsftpd.conf#wget_down http://www.wdlinux.cn/conf/vsftpd.denyuserecho "$IN_DIR/vsftpd/vsftpd &" >> /etc/rc.d/rc.local}function phpmyadmin_ins {echo "phpmyadmin installing..."cd $IN_SRCtar zxvf phpMyAdmin-3.3.3-all-languages.tar.gz>&2 > /dev/null#mv phpMyAdmin-3.3.3-all-languages $IN_DIR/apache/htdocs/phpSqlAdminmv phpMyAdmin-3.3.3-all-languages /home/wdlinux/phpSqlAdmin}function conf {cd $IN_PWD/conffile_cp my.cnf /etc/my.cnffile_cp vsftpd.conf /etc/vsftpd.conffile_cp vsftpd.denyuser /etc/vsftpd.denyuserif [[ $SERVER == "apache" ]];thenfile_cp httpd-vhosts.conf $IN_DIR/apache/conf/extra/httpd-vhosts.conffile_cp httpd-wdl.conf $IN_DIR/apache/conf/extra/httpd-wdl.confelsefile_cp fcgi.conf $IN_DIR/nginx/conf/fcgi.conffile_cp nginx.conf $IN_DIR/nginx/conf/nginx.conffile_cp nginxd /etc/rc.d/init.d/nginxdchmod 755 /etc/rc.d/init.d/nginxdchkconfig --add nginxdfi}function start {echo "start..."if [[ $SERVER == "nginx" ]];then$IN_DIR/php/sbin/php-fpm start/etc/rc.d/init.d/nginxd startelse$IN_DIR/apache/bin/apachectl startfi$IN_DIR/vsftpd/vsftpd &}echo "Select Install        1 apache + php + mysql        2 nginx + php + mysql3 don't install is now"read -p "Please Input 1,2,3: " SERVER_IDif [[ $SERVER_ID == 2 ]];then        SERVER="nginx"elif [[ $SERVER_ID == 1 ]];then        SERVER="apache"elseexitfi if [[ $SOFT_DOWN == 0 ]];thencd $IN_PWDif [[ -f soft.tar.gz ]];thentar zxvf soft.tar.gz >&2 > /dev/nullelsewget -c http://hbdx.wdlinux.cn:8080/soft.tar.gztar zxvf soft.tar.gz >&2 > /dev/nullfifimysql_ins${SERVER}_insphp_inseaccelerator_inszend_insvsftpd_insphpmyadmin_insconfstart