Centos 5、6 lnmp-php配置文档 【脚本自动安装】

 

 
   
   
   
   
  1. #!/bin/bash 
  2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
  3. export PATH 
  4. echo "/usr/sbin/setenforce 0" >> /etc/rc.local 
  5. /usr/sbin/setenforce 0 
  6. cat >> /etc/sysctl.conf << EOF 
  7. # Add 
  8. net.ipv4.tcp_max_syn_backlog = 65536 
  9. net.core.netdev_max_backlog =  32768 
  10. net.core.somaxconn = 32768 
  11.  
  12. net.core.wmem_default = 8388608 
  13. net.core.rmem_default = 8388608 
  14. net.core.rmem_max = 16777216 
  15. net.core.wmem_max = 16777216 
  16.  
  17. net.ipv4.tcp_timestamps = 0 
  18. net.ipv4.tcp_synack_retries = 2 
  19. net.ipv4.tcp_syn_retries = 2 
  20.  
  21. net.ipv4.tcp_tw_recycle = 1 
  22. #net.ipv4.tcp_tw_len = 1 
  23. net.ipv4.tcp_tw_reuse = 1 
  24.  
  25. net.ipv4.tcp_mem = 94500000 915000000 927000000 
  26. net.ipv4.tcp_max_orphans = 3276800 
  27.  
  28. #net.ipv4.tcp_fin_timeout = 30 
  29. #net.ipv4.tcp_keepalive_time = 120 
  30. net.ipv4.ip_local_port_range = 1024  65535 
  31. EOF 
  32.  
  33. sysctl -p 
  34. clear 
  35. echo "=========================================================================" 
  36. echo "install Nginx+MySQL+PHP on Linux " 
  37. echo "The path of some dirs:" 
  38. echo "mysql dir:   /usr/local/mysql" 
  39. echo "php dir:     /usr/local/php" 
  40. echo "nginx dir:   /usr/local/nginx" 
  41. echo "web dir      /home/www" 
  42. echo "http://rfyiamcool.blog.51cto.com/ " 
  43. echo "=========================================================================" 
  44. cur_dir=$(pwd) 
  45.  
  46. if [ "$1" != "--help" ]; then 
  47.  
  48.     domain="rfyiamcool.blog.51cto.com" 
  49.     echo "Please input domain:" 
  50.     read -p "(Default domain: rfyiamcool.blog.51cto.com):" domain 
  51.     if [ "$domain" = "" ]; then 
  52.         domain="rfyiamcool.blog.51cto.com" 
  53.     fi 
  54.     echo "===========================" 
  55.  
  56.     echo domain="$domain" 
  57.  
  58.     echo "===========================" 
  59.      
  60.     #set mysql root password 
  61.  
  62.     echo "===========================" 
  63.  
  64.     mysqlrootpwd="root" 
  65.     echo "Please input the root password of mysql: mima" 
  66.     read -p "(Default password: root):" mysqlrootpwd 
  67.     if [ "$mysqlrootpwd" = "" ]; then 
  68.         mysqlrootpwd="root" 
  69.     fi 
  70.     echo "===========================" 
  71.  
  72.     echo mysqlrootpwd="$mysqlrootpwd" 
  73.  
  74.     echo "===========================" 
  75.      
  76.     get_char() 
  77.     { 
  78.     SAVEDSTTY=`stty -g` 
  79.     stty -echo 
  80.     stty cbreak 
  81.     dd if=/dev/tty bs=1 count=1 2> /dev/null 
  82.     stty -raw 
  83.     stty echo 
  84.     stty $SAVEDSTTY 
  85.     } 
  86.     echo "" 
  87.     echo "Press any key to start..." 
  88.     char=`get_char` 
  89.      
  90. rpm -qa|grep  httpd 
  91. rpm -e httpd 
  92. rpm -qa|grep mysql 
  93. rpm -e mysql 
  94. rpm -qa|grep php 
  95. rpm -e php 
  96.  
  97. yum -y remove httpd* 
  98. yum -y remove php* 
  99. yum -y remove mysql-server mysql 
  100. yum -y remove php-mysql 
  101.  
  102. yum -y install yum-fastestmirror 
  103. yum -y remove httpd 
  104.  
  105. #Disable SeLinux 
  106. if [ -s /etc/selinux/config ]; then 
  107. sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 
  108. fi 
  109.  
  110. LANG=C 
  111. yum -y install path 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 
  112.  
  113. cd $cur_dir 
  114. wget -c http://rfyiamcool.googlecode.com/files/lnmp-php5.2.17.tar 
  115. tar xvf lnmp-php5.2.17.tar 
  116. tar xvf conf.tar 
  117.  
  118. if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then 
  119. cd $cur_dir 
  120. tar zxvf libunwind-1.0.1.tar.gz 
  121. cd libunwind-1.0.1/ 
  122. CFLAGS=-fPIC ./configure 
  123. make CFLAGS=-fPIC 
  124. make CFLAGS=-fPIC install 
  125. cd ../ 
  126.  
  127. cd $cur_dir 
  128.     tar zxvf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz 
  129.     mkdir -p /usr/local/zend/ 
  130.     cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/ 
  131. else 
  132. cd $cur_dir 
  133.     tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz 
  134.     mkdir -p /usr/local/zend/ 
  135.     cp ZendOptimizer-3.3.9-linux-glibc23-i386/data/5_2_x_comp/ZendOptimizer.so /usr/local/zend/ 
  136. fi 
  137.  
  138. cd $cur_dir 
  139. tar zxvf libiconv-1.14.tar.gz 
  140. cd libiconv-1.14/ 
  141. ./configure --prefix=/usr/local 
  142. make && make install 
  143. cd ../ 
  144.  
  145. cd $cur_dir 
  146. tar zxvf gperftools-2.0.tar.gz 
  147. cd gperftools-2.0/ 
  148. ./configure 
  149. make && make install 
  150. echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf 
  151. /sbin/ldconfig 
  152. cd ../ 
  153.  
  154. cd $cur_dir 
  155. tar zxvf libmcrypt-2.5.8.tar.gz 
  156. cd libmcrypt-2.5.8/ 
  157. ./configure 
  158. make && make install 
  159. /sbin/ldconfig 
  160. cd libltdl/ 
  161. ./configure --enable-ltdl-install 
  162. make && make install 
  163. cd ../../ 
  164.  
  165. cd $cur_dir 
  166. tar zxvf mhash-0.9.9.9.tar.gz 
  167. cd mhash-0.9.9.9/ 
  168. ./configure 
  169. make && make install 
  170. cd ../ 
  171.  
  172. ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
  173. ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
  174. ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
  175. ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
  176. ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
  177. ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
  178. ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
  179. ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
  180. ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
  181. ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
  182.  
  183. cd $cur_dir 
  184. tar zxvf mcrypt-2.6.8.tar.gz 
  185. cd mcrypt-2.6.8/ 
  186. ./configure 
  187. make && make install 
  188. cd ../ 
  189.  
  190. echo "============================mysql install==================================" 
  191.  
  192. cd $cur_dir 
  193. tar zxvf mysql-5.1.60.tar.gz 
  194. cd mysql-5.1.60/ 
  195. ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-charset=utf8 --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile 
  196. make && make install 
  197. cd ../ 
  198.  
  199. groupadd mysql 
  200. useradd -s /sbin/nologin -M -g mysql mysql 
  201.  
  202. cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 
  203. sed -i 's/skip-locking/skip-external-locking/g' /etc/my.cnf 
  204. /usr/local/mysql/bin/mysql_install_db --user=mysql 
  205. chown -R mysql /usr/local/mysql/var 
  206. chgrp -R mysql /usr/local/mysql/. 
  207. cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql 
  208. chmod 755 /etc/init.d/mysql 
  209.  
  210. cat > /etc/ld.so.conf.d/mysql.conf<<EOF 
  211. /usr/local/mysql/lib/mysql 
  212. /usr/local/lib 
  213. EOF 
  214. ldconfig 
  215.  
  216. ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 
  217. ln -s /usr/local/mysql/include/mysql /usr/include/mysql 
  218. /etc/init.d/mysql start 
  219.  
  220. ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 
  221. ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump 
  222. ln -s /usr/local/mysql/bin/myisamchk /usr/bin/myisamchk 
  223.  
  224. /usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd 
  225.  
  226. cat > /tmp/mysql_sec_script<<EOF 
  227. use mysql; 
  228. update user set passwordpassword=password('$mysqlrootpwd') where user='root'
  229. DELETE FROM user WHERE not (user='root') ; 
  230. DELETE FROM user WHERE user='root' and password='';  
  231. DELETE FROM user WHERE not (host='localhost'); 
  232. drop database test; 
  233. DROP USER ''@'%'; 
  234. flush privileges; 
  235. EOF 
  236.  
  237. /usr/local/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script 
  238.  
  239. rm -f /tmp/mysql_sec_script 
  240.  
  241. /etc/init.d/mysql restart 
  242. /etc/init.d/mysql stop 
  243. chkconfig --level 345 mysql on 
  244. echo "============================mysql intall finished=========================" 
  245.  
  246. echo "============================php+eaccelerator install======================" 
  247. cd $cur_dir 
  248. tar zxvf php-5.2.17.tar.gz 
  249. gzip -d ./suhosin-patch-5.2.17-0.9.7.patch.gz 
  250. gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1 
  251. cd php-5.2.17 
  252. patch -p 1 -i ../suhosin-patch-5.2.17-0.9.7.patch 
  253. mv ../php-5.2.17-max-input-vars.patch ./ 
  254. patch -p1 < php-5.2.17-max-input-vars.patch 
  255. ./buildconf --force 
  256. if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then 
  257. cp -frp /usr/lib64/libldap* /usr/lib/ 
  258. ln -s /usr/lib64/libjpeg.so /usr/lib/ 
  259. ln -s /usr/lib64/libpng.so /usr/lib/ 
  260. fi 
  261. ./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-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-fpm --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --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 --enable-ftp --disable-debug --without-pear --with-gettext --with-mime-magic --enable-suhosin 
  262. make ZEND_EXTRA_LIBS='-liconv' 
  263. make install 
  264. cp php.ini-dist /usr/local/php/etc/php.ini 
  265. ln -s /usr/local/php/bin/php /usr/bin/php 
  266. cd ../ 
  267.  
  268. cd $cur_dir 
  269. tar zxvf memcache-2.2.6.tgz 
  270. cd memcache-2.2.6 
  271. /usr/local/php/bin/phpize 
  272. ./configure --with-php-config=/usr/local/php/bin/php-config 
  273. make 
  274. make install 
  275. cd ../ 
  276.  
  277. cd $cur_dir 
  278. tar zxvf libevent-2.0.18-stable.tar.gz 
  279. cd libevent-2.0.18-stable 
  280. ./configure --prefix=/usr 
  281. make && make install 
  282. cd ../ 
  283.  
  284. cd $cur_dir 
  285. tar xzvf memcached-1.4.13.tar.gz   
  286. cd memcached-1.4.13   
  287. ./configure -–with-libevent=/usr  
  288. make && make install   
  289. cd ../ 
  290.  
  291. cd $cur_dir 
  292. tar zxvf ImageMagick-6.7.1-6.tar.gz 
  293. cd ImageMagick-6.7.1-6/ 
  294. ./configure 
  295. make && make install 
  296. cd ../ 
  297.  
  298. cd $cur_dir 
  299. tar zxvf imagick-3.0.1.tgz 
  300. cd imagick-3.0.1/ 
  301. /usr/local/php/bin/phpize 
  302. ./configure --with-php-config=/usr/local/php/bin/php-config 
  303. make && make install 
  304. cd ../ 
  305.  
  306. cd $cur_dir 
  307. tar zxvf PDO_MYSQL-1.0.2.tgz 
  308. cd PDO_MYSQL-1.0.2 
  309. /usr/local/php/bin/phpize 
  310. ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql 
  311. make && make install 
  312. cd ../ 
  313.  
  314. cd $cur_dir 
  315. tar jxvf eaccelerator-0.9.6.1.tar.bz2 
  316. cd eaccelerator-0.9.6.1/ 
  317. /usr/local/php/bin/phpize 
  318. ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config --with-eaccelerator-shared-memory 
  319. make && make install 
  320. cd ../ 
  321.  
  322. mkdir -p /usr/local/eaccelerator_cache 
  323. cat >>/usr/local/php/etc/php.ini<<EOF 
  324. [eaccelerator] 
  325. zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so" 
  326. eaccelerator.shm_size="16" 
  327. eaccelerator.cache_dir="/usr/local/eaccelerator_cache" 
  328. eaccelerator.enable="1" 
  329. eaccelerator.optimizer="1" 
  330. eaccelerator.check_mtime="1" 
  331. eaccelerator.debug="0" 
  332. eaccelerator.filter="" 
  333. eaccelerator.shm_max="0" 
  334. eaccelerator.shm_ttl="3600" 
  335. eaccelerator.shm_prune_period="3600" 
  336. eaccelerator.shm_only="0" 
  337. eaccelerator.compress="1" 
  338. eaccelerator.compress_level="9" 
  339. EOF 
  340.  
  341. sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\nextension = "pdo_mysql.so"\nextension = "imagick.so"\n#' /usr/local/php/etc/php.ini 
  342. sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php/etc/php.ini 
  343. sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 16M/g' /usr/local/php/etc/php.ini 
  344. sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /usr/local/php/etc/php.ini 
  345. sed -i 's/;date.timezone =/date.timezone = PRC/g' /usr/local/php/etc/php.ini 
  346. sed -i 's#mysql.default_socket =#mysql.default_socket = /tmp/mysql.sock#g' /usr/local/php/etc/php.ini 
  347. sed -i 's/; cgi.fix_pathinfo=0/cgi.fix_pathinfo=0/g' /usr/local/php/etc/php.ini 
  348.  
  349. cat >>/usr/local/php/etc/php.ini<<EOF 
  350. [Zend Optimizer]  
  351. zend_optimizer.optimization_level=1023  
  352. zend_extension="/usr/local/zend/ZendOptimizer.so"  
  353. EOF 
  354.  
  355.  
  356. groupadd www 
  357. /usr/sbin/useradd -g www www -s /sbin/nologin 
  358. mkdir -p /home/www 
  359. chmod +w /home/www 
  360. mkdir -p /home/www/logs 
  361. chmod 777 /home/www/logs 
  362.  
  363. chown -R www:www /home/www 
  364. mv /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php-fpm.conf.bak 
  365. cp conf/php-fpm.conf /usr/local/php/etc/php-fpm.conf 
  366.  
  367. echo "============================php+eaccelerator install finished======================" 
  368.  
  369. echo "============================nginx install=================================" 
  370. cd $cur_dir 
  371. tar zxvf pcre-8.13.tar.gz 
  372. cd pcre-8.13/ 
  373. ./configure 
  374. make && make install 
  375. cd ../ 
  376.  
  377. cd $cur_dir 
  378. tar zxvf nginx-1.2.0.tar.gz 
  379. cd nginx-1.2.0 
  380. ./configure --user=www --group=www --prefix=/usr/local/nginx 
  381. make && make install 
  382. cd ../ 
  383. mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf_bak 
  384. cp conf/nginx.conf /usr/local/nginx/conf/nginx.conf 
  385. sed -i 's/lvtao.net/'$domain'/g' /usr/local/nginx/conf/servers/lvtao.conf 
  386.  
  387. mkdir -p /usr/local/nginx/conf/servers 
  388. chown www -R  /home/ 
  389. chown www /usr/local/nginx/conf/ 
  390. chown www /usr/local/php/etc/ 
  391. cp conf/index.php /home/www/index.php 
  392. cp conf/rui.conf /usr/local/nginx/conf/servers/rui.conf 
  393. cp conf/location.conf /usr/local/nginx/conf/location.conf 
  394. cp conf/supercache.conf /usr/local/nginx/conf/supercache.conf 
  395. cp conf/dabr.conf /usr/local/nginx/conf/dabr.conf 
  396. cp conf/nginx /etc/init.d/nginx 
  397. cp conf/php-fpm /etc/init.d/php-fpm 
  398. chmod 777 /etc/init.d/nginx 
  399. chmod 777 /etc/init.d/php-fpm 
  400. chkconfig --level 345 nginx on 
  401. chkconfig --level 345 php-fpm on 
  402. service mysql start 
  403. /etc/init.d/php-fpm start 
  404. /etc/init.d/nginx start 
  405. echo "============================nginx install finished=================================" 
  406.  
  407. echo "/usr/sbin/setenforce 0" >> /etc/rc.local 
  408. /usr/sbin/setenforce 0 
  409. tar zxvf phpmyadmin.tar.gz 
  410. mv phpmyadmin /home/www/phpmyadmin/ 
  411. cp conf/host /bin/host 
  412. chmod +x /bin/host 
  413. chmod -R 755 /home/www/phpmyadmin/ 
  414. service nginx restart 
  415.  
  416. echo "============================add nginx and php-fpm on startup============================" 
  417. echo "ulimit -SHn 65535" >>/etc/rc.local 
  418. echo "===========================add nginx and php-fpm on startup finished====================" 
  419.  
  420. sed -i 's#executing mysqld_safe#executing mysqld_safe\nexport LD_PRELOAD=/usr/local/lib/libtcmalloc.so#' /usr/local/mysql/bin/mysqld_safe 
  421.  
  422. clear 
  423. echo "=========================================================================" 
  424. echo "" 
  425. echo "default mysql root password:yourpassword" 
  426. echo "phpinfo test:http://ip" 
  427. echo "mysql_admin test:http://ip/phpmyadmin" 
  428. echo "mysql dir:   /usr/local/mysql" 
  429. echo "php dir:     /usr/local/php" 
  430. echo "nginx dir:   /usr/local/nginx" 
  431. echo "web dir      /home/www" 
  432. echo "host 123123.com 增加虚拟机" 
  433. echo "service nginx start|stop|restart|reload" 
  434. echo "service mysql start|stop|restart" 
  435. echo "service php-fpm start|stop|restart" 
  436. echo "===========================ok!!!!!!!!!!!====================================" 

你可能感兴趣的:(PHP,centos)