1. #!/bin/bash 
  2. #Authors are from JC 
  3. #From the region BeiJing-China 
  4. #Contact:285221465@qq.com 
  5.  
  6. # Source function library. 
  7. . /etc/rc.d/init.d/functions 
  8.  
  9. cd $shell 
  10. shell=/shell/script 
  11. if [ -d /shell/script ];then 
  12.    action "shell安装目录已存在:" /bin/true 
  13. else 
  14.    mkdir -p $shell >/dev/null 
  15. fi 
  16.  
  17. function main_menu() 
  18. echo;echo; 
  19. echo "----------------------------------Linux+Nginx+1.2+MySQL5.5+PHP5.2+Memcache---------------------------------------------" 
  20. current_date=`date +%Y%m%d-%H:%M:%S` 
  21. dis_manumenu="《线上服务器${ip}安装服务菜单》" 
  22. cat <<EOF 
  23.               当前时间为:$current_date 
  24.               ============================================================== 
  25.               $dis_manumenu 
  26.               ==============================================================  
  27.               -->[lnmp服务器自动化版本程序 ]:<--      
  28.               **1)安装lnmp服务(make && make install)                    
  29.               **2)查看lnmp启动服务端口(tcp:80,3306,9000)                                       
  30.               **3)启动lnmp服务端口                                          
  31.               **4)关闭lnmp服务端口                                          
  32.               **5)回滚之前操作(即恢复lnmp安装前的状态)  
  33.               **6)备份lnmp环境                                  
  34.               **7)还原lnmp环境                                  
  35.               ############################################################### 
  36.               =============================================================== 
  37. EOF 
  38. main_menu 
  39.  
  40. read -p "请选择: " num 
  41. ##############编译前的依赖环境安装############################ 
  42.  
  43. case $num in 
  44. 1) 
  45. echo "-------------------------------------现在开始安装lnmp+memcache环境----------------------------------------------------------" 
  46. sleep 3 
  47. cd /etc/yum.repos.d 
  48. wget http://mirrors.163.com/.help/CentOS-Base-163.repo 
  49. yum -y install ntp rsync sudo 
  50. /usr/sbin/ntpdate pool.ntp.org 
  51.  
  52. yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make libXp* gcc-c++ autoconf ncurses ncurses-devel 
  53.  
  54. echo 'export LC_ALL=C'>> /etc/profile 
  55. source /etc/profile 
  56.  
  57. #cd $shell 
  58. #[ ! -f cmake-2.8.4.tar.gz ] && \ 
  59. #wget -P/shell/script/ -c http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz && echo "cmake-2.8.4.tar.gz download is OK" 
  60. #   cd $shell 
  61. #   tar zxvf cmake-2.8.4.tar.gz 
  62. #   cd cmake-2.8.4 
  63. #   ./configure 
  64. #   gmake 
  65. #   gmake install 
  66.  
  67. sleep 3 
  68.  
  69.  cd $shell 
  70. [ ! -f bison-2.5.tar.gz ] && \ 
  71. wget -P /shell/script/ -c http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz && echo "bison-2.5.tar.gz download is OK" 
  72.   sleep 2 
  73.  
  74.    cd $shell 
  75.       tar zxvf bison-2.5.tar.gz 
  76.       cd bison-2.5 
  77.       ./configure && make && make install 
  78. sleep 3 
  79.  
  80. ##############编译安装MySQL5.1.56版本数据库################### 
  81. yum -y install cmake  
  82. cd $shell 
  83. [ ! -f mysql-5.5.19.tar.gz ] && \ 
  84. wget -P/shell/script/ -c http://down1.chinaunix.net/distfiles/mysql-5.5.19.tar.gz && echo "mysql-5.5.19.tar.gz download is OK" 
  85.  
  86. cd $shell 
  87. groupadd mysql 
  88. useradd -s /sbin/nologin -g mysql -M mysql 
  89. tar zxvf mysql-5.5.19.tar.gz 
  90. cd $shell/mysql-5.5.19 
  91. /usr/bin/cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STOPAGE_ENGINE=1 -DWITH_BLACKHOLE_STOPAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP-PORT=3306 
  92. make && make install 
  93. chmod +w /usr/local/mysql 
  94. chown -R mysql:mysql /usr/local/mysql 
  95. ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16 
  96. mkdir -p /var/mysql/ 
  97. mkdir -p /var/mysql/data/ 
  98. mkdir -p /var/mysql/log/ 
  99. chown -R mysql:mysql /var/mysql/ 
  100. cd support-files/ 
  101. cp my-large.cnf /var/mysql/my.cnf 
  102. cp mysql.server /etc/init.d/mysqld 
  103. /usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql/ --datadir=/var/mysql/data/ --user=mysql 
  104. chmod 700 /etc/init.d/mysqld 
  105. echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile 
  106. source /etc/profile 
  107. ln -s /usr/local/mysql/bin/* /usr/bin/ 
  108. sed -i '46s#basedir=#basedir=/usr/local/mysql/#' /etc/init.d/mysqld 
  109. sed -i '47s#datadir=#datadir=/var/mysql/data/#' /etc/init.d/mysqld 
  110. chkconfig --add mysqld 
  111. chkconfig --level 345 mysqld on 
  112. /etc/init.d/mysqld restart 
  113.  
  114. action "mysql5.5.19版本安装完成" /bin/true 
  115. action "mysql5.5.19版本安装完成" /bin/true 
  116.  
  117. sleep 3 
  118.  
  119. ############编译安装libiconv1.13.1版本############################################# 
  120. cd $shell 
  121. [ ! -f libiconv-1.13.1.tar.gz ] && \ 
  122. wget -P $shell -c http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz 
  123. echo "libiconv-1.13.1.tar.gz download is OK" 
  124.  
  125.   sleep 3 
  126.  
  127. cd $shell 
  128.    tar zxvf libiconv-1.13.1.tar.gz 
  129.    cd libiconv-1.13.1  
  130.    ./configure --prefix=/usr/local && make && make install 
  131.  
  132.    action "libiconv1.13.1版本安装完成"  /bin/true 
  133.    action "libiconv1.13.1版本安装完成"  /bin/true 
  134.  
  135.   sleep 3 
  136.  
  137. cd $shell 
  138. [ ! -f libmcrypt-2.5.8.tar.gz ] && \ 
  139. wget -P $shell -c http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz 
  140. echo "libmcrypt-2.5.8.tar.gz download is OK" 
  141. sleep 3 
  142.  
  143.    cd $shell  
  144.    tar zxvf libmcrypt-2.5.8.tar.gz 
  145.    cd libmcrypt-2.5.8 
  146.    ./configure && make && make install 
  147.    /sbin/ldconfig 
  148.    cd libltdl/ 
  149.   ./configure --enable-ltdl-install 
  150.    make && make install 
  151.  
  152.   action "libmcrypt2.5.8版本安装完成" /bin/true 
  153.   action "libmcrypt2.5.8版本安装完成" /bin/true 
  154.  
  155.   sleep 3 
  156. ############编译安装mhash0.9.9.9.9版本############################################# 
  157. cd $shell 
  158. [ ! -f mhash-0.9.9.9.tar.gz ] && \ 
  159. wget -P /shell/script/ -c "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?modtime=1175740843&big_mirror=0
  160. echo "mhash-0.9.9.9.tar.gz download is OK" 
  161.    sleep 3 
  162.  
  163.   cd $shell 
  164.   tar zxvf mhash-0.9.9.9.tar.gz 
  165.   cd mhash-0.9.9.9/ 
  166.   ./configure && make && make install 
  167.   ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
  168.   ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
  169.   ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
  170.   ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
  171.   ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
  172.   ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
  173.   ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
  174.   ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
  175.   ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
  176.   ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
  177.  
  178.   action "mhash0.9.9.9版本安装完成"  /bin/true 
  179.   action "mhash0.9.9.9版本安装完成"  /bin/true 
  180.  
  181. #################编译安装mcrypt2.6.8版本############################################## 
  182. cd $shell 
  183. [ ! -f mcrypt-2.6.8.tar.gz ] && \ 
  184. wget -P /shell/script -c "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?modtime=1194463373&big_mirror=0
  185. echo "mcrypt-2.6.8.tar.gz download is OK" 
  186.   sleep 3 
  187.  
  188.   cd $shell 
  189.   tar zxvf mcrypt-2.6.8.tar.gz 
  190.   cd mcrypt-2.6.8/ 
  191.   /sbin/ldconfig 
  192.   ./configure 
  193.   make && make install 
  194.   sleep 3 
  195.  
  196. ################编译安装php5.2.17 or patch php5.2.17#################################### 
  197. cd $shell 
  198.    [ ! -f php-5.2.17.tar.gz ] && \ 
  199. wget -P /shell/script -c http://www.php.net/get/php-5.2.17.tar.gz/from/this/mirror 
  200. echo "php-5.2.17.tar.gz download is OK" 
  201. sleep 3 
  202.   cd $shell  
  203.   [ ! -f php-5.2.17-fpm-0.5.14.diff.gz ] && \ 
  204. wget -P /shell/script -c http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz  
  205. echo "php-5.2.17-fpm-0.5.14.diff.gz download is OK" 
  206. sleep 3 
  207.          
  208. cd $shell 
  209.    tar -zxvf php-5.2.17.tar.gz 
  210.    gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1 
  211.    cd php-5.2.17/ 
  212.    ./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=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --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 --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap 
  213. make ZEND_EXTRA_LIBS='-liconv' 
  214. make install 
  215.  
  216. cp php.ini-dist /usr/local/php/etc/php.ini 
  217.  
  218. ############编译安装memcache2.2.5版本########################### 
  219. yum -y install libevent libevent-devel 
  220. cd $shell  
  221.    [ ! -f memcached-1.2.5.tar.gz ] && \ 
  222.    wget -P /shell/script -c http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz 
  223.    echo "memcache-1.2.5.tar.gz download is OK" 
  224.    sleep 3  
  225.  
  226. cd $shell 
  227.    tar zxvf memcached-1.2.5.tar.gz 
  228.    cd memcached-1.2.5 
  229.    ./configure --prefix=/usr/local/memcache 
  230.    make && make install 
  231.        
  232. cd $shell 
  233.    [ ! -f memcache-2.2.5.tgz ] && \ 
  234.    wget -P /shell/script -c http://pecl.php.net/get/memcache-2.2.5.tgz 
  235.    echo "memcache-2.2.5.tgz download is OK" 
  236.    sleep 3 
  237.    
  238. cd $shell 
  239.    tar zxvf memcache-2.2.5.tgz 
  240.    cd memcache-2.2.5/ 
  241.    /usr/local/php/bin/phpize 
  242.    ./configure --with-php-config=/usr/local/php/bin/php-config 
  243.    make && make install 
  244.  
  245. ##########编译安装eaccelerator0.9.6.1版本######################## 
  246. cd $shell 
  247.    [ ! -f eaccelerator-0.9.6.1.tar.bz2 ] && \ 
  248. wget -P /shell/script -c http://sourceforge.net/projects/eaccelerator/files/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.tar.bz2   
  249. echo "eaccelerator-0.9.6.1.tar.bz2 download is OK" 
  250. sleep 3 
  251.    cd $shell 
  252.       tar -xjvf eaccelerator-0.9.6.1.tar.bz2 
  253.       cd eaccelerator-0.9.6.1 
  254.       /usr/local/php/bin/phpize 
  255.      ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config 
  256.      make && make install 
  257.  
  258. ##########编译安装PDO_MYSQL1.0.2版本############################# 
  259. cd $shell 
  260.    [ ! -f PDO_MYSQL-1.0.2.tgz ] && \ 
  261. wget -P /shell/script -c http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 
  262. echo "PDO_MYSQL-1.0.2.tgz download is OK" 
  263. sleep 3 
  264.  
  265.     cd $shell 
  266.        tar zxvf PDO_MYSQL-1.0.2.tgz 
  267.        cd PDO_MYSQL-1.0.2/ 
  268.        rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm 
  269.        /usr/local/php/bin/phpize 
  270.        ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql 
  271.        make && make install 
  272.  
  273. #########编译安装ImageMagick6.7.1.0版本########################## 
  274. cd $shell 
  275.    [ ! -f ImageMagick.tar.gz ] && \ 
  276.    wget -P /shell/script -c http://blog.s135.com/soft/linux/nginx_php/imagick/ImageMagick.tar.gz  
  277.    echo "ImageMagick.tar.gz download is OK" 
  278. sleep 3 
  279.    
  280.    cd $shell 
  281.       tar -zxvf ImageMagick.tar.gz 
  282.       cd ImageMagick-6.5.1-2  
  283.       ./configure && make && make install 
  284.  
  285. #######编译安装imagick2.3.0版本################################# 
  286. cd $shell 
  287.    [ ! -f imagick-2.3.0.tgz ] && \ 
  288. wget -P /shell/script -c http://pecl.php.net/get/imagick-2.3.0.tgz 
  289.   echo "imagick-2.3.0.tgz download is OK" 
  290. sleep 3 
  291.  
  292.    cd $shell 
  293.       tar zxvf imagick-2.3.0.tgz 
  294.       cd imagick-2.3.0 
  295.       /usr/local/php/bin/phpize 
  296.      ./configure --with-php-config=/usr/local/php/bin/php-config 
  297.     make && make install 
  298.  
  299. sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.ini 
  300. sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /usr/local/php/etc/php.ini 
  301. sed -i "s#; cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /usr/local/php/etc/php.ini 
  302.  
  303. mkdir -p /usr/local/eaccelerator_cache 
  304. sed -i '1290a [eaccelerator]' /usr/local/php/etc/php.ini 
  305. sed -i '1291a zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"' /usr/local/php/etc/php.ini 
  306. sed -i '1292a eaccelerator.shm_size="64"' /usr/local/php/etc/php.ini 
  307. sed -i '1293a eaccelerator.cache_dir="/usr/local/eaccelerator_cache"' /usr/local/php/etc/php.ini 
  308. sed -i '1294a eaccelerator.enable="1"' /usr/local/php/etc/php.ini 
  309. sed -i '1295a eaccelerator.optimizer="1"' /usr/local/php/etc/php.ini 
  310. sed -i '1296a eaccelerator.check_mtime="1"' /usr/local/php/etc/php.ini 
  311. sed -i '1297a eaccelerator.debug="0"' /usr/local/php/etc/php.ini 
  312. sed -i '1298a eaccelerator.filter=""' /usr/local/php/etc/php.ini 
  313. sed -i '1299a eaccelerator.shm_max="0"' /usr/local/php/etc/php.ini 
  314. sed -i '1300a eaccelerator.shm_ttl="3600"' /usr/local/php/etc/php.ini 
  315. sed -i '1301a eaccelerator.shm_prune_period="3600"' /usr/local/php/etc/php.ini 
  316. sed -i '1302a seaccelerator.shm_only="0"' /usr/local/php/etc/php.ini 
  317. sed -i '1303a eaccelerator.compress="1"' /usr/local/php/etc/php.ini 
  318. sed -i '1304a eaccelerator.compress_level="9"' /usr/local/php/etc/php.ini 
  319.  
  320. /usr/sbin/groupadd www 
  321. /usr/sbin/useradd -g www www 
  322. mkdir -p /var/www/wiki 
  323. mkdir -p /var/www/memcache 
  324. mkdir -p /var/www/phpmyadmin 
  325. chmod +w /var/www/memcache 
  326. chmod +w /var/www/phpmyadmin 
  327. chmod +w /var/www/wiki 
  328. chown -R www:www /var/www/wiki 
  329. chown -R www:www /var/www/memcache 
  330. chown -R www:www /var/www/phpmyadmin 
  331.  
  332. sed -i '58s#<!--##g' /usr/local/php/etc/php-fpm.conf 
  333. sed -i '58s#-->##g' /usr/local/php/etc/php-fpm.conf 
  334. sed -i '59s#<!--##g' /usr/local/php/etc/php-fpm.conf 
  335. sed -i '59s#-->##g' /usr/local/php/etc/php-fpm.conf 
  336. sed -i '63s#<!--##g' /usr/local/php/etc/php-fpm.conf 
  337. sed -i '63s#-->##g' /usr/local/php/etc/php-fpm.conf 
  338. sed -i '66s#<!--##g' /usr/local/php/etc/php-fpm.conf 
  339. sed -i '66s#-->##g' /usr/local/php/etc/php-fpm.conf 
  340. sed -i '63s#nobody#www#g' /usr/local/php/etc/php-fpm.conf 
  341. sed -i '66s#nobody#www#g' /usr/local/php/etc/php-fpm.conf 
  342. sed -i '79s#5#128#g' /usr/local/php/etc/php-fpm.conf 
  343. sed -i '113s#1024#20480#g' /usr/local/php/etc/php-fpm.conf 
  344. sed -i '132s#500#1024#g' /usr/local/php/etc/php-fpm.conf 
  345.  
  346. ulimit -SHn 65535 
  347. /usr/local/php/sbin/php-fpm start 
  348.  
  349.  
  350. ###############编译安装pcre8.31版本 or Nginx1.21版本########################## 
  351. cd $shell 
  352.    [ ! -f pcre-8.31.tar.gz ] && \ 
  353. wget -P /shell/script -c ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz 
  354. echo "pcre-8.31.tar.gz download is OK" 
  355. sleep 3 
  356.  
  357. cd $shell 
  358. tar -zxvf pcre-8.31.tar.gz  
  359. cd pcre-8.31 
  360. ./configure && make && make install 
  361.  
  362. cd $shell  
  363.    [ ! -f  nginx-1.2.1.tar.gz ] && \ 
  364. wget -P /shell/script -c http://www.nginx.org/download/nginx-1.2.1.tar.gz  
  365. echo "nginx-1.2.1.tar.gz download is OK" 
  366. sleep 3 
  367.  
  368.   cd $shell 
  369.      tar -zxvf nginx-1.2.1.tar.gz 
  370.      cd nginx-1.2.1 
  371.      ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 
  372.      make && make install 
  373.  
  374. mkdir -p /app/logs 
  375. chmod +w /app/logs 
  376. chown -R www:www /app/logs 
  377.  
  378. mv  /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.jc 
  379. mv /opt/jc/nginx.conf /usr/local/nginx/conf/ 
  380. mv /opt/jc/fcgi.conf /usr/local/nginx/conf/ 
  381.  
  382. ulimit -SHn 65535 
  383. /usr/local/nginx/sbin/nginx 
  384.  
  385. echo '/usr/local/nginx/sbin/nginx' >>/etc/rc.local 
  386. echo '/usr/local/php/sbin/php-fpm start' >>/etc/rc.local 
  387. echo '/usr/local/mysql/bin/mysql start' >>/etc/rc.local 
  388.  
  389. sed -i '33a net.ipv4.tcp_max_syn_backlog = 65536' /etc/sysctl.conf 
  390. sed -i '34a net.core.netdev_max_backlog =  32768' /etc/sysctl.conf 
  391. sed -i '35a net.core.somaxconn = 32768' /etc/sysctl.conf 
  392. sed -i '36a net.core.somaxconn = 32768' /etc/sysctl.conf 
  393. sed -i '37a net.core.wmem_default = 8388608' /etc/sysctl.conf 
  394. sed -i '38a net.core.rmem_default = 8388608' /etc/sysctl.conf 
  395. sed -i '39a net.core.rmem_max = 16777216' /etc/sysctl.conf 
  396. sed -i '40a net.core.wmem_max = 16777216' /etc/sysctl.conf 
  397. sed -i '41a net.ipv4.tcp_timestamps = 0' /etc/sysctl.conf 
  398. sed -i '42a net.ipv4.tcp_synack_retries = 2' /etc/sysctl.conf 
  399. sed -i '43a net.ipv4.tcp_syn_retries = 2' /etc/sysctl.conf 
  400. sed -i '44a net.ipv4.tcp_tw_recycle = 1' /etc/sysctl.conf 
  401. sed -i '45a net.ipv4.tcp_tw_reuse = 1' /etc/sysctl.conf 
  402. sed -i '46a net.ipv4.tcp_mem = 94500000 915000000 927000000' /etc/sysctl.conf 
  403. sed -i '47a net.ipv4.tcp_max_orphans = 3276800' /etc/sysctl.conf 
  404. sed -i '48a net.ipv4.ip_local_port_range = 1024  65535' /etc/sysctl.conf 
  405.  
  406. ##################安装memcache管理页面#################################### 
  407. cd $shell  
  408.    [ ! -f memcachephp.zip ] && \ 
  409. wget -P /shell/script -c http://livebookmark.net/memcachephp/memcachephp.zip 
  410.    echo "memcachephp.zip download is OK" 
  411. sleep 3 
  412.  
  413. cd $shell 
  414. unzip -o memcachephp.zip 
  415. sed -i '22s/memcache/test/g' $shell/memcache.php 
  416. sed -i '23s/password/123456/g' $shell/memcache.php 
  417. sed -i '28s/mymemcache-server1/10.0.19.23/g' $shell/memcache.php 
  418. sed -i '29s/mymemcache-server2/10.0.19.23/g' $shell/memcache.php 
  419. sed -i '29s/11211/11212/g'  $shell/memcache.php 
  420. cp -rf $shell/memcache.php  /var/www/memcache 
  421. chmod 755 /var/www/memcache/memcache.php    
  422.  
  423. /sbin/sysctl -p 
  424. cd /opt/jc/ 
  425. cp -rf nginx  /etc/init.d/ 
  426. cp -rf /usr/local/php/sbin/php-fpm /etc/init.d/ 
  427. dos2unix /etc/init.d/nginx 
  428. dos2unix /etc/init.d/php-fpm 
  429. chmod 777 /etc/init.d/nginx 
  430. chmod 777 /etc/init.d/php-fpm 
  431. ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1 
  432. /sbin/ldconfig 
  433. ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/ 
  434. iptables -X 
  435. iptables -F 
  436. iptables -Z 
  437. /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
  438. /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
  439. /sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT 
  440. /sbin/iptables -A INPUT -p tcp --dport 9000 -j ACCEPT 
  441. /sbin/iptables -A INPUT -p tcp --dport 11211 -j ACCEPT 
  442. /sbin/iptables -A INPUT -p tcp --dport 11212 -j ACCEPT 
  443. ;; 
  444. 2) 
  445. action "正在查看lnmp and Memcache端口信息..............................." /bin/true 
  446. sleep 3 
  447. echo "--------------------------------------lnmp端口列表--------------------------------------------------------" 
  448. netstat -lntp|grep 80 
  449. netstat -lntp|grep 3306 
  450. netstat -lntp|grep 9000 
  451. netstat -lntp|grep 11211 
  452. netstat -lntp|grep 11212 
  453. echo "--------------------------------------lnmp端口列表---------------------------------------------------------" 
  454.  
  455.  
  456. ;; 
  457. 3) 
  458. echo "正在启动,请稍等....................." 
  459. sleep 3 
  460. nohup /etc/init.d/nginx restart >/dev/null 
  461. nohup /etc/init.d/mysqld restart  >/dev/null 
  462. nohup /etc/init.d/php-fpm restart >/dev/null 
  463. /usr/local/memcache/bin/memcached -d -m 1024 -u root -t 64 -r -c 16382 -p 11211 
  464. /usr/local/memcache/bin/memcached -d -m 1024 -u root -t 64 -r -c 16382 -p 11212 
  465. action "lnmp服务器已经开启"  /bin/true 
  466. sleep 2 
  467. action "memcache服务器已经开启"  /bin/true 
  468.  
  469. ;; 
  470. 4) 
  471. echo "正在关闭,请稍等....................." 
  472. sleep 3 
  473. nohup /etc/init.d/nginx stop >/dev/null 
  474. nohup /etc/init.d/mysqld stop >/dev/null 
  475. nohup /etc/init.d/php-fpm  stop >/dev/null 
  476. nohup killall -9 memcached 2>/dev/null  
  477. action "lnmp服务器已经关闭" /bin/true 
  478. sleep 2 
  479. action "memcache服务器已经关闭" /bin/true 
  480.  
  481. ;; 
  482. 5) 
  483. echo "-------------------------------------------先关闭lnmp环境----------------------------------------------------" 
  484. sleep 2 
  485. nohup /etc/init.d/nginx stop >/dev/null 
  486. nohup /etc/init.d/mysqld stop >/dev/null 
  487. nohup /etc/init.d/php-fpm  stop >/dev/null 
  488. sleep 2 
  489. echo "------------------------------------------已经关闭lnmp环境成功-----------------------------------------------" 
  490. sleep 2 
  491.  
  492. echo "现在开始回滚lnmp编译前的环境" 
  493. sleep 3 
  494.  
  495. for server in nginx mysql php 
  496. do  
  497. rm -rf /usr/local/$server 
  498. done 
  499.  
  500. for mysql in mysql.sock 
  501. do 
  502. rm -rf /tmp/$mysql 
  503. done 
  504.  
  505. for servers in nginx mysqld php-fpm 
  506. do 
  507. rm -f /etc/init.d/$servers 
  508. done 
  509.  
  510. find /var/lock/subsys -name nginx|xargs rm -f   
  511. find /etc/rc.d/init.d/ -name nginx|xargs rm -f  
  512.  
  513. for a in mysql 
  514. do 
  515. rm -rf /var/$a 
  516. done 
  517.  
  518. find /usr/bin/ -name mysql|xargs rm -f   
  519. rm -rf /var/lock/subsys/mysql 
  520. rm -rf /usr/lib/php 
  521. sleep 3 
  522.  
  523. rm -rf /usr/local/memcache 
  524. rm -rf /var/www/memcache 
  525. action "lnmp回滚已经成功"     /bin/true 
  526. sleep 2 
  527. action "lnmp回滚已经成功"     /bin/true 
  528.  
  529. ;; 
  530. 6) 
  531. action "现在开始备份lnmp环境"  /bin/true 
  532.  sleep 3 
  533. echo "-------------------------------现在开始备份Nginx服务器--------------------------------------" 
  534. cd $shell 
  535. mkdir -p $shell/bak 
  536. cd $shell/bak 
  537. zip -r nginx.zip /usr/local/nginx 
  538. zip -r nginxinit.zip /etc/init.d/nginx 
  539. action "Nginx服务器备份已经完成" /bin/true 
  540. sleep 3 
  541.  
  542. echo "-----------------------------现在开始备份MySQL数据库--------------------------------------------------"  
  543. sleep 3 
  544. cd $shell/bak 
  545. zip -r mysql.zip /usr/local/mysql 
  546. zip -r mysqllib.zip /var/mysql 
  547. zip -r mysqlinit.zip /etc/init.d/mysqld 
  548. action "MySQL数据库备份已经完成" /bin/true 
  549. sleep 3 
  550.  
  551. echo "--------------------------------现在开始备份php服务器--------------------------------------------------" 
  552. sleep 3 
  553. cd $shell/bak 
  554. zip -r php.zip /usr/local/php 
  555. zip -r phplib.zip /usr/lib/php 
  556. zip -r phpinit.zip /etc/init.d/php-fpm 
  557. action "PHP服务器备份已经完成"  /bin/true 
  558. sleep 3 
  559.  
  560. echo "--------------------------------现在开始备份Memcache缓存服务器-----------------------------------------" 
  561. sleep 3 
  562. cd $shell/bak 
  563. zip -r memcache.zip /usr/local/memcache 
  564. zip -r memcache_jiankong.zip /var/www/memcache 
  565. action "Memcache缓存服务器备份已经完成" /bin/true 
  566. sleep 3 
  567.  
  568. echo "--------------------------------lnmp服务器+Memcache服务器已经备份完成----------------------------------" 
  569. sleep 3 
  570. action "lnmp备份完成"  /bin/true 
  571. sleep 2 
  572. action "Memcache备份完成" /bin/true 
  573. sleep 3 
  574.  
  575. ;; 
  576. 7) 
  577. echo "----------------------------------开始还原lnmp服务 and Memcache缓存服务器-------------------------------" 
  578. sleep 3 
  579. echo "----------------------------------开始还原Nginx服务器----------------------------------------------------" 
  580. sleep 3 
  581. cd $shell/bak 
  582. unzip -o nginx.zip 
  583. mkdir -p /usr/local/nginx 
  584. cp -rf usr/local/nginx/* /usr/local/nginx/ 
  585. rm -rf /shell/script/bak/usr/ 
  586. cd $shell/bak 
  587. unzip -o nginxinit.zip 
  588. cp -rf etc/init.d/nginx /etc/init.d/ 
  589. chmod 755 /etc/init.d/nginx 
  590. action "Nginx服务器还原完成" /bin/true 
  591. sleep 3 
  592. action "Nginx服务器还原完成" /bin/true 
  593. sleep 3 
  594.  
  595. echo "------------------------------------开始还原MySQL数据库-------------------------------------------------" 
  596. sleep 3 
  597. cd $shell/bak 
  598. unzip -o mysql.zip  
  599. mkdir -p /usr/local/mysql 
  600. cp -rf usr/local/mysql/* /usr/local/mysql/ 
  601. chown -R mysql.mysql /usr/local/mysql 
  602. rm -rf /shell/script/bak/usr/ 
  603. cd $shell/bak 
  604. unzip -o mysqllib.zip 
  605. mkdir -p /var/mysql 
  606. cp -rf var/mysql/* /var/mysql/ 
  607. rm -rf /shell/script/bak/var/ 
  608. cd $shell/bak 
  609. unzip -o mysqlinit.zip 
  610. cp -rp etc/init.d/mysqld /etc/init.d/ 
  611. chmod 755 /etc/init.d/mysqld 
  612. chown -R mysql.mysql /var/mysql/ 
  613. action "MySQL数据库还原完成" /bin/true 
  614. sleep 3 
  615. action "MySQL数据库还原完成" /bin/true 
  616. sleep 3 
  617.  
  618. echo "----------------------------------------开始还原PHP服务器--------------------------------------------------" 
  619. sleep 3 
  620. cd $shell/bak 
  621. unzip -o php.zip  
  622. mkdir -p /usr/local/php 
  623. cp -rf usr/local/php/* /usr/local/php/ 
  624. rm -rf /shell/script/bak/usr/ 
  625. cd $shell/bak 
  626. unzip -o phplib.zip  
  627. mkdir -p /usr/lib/php 
  628. cp -rf usr/lib/php/* /usr/lib/php/ 
  629. cd $shell/bak 
  630. unzip -o phpinit.zip 
  631. cp -rf etc/init.d/php-fpm /etc/init.d/ 
  632. chmod 755 /etc/init.d/php-fpm 
  633. action "PHP服务器还原完成" /bin/true 
  634. sleep 3 
  635. action "PHP服务器还原完成" /bin/true 
  636. sleep 3 
  637.  
  638. echo "-----------------------------------------开始还原Memcache缓存服务器------------------------------------------" 
  639. sleep 3 
  640. cd $shell/bak 
  641. unzip -o memcache.zip 
  642. mkdir -p /usr/local/memcache/ 
  643. cp -rf usr/local/memcache/* /usr/local/memcache/ 
  644. mkdir -p /var/www/memcache 
  645. unzip -o memcache_jiankong.zip 
  646. cp -rf var/www/memcache/* /var/www/memcache/ 
  647. chmod -R 755 /var/www/memcache 
  648. action "Memcache缓存服务器还原完成" /bin/true 
  649. sleep 3 
  650. action "Memcache缓存服务器还原完成" /bin/true 
  651. sleep 3 
  652. echo "-----------------------------------------lnmp服务器和Memcache缓存服务器还原已经完成---------------------------------------------------------" 
  653. sleep 3 
  654. ;; 
  655.  
  656. *) 
  657. action "安装程序已经退出..................................................."  /bin/true 
  658. exit 1 
  659. esac