- #!/bin/bash
- INSTALL_SRC=/root/install_lnmp/src
- INSTALL_SCRIPT=/root/install_lnmp/script
- INSTALL_CONF=/root/install_lnmp/conf
- if [ $(id -u) != "0" ]; then
- echo "Error: You must run this script as root!!!"
- exit 1
- fi
- clear
- printf "=============================================\n"
- printf " Install lnmp made by Henry He on 2011/05/15 \n"
- printf "=============================================\n"
- printf " Last update on 2011/05/15 \n"
- printf "=============================================\n"
- echo "pls wait 5 senconds..."
- for i in zlib mhash libmcrypt curl openssl ncurses;do
- LIB=`echo i|rpm−qa|grepi`
- if [[ "$LIB" == zlib* ]];then
- echo "zlib [found]!!!"
- continue
- elif
- [[ "$LIB" == mhash* ]];then
- echo "mhash [found]!!!"
- continue
- elif
- [[ "$LIB" == libmcrypt* ]];then
- echo "libmcrypt [found]!!!"
- continue
- elif
- [[ "$LIB" == curl* ]];then
- echo "curl [found]!!!"
- continue
- elif
- [[ "$LIB" == openssl* ]];then
- echo "openssl [found]!!!"
- continue
- elif
- [[ "$LIB" == ncurses* ]];then
- echo "ncurses [found]!!!"
- continue
- else
- yum install -y i.x8664i-devel.x86_64
- fi
- done
- echo ""
- echo "===================="
- echo " check finished "
- echo "===================="
- echo ""
- for a in www mysql;do
- id $a >/dev/null 2>&1
- if [ $? != 0 ];then
- groupadd a && useradda -g a−s/sbin/nologin−d/dev/null−M−c"fora"
- echo "www and mysql user has been added to your system..."
- fi
- done
- install_mysql() {
- echo "+-----------------------------------------------------+"
- echo "+ we will install mysql service on the local computer +"
- echo "+-----------------------------------------------------+"
- if [ -s "INSTALL_SRC/mysql-5.0.91.tar.gz" ] && [ ! -d "INSTALL_SRC/mysql-5.0.91" ];then
- echo "mysql-5.0.91.tar.gz [found]"
- cd $INSTALL_SRC && tar xzvf mysql-5.0.91.tar.gz
- cd mysql-5.0.91
- ./configure --prefix=/usr/local/mysql
- --without-debug \
- --with-pthread \
- --enable-thread-safe-client \
- --enable-assembler \
- --with-client-ldflags=-all-static \
- --with-mysqld-ldflags=-all-static \
- --with-extra-charsets=all \
- --with-charset=utf8 \
- --with-big-tables \
- --with-innobase \
- --with-innodb \
- --with-myisam \
- --enable-local-infile
- make && make install && make clean
- if [ $? = 0 ];then
- cd /usr/local/mysql/share/mysql
- cp mysql.server /etc/init.d/mysql
- cp my-medium.cnf /etc/my.cnf
- chkconfig --add mysql
- chkconfig mysql on
- cd /usr/local/mysql
- chown -R root:mysql /usr/local/mysql
- bin/mysql_install_db --user=mysql
- chown -R mysql:mysql var/
- fi
- fi
- echo ""
- echo "================="
- echo " finished "
- echo "================="
- echo ""
- }
- install_nginx() {
- echo "+----------------------------------------------------+"
- echo "+ we will install nginx service on the local machine +"
- echo "+----------------------------------------------------+"
- cd $INSTALL_SRC
- if [ -s pcre-8.12.tar.bz2 ] && [ ! -d "pcre-8.12" ];then
- echo "pcre-8.12.tar.bz2 [found]"
- tar jxvf pcre-8.12.tar.bz2
- fi
- if [ -s openssl-1.0.0d.tar.gz ] && [ ! -d "openssl-1.0.0d" ];then
- echo "openssl-1.0.0d.tar.gz [found]"
- tar xzvf openssl-1.0.0d.tar.gz
- fi
- if [ -s nginx-0.9.7.tar.gz ] && [ ! -d "nginx-0.9.7" ];then
- echo "nginx-0.9.7.tar.gz [found]"
- tar xzvf nginx-0.9.7.tar.gz
- fi
- cd nginx-0.9.7
- ./configure --prefix=/usr/local/nginx \
- --user=www \
- --group=www \
- --with-http_sub_module \
- --with-http_ssl_module \
- --with-http_gzip_static_module \
- --with-http_stub_status_module \
- --without-mail_imap_module \
- --without-mail_pop3_module \
- --without-mail_smtp_module \
- --with-pcre=../pcre-8.12 \
- --with-openssl=../openssl-1.0.0d
- make && make install && make clean
- if [ $? = 0 ];then
- if [ ! -f "/etc/init.d/nginx" ];then
- cp $INSTALL_SCRIPT/nginx /etc/init.d/
- chkconfig --add nginx
- chkconfig nginx on
- fi
- if [ -f "/usr/local/nginx/conf/nginx.conf" ];then
- rm -f /usr/local/nginx/conf/nginx.conf
- cp $INSTALL_CONF/nginx.conf /usr/local/nginx/conf
- fi
- if [ ! -d "/usr/local/nginx/vhosts" ];then
- mkdir /usr/local/nginx/vhosts
- cp $INSTALL_CONF/http-vhosts.conf /usr/local/nginx/vhosts/
- IP=(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print2}'|cut -d':' -f2)
- sed -i "s#192.168.1.5#$IP#" /usr/local/nginx/vhosts/http-vhosts.conf
- mv $INSTALL_CONF/test.php /usr/local/nginx/html
- fi
- fi
- echo ""
- echo "================="
- echo " finished "
- echo "================="
- echo ""
- }
- install_php() {
- echo "+-------------------------------------------------------+"
- echo "+ we willl install php environment on the local machine +"
- echo "+-------------------------------------------------------+"
- if [ -s "INSTALL_SRC/php-5.3.5.tar.bz2" ] && [ ! -d "INSTALL_SRC/php-5.3.5" ];then
- cd $INSTALL_SRC
- tar jxvf php-5.3.5.tar.bz2
- fi
- cd php-5.3.5
- ./configure --prefix=/usr/local/php \
- --with-curl \
- --with-zlib \
- --with-mhash \
- --with-openssl \
- --with-mcrypt \
- --with-mysql=/usr/local/mysql \
- --with-fpm-user=www \
- --with-fpm-group=www \
- --enable-xml \
- --enable-sockets \
- --enable-fpm \
- --enable-zip \
- --enable-mbstring \
- --enable-inline-optimization \
- --disable-debug \
- --disable-ipv6
- make && make install && make clean
- if [ $? = 0 ];then
- if [ ! -f "/usr/local/php/lib/php.ini" ];then
- cp php.ini-production /usr/local/php/lib/php.ini
- sed -i '/;date.timezone/a date.timezone=Asia/Shanghai' /usr/local/php/lib/php.ini
- sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /usr/local/php/lib/php.ini
- fi
- if [ ! -f "/usr/local/php/etc/php-fpm.conf" ];then
- cp $INSTALL_CONF/php-fpm.conf /usr/local/php/etc
- fi
- if [ ! -f "/etc/init.d/php-fpm" ];then
- cd sapi/fpm
- cp init.d.php-fpm /etc/init.d/php-fpm
- chmod 755 /etc/init.d/php-fpm
- chkconfig --add php-fpm
- chkconfig php-fpm on
- echo "Starting PHP-FPM..."
- /etc/init.d/php-fpm start
- fi
- fi
- echo ""
- echo "================="
- echo " finished "
- echo "================="
- echo ""
- }
- install_mysql && install_nginx && install_php
- export PATH=$PATH:/usr/local/php/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin
- [ -f /usr/local/php/bin/phpize ] && [ -x /usr/local/php/bin/phpize ] || exit 1
- if [ -s "INSTALL_SRC/memcache-2.2.6.tgz" ] && [ ! -d "INSTALL_SRC/memcache-2.2.6" ];then
- cd ${INSTALL_SRC} && tar xf memcache-2.2.6.tgz
- cd memcache-2.2.6 && phpize
- ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config
- make && make install && make clean
- fi
- if [ -s "INSTALL_SRC/xcache-1.3.2.tar.gz" ] && [ ! -d "INSTALL_SRC/xcache-1.3.2" ];then
- cd ${INSTALL_SRC} && tar xf xcache-1.3.2.tar.gz
- cd xcache-1.3.2 && phpize
- ./configure --enable-xcache --enable-xcache-optimizer --with-php-config=/usr/local/php/bin/php-config
- make && make install && make clean
- fi
- if [ -s "INSTALL_SRC/suhosin-0.9.32.1.tar.gz" ] && [ ! -d "INSTALL_SRC/suhosin-0.9.32.1" ];then
- cd ${INSTALL_SRC} && tar xf suhosin-0.9.32.1.tar.gz
- cd suhosin-0.9.32.1 && phpize
- ./configure --enable-suhosin --with-php-config=/usr/local/php/bin/php-config
- make && make install && make clean
- fi
本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/566007,如需转载请自行联系原作者