网上有很多LNMP/LAMP一键安装脚本,编译安装参数还要修改脚本,此脚本整合了LAMP和LNMP,在任何一台有网络的Red hat 或者centos 服务器上自动配置LNMP或者LAMP,用户可以自定义编译参数也可以使用此脚本默认的参数编译安装。还可以单独安装mysql、nginx、apache、php。

使用方法:将下面代码保存一个文件,例如inst_lanmp.sh 上传到服务器上执行。

此脚本在CentOS 6.0  X864环境下通过:使用效果如下:

 

 

代码如下:;

  1. #!/bin/bash  
  2. #set -x  
  3. #date: 2013-01-06  
  4. #Description: 一键安装LNMP环境 or LAMP 环境 
  5. #Version: 0.1  
  6. #Author: Wolf  
  7. #定义命令搜索路径 
  8. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin  
  9. export PATH  
  10. src_dir=/usr/src  
  11. nginx_dir=/usr/local/nginx  
  12. mysql_dir=/usr/local/mysql  
  13. php_dir=/usr/local/php  
  14. libmcrypt_dir=/usr/local/libmcypt  
  15. apache_dir=/usr/local/apache 
  16. #关闭SELiunx 
  17. echo "Disabled SELinux"  
  18. if [ -s /etc/selinux/config ]  
  19. then  
  20.     sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  
  21. fi 
  22.  
  23. /usr/sbin/setenforce 0  
  24. Check if user is root  
  25. if [ "$UID" -ne 0 ]  
  26. then  
  27.     printf "Error: You must be root to run this script!\n"  
  28.     exit 1  
  29. fi  
  30.  
  31. #检查需要的软件包是否存在,如果没有就下载。 
  32. download_src(){  
  33. cd $src_dir  
  34.  
  35. if [ -s libiconv-1.13.1.tar.gz ] 
  36. then 
  37.     echo "libiconv-1.13.1.tar.gz found" 
  38. else 
  39.     echo "libiconv-1.13.1.tar.gz not found. download new...." 
  40.     wget http://mozbuildtools.googlecode.com/files/libiconv-1.13.1.tar.gz 
  41. fi 
  42.  
  43. if [ -s mhash-0.9.9.9.tar.gz ] 
  44. then 
  45.     echo "mhash-0.9.9.9.tar.gz found" 
  46. else 
  47.     echo "mhash-0.9.9.9.tar.gz not found. download new....." 
  48.     wget http://acelnmp.googlecode.com/files/mhash-0.9.9.9.tar.gz 
  49. fi 
  50.  
  51. if [ -s mysql-5.5.25a.tar.gz ]  
  52. then  
  53.     echo "mysql-5.5.25a.tar.gz found"  
  54. else  
  55.     echo "mysql-5.5.25a.tar.gz not found. download new....."      
  56.     wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz   
  57. fi 
  58.   
  59. if [ -s php-5.3.13.tar.gz ]  
  60. then  
  61.     echo "php-5.3.13.tar.gz found"  
  62. else  
  63.     echo "php-5.3.13.tar.gz not found. download new....."  
  64.     wget http://us1.php.net/distributions/php-5.3.13.tar.gz  
  65. fi 
  66.   
  67. if [ -s google-perftools-1.6.tar.gz ] 
  68. then 
  69.     echo "google-perftools-1.6.tar.gz found" 
  70. else 
  71.     echo "google-perftools-1.6.tar.gz not found. download new....." 
  72.     wget http://gperftools.googlecode.com/files/google-perftools-1.6.tar.gz 
  73. fi 
  74.  
  75. if [ -s cmake-2.8.4.tar.gz ]  
  76. then  
  77.     echo "cmake-2.8.4.tar.gz found......"  
  78. else  
  79.     echo "cmake-2.8.4.tar.gz not found. download new....."  
  80.     wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz  
  81. fi 
  82.   
  83. if [ -s libmcrypt-2.5.7.tar.gz ]  
  84. then  
  85.     echo "libmcrypt-2.5.7.tar.gz found"  
  86. else  
  87.     echo "libmcrypt-2.5.7.tar.gz not found. download new..."  
  88.     wget http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/Production/libmcrypt-2.5.7.tar.gz  
  89. fi 
  90.   
  91. if [ -s memcache-2.2.5.tgz ]  
  92. then  
  93.     echo "memcache-2.2.5.tgz found"  
  94. else  
  95.     echo "memcache-2.2.5.tgz not found. download new......"  
  96.     wget http://vps.googlecode.com/files/memcache-2.2.5.tgz  
  97. fi 
  98.   
  99. if [ -s eaccelerator-0.9.5.3.tar.bz2 ]  
  100. then  
  101.     echo "eaccelerator-0.9.5.3.tar.bz2 found"  
  102. else  
  103.     echo "eaccelerator-0.9.5.3.tar.bz2 not found. download new.."  
  104.     wget http://autosetup1.googlecode.com/files/eaccelerator-0.9.5.3.tar.bz2  
  105. fi 
  106.   
  107. if [ -s ImageMagick.tar.gz ]  
  108. then  
  109.     echo "ImageMagick.tar.gz found"  
  110. else  
  111.     echo "ImageMagick.tar.gz not found. download nrw."  
  112.     wget http://www.p_w_picpathmagick.org/download/ImageMagick.tar.gz  
  113. fi 
  114.   
  115. if [ -s imagick-2.3.0.tgz ]  
  116. then  
  117.     echo "imagick-2.3.0.tgz found"  
  118. else  
  119.     echo  "imagick-2.3.0.tgz not found. download new"  
  120.     wget http://lnmpp.googlecode.com/files/imagick-2.3.0.tgz  
  121. fi  
  122. }  
  123.  
  124. #初始化服务器 
  125. init_server(){  
  126. for src in dialog ntp vim-enhanced vixie-cron gcc gcc-c++ gcc-g77 flex bison autoconf automake glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libtool* zlib-devel libxml2-devel libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel curl curl-devel pam-devel e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel net-snmp net-snmp-devel nss_ldap openldap-clients openldap-servers libtidy libtidy-devel wget libc-client libc-client-devel pcre pcre-devel  
  127. do  
  128.     yum -y install $src  
  129. done  
  130.  
  131. ln -s /usr/lib64/libc-client.so* /usr/lib/  
  132. ln -s /usr/lib64/libldap* /usr/lib  
  133. }  
  134.  
  135.  
  136. #先检测apache是否已经安装,如果已经安装就不在安装,如果没有安装就安装apache 
  137. cd $src_dir 
  138. inst_apache () { 
  139. if [ -d $apache_dir ] 
  140. then  
  141.     echo "Apache is installed"  
  142.     exit 1 
  143. else  
  144.     cd $src_dir 
  145.     echo "Apache not install. install run..." 
  146.     if [ -s httpd-2.2.24.tar.gz ] 
  147.     then 
  148.         echo "httpd-2.2.24.tar.gz found."  
  149.     else 
  150.             echo "httpd-2.2.24.tar.gz not found. download new...."  
  151.             wget http://mirror.apache-kr.org/httpd/httpd-2.2.24.tar.gz 
  152.         fi 
  153.          
  154.         if [ "$apache_mo" = "" ] 
  155.         then 
  156.         echo "你没有输入编译参数,使用默认的参数进行编译......." 
  157.             tar zxvf httpd-2.2.24.tar.gz 
  158.         cd $src_dir/httpd-2.2.24 
  159.         ./configure --prefix=/usr/local/apache3 --enable-so --enable-rewrite --enable-mods-shared=most --with-mpm=worker 
  160.         make && make install 
  161.         cd ../ 
  162.     else 
  163.         tar zxvf httpd-2.2.24.tar.gz 
  164.         cd $src_dir/httpd-2.2.24 
  165.         $apache_mo 
  166.         make && make install 
  167.         fi 
  168.  fi 
  169.   
  170. #先检测mysql是否已经安装,如果已经安装了就不再安装,如果没安装就安装mysql 
  171. inst_mysql(){  
  172. useradd -s /sbin/nologin -M mysql 
  173. tar zxvf cmake-2.8.4.tar.gz  
  174. cd $src_dir/cmake-2.8.4  
  175. ./configure && make && make install 
  176.   
  177. if [ -d $mysql_dir ]  
  178. then  
  179.     echo "MySQL is installed"  
  180. else 
  181.         if [ "$mysql_mo" = "" ] 
  182.         then 
  183.             echo "你没有输入mysql编译参数,使用本脚本默认参数进行编译......" 
  184.             echo "MySQL not install. install run..."  
  185.             cd $src_dir  
  186.             tar zxvf mysql-5.5.25a.tar.gz  
  187.             cd mysql-5.5.25a  
  188.             cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_SSL=yes  -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=on  
  189.             gmake && make install 
  190.         else 
  191.             echo "MySQL not install. install run..."  
  192.             cd $src_dir 
  193.             tar zxvf mysql-5.5.25a.tar.gz 
  194.             cd mysql-5.5.25a 
  195.             $mysql 
  196.         fi 
  197. fi  
  198.  
  199. if [ -f /ect/my.cnf ]  
  200. then 
  201.         cd $src_dir/mysql-5.5.25a 
  202.         echo "MySQL config file my.cnf found. backup my.cnf to my.cnf.bak"  
  203.         mv /etc/my.cnf /etc/my.cnf.bak  
  204.         /bin/cp support-files/my-small.cnf /etc/my.cnf  
  205.         /bin/cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
  206.         chmod 755 /etc/rc.d/init.d/mysqld 
  207.         chown mysql:mysql /usr/local/mysql -R 
  208. fi  
  209. /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --defaults-file=/etc/my.cnf 
  210. chown mysql:mysql /usr/local/mysql -R  
  211. }  
  212.   
  213. inst_libmcypt(){  
  214. if [ -d $libmcrypt_dir ]  
  215. then  
  216.         echo "libmcrypt is installed."  
  217. else  
  218.         cd $src_dir  
  219.         tar zxvf libmcrypt-2.5.7.tar.gz  
  220.         cd libmcrypt-2.5.7  
  221.         ./configure --prefix=/usr/local/libmcypt && make && make install  
  222.         /sbin/ldconfig 
  223.         cd libltdl/ 
  224.         ./configure --enable-ltdl-install 
  225.         make 
  226.         make install 
  227. fi 
  228.   
  229. cd $src_dir 
  230. tar zxf mhash-0.9.9.9.tar.gz 
  231. cd mhash-0.9.9.9/ 
  232. ./configure 
  233. make 
  234. make install 
  235. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
  236. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
  237. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
  238. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
  239. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
  240. }  
  241. #先检测PHP是否已经编译安装,如果安装了就不再进行安装,如果没安装就安装PHP 
  242. inst_php_apache(){  
  243. cd $src_dir 
  244. tar zxf libiconv-1.13.1.tar.gz 
  245. cd libiconv-1.13.1/ 
  246. ./configure --prefix=/usr/local 
  247. make 
  248. make install 
  249. cd $src_dir  
  250. if [ -d $php_dir ] 
  251. then  
  252.     echo "PHP is installed"  
  253. else 
  254.     if [ "$php_mo" = "" ] 
  255.     then 
  256.         echo "你没有输入编译安装参数,使用本脚本默认的参数进行编译安装.........." 
  257.         echo "PHP not install. install run...."  
  258.         cd $src_dir  
  259.         tar zxvf php-5.3.13.tar.gz  
  260.         cd php-5.3.13  
  261.         ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/lib --with-mysql=/usr/local/mysql/bin/mysql_config --with-enable-sysvsem --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir=/usr --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --enable-gd-jis-conv --without-iconv --with-ldap --with-mcrypt=/usr/local/libmcypt --with-zlib-dir --with-snmp --enable-zip --with-curlwrappers --with-imap --with-kerberos --with-imap-ssl --with-freetype-dir --with-mysql=/usr/local/mysql  
  262.         make && make install  
  263.         cp php.ini-development /usr/local/php/lib/php.ini  
  264.         cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  265.     else 
  266.         echo "使用你输入的参数进行编译安装......." 
  267.         echo "PHP not install. install run...."  
  268.         cd $src_dir 
  269.         tar zxvf php-5.3.13.tar.gz 
  270.         cd php-5.3.13 
  271.         $php_mo  
  272.         make && make install  
  273.         cp php.ini-development /usr/local/php/lib/php.ini 
  274.         cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  275.     fi 
  276. fi  
  277. }  
  278. inst_php(){  
  279. cd $src_dir 
  280. tar zxf libiconv-1.13.1.tar.gz 
  281. cd libiconv-1.13.1/ 
  282. ./configure --prefix=/usr/local/libiconv 
  283. make 
  284. make install 
  285. cd $src_dir  
  286. if [ -d $php_dir)  
  287. then  
  288.     echo "PHP is installed"  
  289. else  
  290.         if [ "$php_mo" = "" ] 
  291.         then 
  292.         echo "你没有输入PHP安装编译参数,将使用本脚本默认参数进行编译......" 
  293.         sleep 5 
  294.         echo "请选择安装方式,1,安装和Nginx结合使用的PHP,2,安装和apache结合使用的PHP....." 
  295.         read -p "请输入一个数字[1 | 2]: "  php_num 
  296.             case $php_num in 
  297.                 1) 
  298.                     echo "正在安装和nginx结合使用的PHP.........."              
  299.                     sleep 5 
  300.                     echo "PHP not install. install run...."  
  301.                     cd $src_dir  
  302.                     tar zxvf php-5.3.13.tar.gz  
  303.                     cd php-5.3.13  
  304.                     ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/lib --with-mysql=/usr/local/mysql/bin/mysql_config --with-enable-sysvsem --enable-fpm --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir=/usr --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-iconv=/use/local/libiconv --with-ldap --with-mcrypt=/usr/local/libmcypt --with-zlib-dir --with-snmp --enable-zip --with-curlwrappers --with-imap --with-kerberos --with-imap-ssl --with-freetype-dir --with-mysql=/usr/local/mysql 
  305.                     make && make install  
  306.                     cp php.ini-development /usr/local/php/lib/php.ini  
  307.                     cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  308.                 ;; 
  309.                 2) 
  310.                     echo "正在安装和apache结合使用的PHP......." 
  311.                     sleep 5 
  312.                     ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/lib --with-mysql=/usr/local/mysql/bin/mysql_config --with-enable-sysvsem --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir=/usr --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --enable-gd-jis-conv --without-iconv --with-ldap --with-mcrypt=/usr/local/libmcypt --with-zlib-dir --with-snmp --enable-zip --with-curlwrappers --with-imap --with-kerberos --with-imap-ssl --with-freetype-dir --with-mysql=/usr/local/mysql 
  313.                     make && make install 
  314.                     cp php.ini-development /usr/local/php/lib/php.ini 
  315.                     cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  316.                 ;; 
  317.                 *) 
  318.                     echo "请输入一个数字[1 | 2]: " 
  319.             esac 
  320.         else 
  321.             echo "你输入了PHP编译安装参数,使用你输入的参数进行编译......." 
  322.             sleep 5 
  323.             echo "PHP not install. install run...."  
  324.             cd $src_dir 
  325.             tar zxvf php-5.3.13.tar.gz 
  326.             cd php-5.3.13 
  327.             $php_mo 
  328.             make && make install 
  329.             cp php.ini-development /usr/local/php/lib/php.ini  
  330.             cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  331.         fi 
  332. fi  
  333.  
  334. inst_php_nginx () { 
  335. cd $src_dir 
  336. tar zxf libiconv-1.13.1.tar.gz 
  337. cd libiconv-1.13.1/ 
  338. ./configure --prefix=/usr/local 
  339. make 
  340. make install 
  341. cd $src_dir  
  342. if [ -d $php_dir)  
  343. then  
  344.     echo "PHP is installed"  
  345. else  
  346.         if [ "$php_mo" = "" ] 
  347.         then 
  348.             echo "你没有输入编译安装参数,使用本脚本默认的参数进行安装" 
  349.             echo "PHP not install. install run...."  
  350.             cd $src_dir  
  351.             tar zxvf php-5.3.13.tar.gz  
  352.             cd php-5.3.13  
  353.             ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/lib --with-mysql=/usr/local/mysql/bin/mysql_config --with-enable-sysvsem --enable-fpm --with-openssl --with-zlib --with-bz2 --with-curl --with-libxml-dir=/usr --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf --enable-gd-jis-conv --without-iconv --with-ldap --with-mcrypt=/usr/local/libmcypt --with-zlib-dir --with-snmp --enable-zip --with-curlwrappers --with-imap --with-kerberos --with-imap-ssl --with-freetype-dir --with-mysql=/usr/local/mysql  
  354.             make && make install  
  355.             cp php.ini-development /usr/local/php/lib/php.ini  
  356.             cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  357.         else 
  358.             echo "你输入了mysql编译参数,使用你输入的参数进行编译........" 
  359.             echo "PHP not install. install run...."  
  360.             sleep 5 
  361.             cd php-5.3.13 
  362.             $php_mo 
  363.             make && make install 
  364.             cp php.ini-development /usr/local/php/lib/php.ini 
  365.             cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
  366.         fi 
  367.              
  368. fi  
  369. #安装PHP扩展  
  370. inst_php_ex(){  
  371. cd $src_dir  
  372. tar zxf memcache-2.2.5.tgz  
  373. cd memcache-2.2.5/  
  374. ${php_dir}/bin/phpize  
  375. ./configure --with-php-config=${php_dir}/bin/php-config  
  376. make  
  377. make install  
  378. cd ../  
  379.   
  380. tar jxf eaccelerator-0.9.5.3.tar.bz2  
  381. cd eaccelerator-0.9.5.3  
  382. ${php_dir}/bin/phpize  
  383. ./configure --enable-eaccelerator=shared --with-eaccelerator-shared-memory --with-php-config=${php_dir}/bin/php-config  
  384. make  
  385. make install  
  386. cd $src_dir  
  387.   
  388. tar zxf ImageMagick.tar.gz  
  389. cd ImageMagick-6.8.1-9/  
  390. ./configure  
  391. make  
  392. make install  
  393. cd ../ 
  394.   
  395. tar zxf imagick-2.3.0.tgz  
  396. cd imagick-2.3.0/  
  397. ${php_dir}/bin/phpize 
  398. ./configure --with-php-config=${php_dir}/bin/php-config  
  399. make  
  400. make install  
  401. cd ..  
  402. echo "php extension installed successfully!"  
  403. }  
  404. #安装nginx  
  405. inst_nginx(){  
  406. if [ -s nginx-1.3.10.tar.gz ]  
  407. then  
  408.     echo "nginx-1.3.10.tar.gz found."  
  409. else  
  410.     echo "nginx-1.3.10.tar.gz not found. download new...."  
  411.     wget http://www.nginx.org/download/nginx-1.3.10.tar.gz  
  412. fi 
  413.   
  414. cd $src_dir 
  415. tar zxf google-perftools-1.6.tar.gz 
  416. cd google-perftools* 
  417. ./configure 
  418. make 
  419. make install 
  420. cd $src_dir 
  421.  
  422. if [ -d $nginx_dir ]  
  423. then  
  424.         echo "Nginx is installed"  
  425. else  
  426.     if [ "$nginx_mo" = "" ] 
  427.     then 
  428.         echo "你没有输入安装参数,使用本脚本默认的参数进行编译安装" 
  429.         cd $src_dir  
  430.         tar zxvf nginx-1.3.10.tar.gz  
  431.         cd nginx-1.3.10  
  432.         ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_stub_status_module  
  433.         make && make install 
  434.     else 
  435.         echo "你输入了安装参数,使用你输入的参数进行安装......" 
  436.         cd $src_dir 
  437.         tar zxvf nginx-1.3.10.tar.gz 
  438.         cd nginx-1.3.10  
  439.         $nginx_mo 
  440.         make && make install 
  441.     fi 
  442. fi  
  443.   
  444. #生成一个PHP启动脚本,可以用service phpd start | restart | stop | show 进行启动、重启、关闭、查看运行状态 
  445. phpd(){ 
  446. cat <<EOF >>phpd 
  447. #!/bin/bash   
  448. #Author: wolf 
  449. #Date: 2013-01-03 
  450. #   
  451. #chkconfig: - 85 15   
  452. #processname: php  
  453. php=/usr/local/php/sbin/php-fpm   
  454. conf=/usr/local/php/etc/php-fpm.conf   
  455. case $1 in   
  456.        start)   
  457.               echo -n "Starting php"   
  458.               $php   
  459.               echo " done"   
  460.        ;;   
  461.       stop)   
  462.               echo -n "Stopping php"   
  463.               killall -9 php-fpm   
  464.               echo " done"   
  465.        ;;   
  466.         restart)   
  467.                 $0 stop   
  468.                 $0 start   
  469.        ;;   
  470.        show)   
  471.               ps -aux|grep php   
  472.        ;;   
  473.        *)   
  474.               echo -n "Usage: $0 {start|restart|reload|stop|test|show}"   
  475.        ;;   
  476. esac 
  477. EOF 
  478. if [ -f /usr/src/phpd ] 
  479. then 
  480.     /bin/cp /usr/src/phpd /etc/rc.d/init.d/phpd 
  481.     chmod +x /etc/rc.d/init.d/phpd 
  482. fi 
  483. #生成nginx启动脚本,可以用service nginxd start | restart | stop | reload | test | show 进行重启、关闭、启动>、测试配置文件、查看状态和重新加载。 
  484. nginxd(){ 
  485. cat <<EOF >>/usr/src/nginxd 
  486. #!/bin/bash   
  487. #Author: wolf 
  488. #Date: 2013-01-03 
  489. #   
  490. #chkconfig: - 85 15   
  491. #description: Nginx is a World Wide Web server.   
  492. #processname: nginx   
  493. nginx=/usr/local/nginx/sbin/nginx   
  494. conf=/usr/local/nginx/conf/nginx.conf    
  495. case $1 in   
  496.        start)   
  497.               echo -n "Starting Nginx"   
  498.               $nginx -c $conf   
  499.               echo " done"   
  500.        ;;   
  501.       stop)   
  502.               echo -n "Stopping Nginx"   
  503.               killall -9 nginx   
  504.               echo " done"   
  505.        ;;   
  506.        test)   
  507.               $nginx -t -c $conf   
  508.        ;;   
  509.         reload)   
  510.               echo -n "Reloading Nginx"   
  511.               ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP   
  512.               echo " done"   
  513.        ;;   
  514.         restart)   
  515.                 $0 stop   
  516.                 $0 start   
  517.        ;;   
  518.        show)   
  519.               ps -aux|grep nginx   
  520.        ;;   
  521.        *)   
  522.               echo -n "Usage: $0 {start|restart|reload|stop|test|show}"   
  523.        ;;   
  524. esac 
  525. EOF 
  526. if [ -s /usr/src/nginxd ] 
  527. then 
  528.     /bin/cp /usr/src/nginxd /etc/rc.d/init.d/nginxd 
  529.     chmod +x /etc/rc.d/init.d/nginxd 
  530. fi 
  531. cat <<EOF 
  532. ############################################ 
  533.   1 install Nginx 
  534.   2 install PHP 
  535.   3 install MySQL 
  536.   4 install LNMP 
  537.   5 install Apache 
  538.   6 install LAMP 
  539. ############################################ 
  540. ############################################ 
  541. Select your web server(1 | 2 | 3 | 4 | 5 | 6) 
  542. EOF 
  543.  
  544. echo "Input a number: " 
  545. read num 
  546. case $num in   
  547.    1)  
  548.         read -p "请输入nginx的编译参数:" nginx_mo 
  549.         echo "Nginx installing........... have a rest"  
  550.         init_server  
  551.         download_src  
  552.         inst_nginx  
  553.     ;;  
  554.    2)  
  555.         read -p "请输入PHP的安装参数" php_mo 
  556.         echo "PHP installing....... have a rest"  
  557.         download_src  
  558.         init_server  
  559.         inst_mysql  
  560.         inst_libmcypt  
  561.         inst_php  
  562.         inst_php_ex 
  563.     ;;  
  564.     3)  
  565.         read -p "请输入mysql编译安装参数: " mysql_mo 
  566.         echo "MySQL installing...... have a rest"  
  567.         init_server   
  568.         download_src  
  569.         inst_mysql  
  570.      ;;  
  571.     4)  
  572.             read -p "请输入nginx的编译参数:" nginx_mo 
  573.             read -p "请输入PHP的安装参数" php_mo 
  574.             read -p "请输入mysql编译安装参数: " mysql_mo 
  575.             echo "LNMP installing......  have a rest"  
  576.             download_src  
  577.             init_server  
  578.             inst_mysql  
  579.             inst_libmcypt  
  580.             inst_php  
  581.             inst_php_ex 
  582.             inst_nginx   
  583.     ;;  
  584.     5) 
  585.            read -p "请输入apache编译安装参数: " apache_mo 
  586.            echo "apache installing....... nave a rest."  
  587.            download_src  
  588.            init_server  
  589.            inst_apache 
  590.     ;; 
  591.     6) 
  592.           read -p "请输入apache的安装参数: " apache_mo 
  593.           read -p "请输入mysql的安装参数: " mysql_mo 
  594.           read -p "请输入php的安装参数: "  php_mo 
  595.           echo "LAMP installing......... nave a rest." 
  596.           download_src 
  597.           init_server 
  598.           inst_apache 
  599.           inst_mysql 
  600.           inst_libmcypt 
  601.           inst_php_apache 
  602.           inst_php_ex 
  603.   ;;     
  604.   *) 
  605.           echo "Input error"          
  606.           echo "Select your service(1 | 2 | 3 | 4| 5| 6)"          
  607. ;; 
  608. esac 
  609.   
  610. #检查安装是否成功 
  611. case $num in  
  612.    4)  
  613.     if [ -s /usr/local/nginx ] && [ -s /usr/local/php ] && [ -s /usr/local/mysql ]  
  614.     then  
  615.           echo "LNMP is install  completed"  
  616.           echo "Nginx basedir: /usr/local/nginx"  
  617.           echo "PHP basedir: /usr/local/php"  
  618.           echo "MySQL basedir: /usr/local/mysql"  
  619.           echo "MySQL datadir: /usr/local/mysql/data"  
  620.     else  
  621.          echo "LNMP is install fail"  
  622.     fi  
  623.    ;;  
  624.    3)  
  625.     if [ -s /usr/local/mysql ]  
  626.     then  
  627.         echo "Nginx is install completed"  
  628.         echo "MySQL basedir: /usr/local/mysql"  
  629.         echo "MySQL datadir: /usr/local/mysql/data"  
  630.         phpd 
  631.         nginxd 
  632.     else  
  633.         echo "Nginx is install fail"  
  634.     fi  
  635.     ;;  
  636.    2)  
  637.     if  [ -s /usr/local/php ]  
  638.     then  
  639.         echo "PHP is install completed"  
  640.         echo "PHP basedir: /usr/local/php"  
  641.         phpd 
  642.     else  
  643.         echo "PHP is install fail"  
  644.     fi  
  645.     ;;  
  646.     1)  
  647.     if [ -s /usr/local/nginx ]  
  648.     then  
  649.         echo "Nginx is install completed"  
  650.         echo "Nginx basedir: /usr/local/nginx "  
  651.         nginxd 
  652.     else  
  653.         echo "Nginx is install fail"  
  654.     fi  
  655.     ;;  
  656.    5) 
  657.       if [ -s /usr/local/apache ] 
  658.       then 
  659.           echo "Apache is installed completed." 
  660.           echo "Apache basedir: /usr/local/nginx." 
  661.       else 
  662.           echo "Apache is install fail." 
  663.       fi 
  664.    ;; 
  665.    6) 
  666.        if [ -s /usr/local/apache ] && [ -s /usr/local/php ] && [ -s /usr/local/mysql ] 
  667.        then 
  668.             echo "LNMP is install  completed"  
  669.             echo "Apache basedir: /usr/local/apache"  
  670.             echo "PHP basedir: /usr/local/php"  
  671.             echo "MySQL basedir: /usr/local/mysql"  
  672.             echo "MySQL datadir: /usr/local/mysql/data"  
  673.         else 
  674.             echo "LNMP is install fail"  
  675.         fi 
  676.    ;; 
  677. esac 

 

 更多博文请移步我的私人博客 linux开源技术博客 或者51cto博客 平凡的日子

脚本文件已经上传到下载中心。下载脚本文件 http://down.51cto.com/data/753593