本脚用来直接部署LNMP,方便快捷,有错误的地方,欢迎指出,及时更改

此脚本在CentOS 5.5/6.2 x86_64环境下通过

使用方法:保存脚本名为 install_lnmp.sh

执行./install_lnmp 参数名[db|nginx|php|memcached]

软件包下载到脚本当前目录的Packages 下

 
  
  1. drwxr-xr-x. 3 root root 4096 Aug  7 20:09 Config 
  2. -rwxr-xr-x. 1 root root 7879 Aug  7 19:58 install-lnmp.sh 
  3. drwxr-xr-x. 2 root root 4096 Aug  7 18:16 Packages 
脚本内容:
 
  
  1. #! /bin/sh 
  2. #------------------------------------------------------- 
  3. # Link: http://blog.51bbo.com/  
  4. # Version: V2.0 CentOS X86_64 5.5 6.2
  5. # wget http://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2 
  6. # wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2 
  7. # wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2 
  8. # wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz 
  9. # wget http://nchc.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz 
  10. # wget http://memcached.googlecode.com/files/memcached-1.4.14.tar.gz 
  11. # wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.23.tar.gz 
  12. # wget http://pecl.php.net/get/memcache-2.2.5.tgz 
  13. # wget http://nginx.org/download/nginx-1.2.1.tar.gz 
  14. # wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz 
  15. # wget http://cn.php.net/distributions/php-5.2.17.tar.gz 
  16. #------------------------------------------------------- 
  17.  
  18. ServerName=01314.cn 
  19. MyPath=`pwd` 
  20. Packages=$MyPath/Packages 
  21. Config=$MyPath/Config 
  22.  
  23.     echo "Starting install Package ..." 
  24.     myyum=`cat /etc/yum.conf |grep exclude` 
  25.     if [ `uname -i` = "x86_64" ] && [ -z "$myyum" ]; then  
  26.         echo "exclude=*.i?86" >> /etc/yum.conf 
  27.     fi 
  28.     yum install -y gcc gcc-c++ autoconf cmake bison bison-devel patch mhash-devel pcre pcre-devel ncurses ncurses-devel libpng libpng-devel libjpeg libjpeg-devel libxml2 libxml2-devel zlib zlib-devel bzip2 bzip2-devel curl curl-devel openssl openssl-devel openldap openldap-devel gdbm-devel db4-devel freetype freetype-devel fontconfig fontconfig-devel gmp gmp-devel libtool-ltdl libtool-ltdl-devel gd 
  29.     clear 
  30.  
  31. in_nginx () 
  32.     echo "Starting install Nginx-1.2.1..." 
  33.     cd $Packages 
  34.     tar zxf nginx-1.2.1.tar.gz 
  35.     cd nginx-1.2.1 
  36.     ./configure --with-http_stub_status_module --with-http_ssl_module 
  37.     make && make install 
  38.     mkdir -p /data/logs/nginx/ 
  39.     if [ ! -d /usr/local/nginx/conf/vhost ]; then 
  40.         mkdir -p /usr/local/nginx/conf/vhost 
  41.     fi 
  42.     \cp $Config/nginx.conf /usr/local/nginx/conf 
  43.     \cp $Config/01314.conf /usr/local/nginx/conf/vhost/$ServerName.conf 
  44.     sed -i "s/01314.cn/$ServerName/g" /usr/local/nginx/conf/vhost/$ServerName.conf 
  45.     mkdir -p /data/website/$ServerName 
  46.     cp $Config/info.php /data/website/$ServerName 
  47.     echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local 
  48.     /usr/local/nginx/sbin/nginx 
  49.     echo -e "Nginx is running with PID: [\033[1m\033[32m`pidof nginx`\033[0m]" 
  50. in_mysql () 
  51.     echo "Starting install Mysql-5.5.23..." 
  52.     cd $Packages 
  53.     tar zxf mysql-5.5.23.tar.gz 
  54.     cd mysql-5.5.23 
  55.     useradd mysql 
  56.     cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DINSTALL_DATADIR=/data/db/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=bundled -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 
  57.     make && make install 
  58.     \cp $Config/my.cnf /etc/my.cnf  #/usr/local/mysql/support-files目录下有my.cnf文件供选择使用
  59.     /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/db --user=mysql 
  60.     cp support-files/mysql.server /etc/init.d/mysqld 
  61.     chmod +x /etc/init.d/mysqld 
  62.     mkdir -p /data/logs/mysql; chown mysql.mysql /data/logs/mysql; chmod 777 -R /data/logs/mysql 
  63.     chkconfig mysqld on 
  64.     /etc/init.d/mysqld start 
  65.     echo -e "Mysql is running with PID: [\033[1m\033[32m`pidof mysqld`\033[0m]" 
  66. in_libmcrypt () 
  67.     cd $Packages 
  68.     tar zxf libmcrypt-2.5.8.tar.gz 
  69.     cd libmcrypt-2.5.8 
  70.     ./configure  
  71.     make && make install 
  72.     /sbin/ldconfig 
  73.     cd libltdl/ 
  74.     ./configure --enable-ltdl-install 
  75.     make && make install 
  76.     ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
  77.     ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
  78.     ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
  79.     ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
  80.     ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
  81. in_mhash () 
  82.     cd $Packages 
  83.     tar jxf mhash-0.9.9.9.tar.bz2 
  84.     cd mhash-0.9.9.9 
  85.     ./configure 
  86.     make && make install 
  87.     ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
  88.     ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
  89.     ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
  90.     ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
  91.     ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
  92. in_mcrypt () 
  93.     cd $Packages 
  94.     tar zxf mcrypt-2.6.8.tar.gz 
  95.     cd mcrypt-2.6.8 
  96.     /sbin/ldconfig 
  97.     ./configure  
  98.     make && make install 
  99. in_php () 
  100.     echo "Starting install php-5.2.17..." 
  101.     mkdir -p /etc/php5.2/php.d 
  102.     cd $Packages 
  103.     if [ ! -d "php-5.2.17" ]; then 
  104.         tar zxf php-5.2.17.tar.gz 
  105.         gzip -cd php-5.2.17-fpm-0.5.14.diff.gz |patch -d php-5.2.17 -p1 
  106.     fi 
  107.     if [ `uname -i` = "x86_64" ]; then 
  108.         ln -s /usr/lib64/libjpeg.so /usr/lib 
  109.         ln -s /usr/lib64/libpng.so /usr/lib 
  110.         ln -s /usr/lib64/libldap.so /usr/lib 
  111.     fi 
  112.     cd php-5.2.17 
  113. ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config
  114.     ./configure --prefix=/usr/local/php --with-config-file-path=/etc/php5.2 --with-config-file-scan-dir=/etc/php5.2/php.d --with-mysql-sock=/tmp/mysql.sock --with-mysql=shared,/usr/local/mysql --with-mysqli=shared,/usr/local/mysql/bin/mysql_config --with-iconv=shared --disable-debug --enable-pic --enable-shared --enable-inline-optimization --with-gettext=shared --with-gd=shared --with-curl=shared --with-curlwrappers --with-mcrypt=shared --with-jpeg-dir --with-png-dir --with-zlib=shared --with-libxml-dir=/usr --with-gdbm --with-openssl=shared --with-gmp --with-bz2=shared --with-freetype-dir --enable-fastcgi --enable-fpm --enable-mbstring=shared --enable-safe-mode --enable-sockets=shared --enable-sysvsem=shared --enable-sysvshm=shared --enable-xml --enable-session --enable-zip=shared --enable-pdo --with-pdo-mysql --with-pdo-sqlite --enable-dbase=shared --enable-wddx --enable-shmop=shared --enable-soap=shared --enable-calendar=shared --enable-bcmath=shared --enable-discard-path --with-ldap=shared --with-ldap-sasl --with-xmlrpc=shared 
  115.     make && make install 
  116.     if [ `uname -i` = "x86_64" ]; then 
  117.         \cp $Config/x86_64/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 
  118.         chmod +x /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so 
  119.     else 
  120.         \cp $Config/ZendOptimizer.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 
  121.         chmod +x /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ZendOptimizer.so 
  122.     fi 
  123.     \cp $Config/php-fpm.conf /usr/local/php/etc 
  124.     echo "/usr/local/php/sbin/php-fpm start" >> /etc/rc.local 
  125.     \cp $Config/php.ini /etc/php5.2/ 
  126. in_eaccelerator () 
  127.     cd $Packages 
  128.     tar jxf eaccelerator-0.9.6.1.tar.bz2 
  129.     cd eaccelerator-0.9.6.1 
  130.     /usr/local/php/bin/phpize 
  131.     ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config 
  132.     make && make install 
  133.     mkdir /dev/shm/eaccelerator 
  134.     chmod 777 /dev/shm/eaccelerator 
  135.     echo "mkdir /dev/shm/eaccelerator ; chmod 777 /dev/shm/eaccelerator" >> /etc/rc.local 
  136. in_memcache () 
  137.     cd $Packages 
  138.     tar zxf memcache-2.2.5.tgz 
  139.     cd memcache-2.2.5 
  140.     /usr/local/php/bin/phpize 
  141.     ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config 
  142.     make && make install 
  143. in_libevent () 
  144.     cd $Packages 
  145.     tar zxf libevent-2.0.19-stable.tar.gz  
  146.     cd libevent-2.0.19-stable 
  147.     ./configure --prefix=/usr/local/libevent 
  148.     make && make install 
  149. in_memcached () 
  150.     echo "Starting install memcached-1.4.14..." 
  151.     cd $Packages 
  152.     tar xzf memcached-1.4.14.tar.gz 
  153.     cd memcached-1.4.14 
  154.     ./configure --with-libevent=/usr/local/libevent --prefix=/usr/local/memcached 
  155.     make && make install 
  156.     echo "/usr/local/memcached/bin/memcached -d -m 1024 -u root -c 2048" >> /etc/rc.local 
  157.  
  158. case $1 in  
  159.     nginx) 
  160.         in_nginx 
  161.         ;;   
  162.     db) 
  163.         in_mysql 
  164.         ;;   
  165.     php) 
  166.         in_libmcrypt 
  167.         in_mhash 
  168.         in_mcrypt 
  169.         in_php 
  170.         in_eaccelerator 
  171.         in_memcache 
  172.         /usr/local/php/sbin/php-fpm start 
  173.         ;;   
  174.     memcached) 
  175.         in_libevent 
  176.         in_memcached 
  177.         ;; 
  178. esac 

 原始地址:http://blog.51bbo.com/archives/1358