LNMP源码安装脚本

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://linuxeye.blog.51cto.com/4371937/773362

脚本中开源软件版本:

   
   
   
   
  1. cmake-2.8.4.tar.gz 
  2. mysql-5.5.10.tar.gz 
  3. libiconv-1.13.1.tar.gz 
  4. libmcrypt-2.5.8.tar.gz 
  5. mhash-0.9.9.9.tar.gz 
  6. mcrypt-2.6.8.tar.gz 
  7. php-5.3.10.tar.gz 
  8. memcache-2.2.5.tgz 
  9. eaccelerator-0.9.6.1.tar.bz2 
  10. PDO_MYSQL-1.0.2.tgz 
  11. ImageMagick-6.6.7-10.tar.gz 
  12. imagick-2.3.0.tgz 
  13. pcre-8.12.tar.gz 
  14. nginx-1.0.10.tar.gz(最新稳定版) 
  15. ngx_cache_purge-1.3.tar.gz 

使用方法:

   
   
   
   
  1. cd /root 
  2. wget http://blog.linuxeye.com/wp-content/uploads/lnmp.zip 
  3. unzip lnmp.zip
  4. cd lnmp
  5. sh lnmp_install.sh 

说明:
参考张宴博客(http://blog.s135.com/nginx_php_v6),本人在CentOS 5(32位或者64位)上测试通过,并且在线上使用这个脚本。
脚本内容:

   
   
   
   
  1. #!/bin/bash 
  2. #by LinuxEye 
  3. #BLOG: http://blog.linuxeye.com 
  4. 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-devel libidn libidn-devel openssl openssl-devel nss_ldap openldap openldap-devel  openldap-clients openldap-servers libxslt-devel libevent-devel ntp  libtool-ltdl bison libtool vim-enhanced 
  5. #安装mysql-5.5.10 
  6. if [ -e "/root/lnmp" ];then 
  7.     echo -e "\e[0;34m start install\e[0m" 
  8.     cd /root/lnmp/mysql/ 
  9. else 
  10.     echo -e "\e[1;31mPlease send lnmp directory moved to /root\e[0m" 
  11.     exit 1 
  12. fi 
  13.  
  14. useradd -M -s /sbin/nologin mysql 
  15. mkdir -p /data/mysql;chown mysql.mysql -R /data/mysql 
  16. tar xzf cmake-2.8.4.tar.gz 
  17. cd cmake-2.8.4 
  18. ./configure 
  19. make &&  make install 
  20. cd .. 
  21. tar zxf mysql-5.5.10.tar.gz 
  22. cd mysql-5.5.10 
  23. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \ 
  24. -DMYSQL_DATADIR=/data/mysql  \ 
  25. -DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \ 
  26. -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 
  27. -DENABLED_LOCAL_INFILE=1 \ 
  28. -DMYSQL_TCP_PORT=3306 \ 
  29. -DCMAKE_THREAD_PREFER_PTHREAD=1 \ 
  30. -DEXTRA_CHARSETS=all \ 
  31. -DDEFAULT_CHARSET=utf8 \ 
  32. -DDEFAULT_COLLATION=utf8_general_ci \ 
  33. -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ 
  34. -DWITH_DEBUG=0 
  35. make && make install 
  36.  
  37. cp support-files/my-medium.cnf /etc/my.cnf 
  38. cp support-files/mysql.server /etc/init.d/mysqld 
  39. chmod 755 /etc/init.d/mysqld 
  40. chkconfig --add mysqld 
  41. chkconfig mysqld on 
  42. #修改配置文件 
  43. sed -i '38a ##############' /etc/my.cnf 
  44. sed -i '39a skip-name-resolve' /etc/my.cnf 
  45. sed -i '40a basedir=/usr/local/mysql' /etc/my.cnf 
  46. sed -i '41a datadir=/data/mysql' /etc/my.cnf 
  47. sed -i '42a user=mysql' /etc/my.cnf 
  48. sed -i '43a #lower_case_table_names = 1' /etc/my.cnf 
  49. sed -i '44a max_connections=1000' /etc/my.cnf 
  50. sed -i '45a ft_min_word_len=1' /etc/my.cnf 
  51. sed -i '46a expire_logs_days = 7' /etc/my.cnf 
  52. sed -i '47a query_cache_size=64M' /etc/my.cnf 
  53. sed -i '48a query_cache_type=1' /etc/my.cnf 
  54. sed -i '49a ##############' /etc/my.cnf 
  55.  
  56. /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql 
  57.  
  58. chown mysql.mysql -R /data/mysql 
  59. /sbin/service mysqld start 
  60. echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile 
  61. source /etc/profile 
  62.  
  63. /usr/local/mysql/bin/mysql -e "grant all privileges on *.* to root@'%' identified by 'admin' with grant option;" 
  64. /usr/local/mysql/bin/mysql -e "flush privileges;" 
  65. /usr/local/mysql/bin/mysql -e "delete from mysql.user where password='';" 
  66.  
  67. /sbin/service mysqld restart 
  68. #php安装 
  69. cd /root/lnmp/php 
  70. tar xzf libiconv-1.13.1.tar.gz 
  71. cd libiconv-1.13.1 
  72. ./configure --prefix=/usr/local 
  73. make && make install 
  74.  
  75. cd ../ 
  76. tar xzf libmcrypt-2.5.8.tar.gz 
  77. cd libmcrypt-2.5.8 
  78. ./configure 
  79. make && make install 
  80. /sbin/ldconfig 
  81. cd libltdl/ 
  82. ./configure --enable-ltdl-install 
  83. make && make install 
  84. cd ../../ 
  85.  
  86. tar xzf mhash-0.9.9.9.tar.gz 
  87. cd mhash-0.9.9.9 
  88. ./configure 
  89. make && make install 
  90. cd ../ 
  91.  
  92. if [ -e "/lib64" ];then 
  93.     ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la 
  94.     ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so 
  95.     ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4 
  96.     ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8 
  97.     ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a 
  98.     ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la 
  99.     ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so 
  100.     ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2 
  101.     ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1 
  102.     ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
  103.     ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /lib64/libmysqlclient.so.18 
  104. else 
  105.     ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
  106.     ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
  107.     ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
  108.     ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 
  109.     ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
  110.     ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
  111.     ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
  112.     ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
  113.     ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 
  114.     ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 
  115.     ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /lib/libmysqlclient.so.18 
  116. fi 
  117.  
  118. tar xzf mcrypt-2.6.8.tar.gz 
  119. cd mcrypt-2.6.8 
  120. /sbin/ldconfig 
  121. ./configure 
  122. make && make install 
  123. cd ../ 
  124.  
  125. tar xzf php-5.3.10.tar.gz 
  126. useradd -M -s /sbin/nologin www 
  127. cd php-5.3.10 
  128. ./configure  --prefix=/usr/local/php --with-mysql=/usr/local/mysql --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-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --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-ftp --enable-zip --enable-soap --disable-debug 
  129. make ZEND_EXTRA_LIBS='-liconv' 
  130. make install 
  131. cp php.ini-production /usr/local/php/lib/php.ini 
  132. cd ../ 
  133.  
  134. tar xzf memcache-2.2.5.tgz 
  135. cd memcache-2.2.5 
  136. /usr/local/php/bin/phpize 
  137. ./configure --with-php-config=/usr/local/php/bin/php-config 
  138. make && make install 
  139. cd ../ 
  140.  
  141. tar xjf eaccelerator-0.9.6.1.tar.bz2 
  142. cd eaccelerator-0.9.6.1 
  143. /usr/local/php/bin/phpize 
  144. ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config 
  145. make && make install 
  146. cd ../ 
  147.  
  148. tar xzf PDO_MYSQL-1.0.2.tgz 
  149. cd PDO_MYSQL-1.0.2 
  150. /usr/local/php/bin/phpize 
  151. ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql 
  152. make && make install 
  153. cd ../ 
  154.  
  155. tar xzf ImageMagick-6.6.7-10.tar.gz 
  156. cd ImageMagick-6.6.7-10 
  157. ./configure 
  158. make && make install 
  159. cd ../ 
  160.  
  161. tar xzf imagick-2.3.0.tgz 
  162. cd imagick-2.3.0 
  163. /usr/local/php/bin/phpize 
  164. ./configure --with-php-config=/usr/local/php/bin/php-config 
  165. make && make install 
  166. cd ../ 
  167. #修改php.ini 
  168. mkdir /tmp/eaccelerator 
  169. /bin/chown -R www.www /tmp/eaccelerator/ 
  170. sed -i '808a extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"' /usr/local/php/lib/php.ini  
  171. sed -i '809a extension = "memcache.so"' /usr/local/php/lib/php.ini  
  172. sed -i '810a extension = "pdo_mysql.so"' /usr/local/php/lib/php.ini  
  173. sed -i '811a extension = "imagick.so"' /usr/local/php/lib/php.ini  
  174. sed -i '134a output_buffering = On' /usr/local/php/lib/php.ini  
  175. sed -i '847a cgi.fix_pathinfo=0' /usr/local/php/lib/php.ini  
  176. sed -i 's@;date.timezone =@date.timezone = Asia/Shanghai@g' /usr/local/php/lib/php.ini 
  177. echo '[eaccelerator] 
  178. zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so" 
  179. eaccelerator.shm_size="64" 
  180. eaccelerator.cache_dir="/tmp/eaccelerator" 
  181. eaccelerator.enable="1" 
  182. eaccelerator.optimizer="1" 
  183. eaccelerator.check_mtime="1" 
  184. eaccelerator.debug="0" 
  185. eaccelerator.filter="" 
  186. eaccelerator.shm_max="0" 
  187. eaccelerator.shm_ttl="0" 
  188. eaccelerator.shm_prune_period="0" 
  189. eaccelerator.shm_only="0" 
  190. eaccelerator.compress="0" 
  191. eaccelerator.compress_level="9" 
  192. eaccelerator.keys = "disk_only" 
  193. eaccelerator.sessions = "disk_only" 
  194. eaccelerator.content = "disk_only">> /usr/local/php/lib/php.ini 
  195.  
  196. cat > /usr/local/php/etc/php-fpm.conf <<EOF  
  197. ;;;;;;;;;;;;;;;;;;;;; 
  198. ; FPM Configuration ; 
  199. ;;;;;;;;;;;;;;;;;;;;; 
  200.  
  201. ;;;;;;;;;;;;;;;;;; 
  202. ; Global Options ; 
  203. ;;;;;;;;;;;;;;;;;; 
  204.  
  205. [global] 
  206. pid = run/php-fpm.pid 
  207. error_log = log/php-fpm.log 
  208. log_level = notice 
  209.  
  210. emergency_restart_threshold = 30 
  211. emergency_restart_interval = 1m 
  212. process_control_timeout = 5s 
  213. daemonize = yes 
  214.  
  215. ;;;;;;;;;;;;;;;;;;;; 
  216. ; Pool Definitions ; 
  217. ;;;;;;;;;;;;;;;;;;;; 
  218.  
  219. [www] 
  220.  
  221. listen = 127.0.0.1:9000 
  222. listen.backlog = -1 
  223. listen.allowed_clients = 127.0.0.1 
  224. listen.owner = www 
  225. listen.group = www 
  226. listen.mode = 0666 
  227. user = www 
  228. group = www 
  229.  
  230. pm = dynamic 
  231. pm.max_children = 32 
  232. pm.start_servers = 4  
  233. pm.min_spare_servers = 4 
  234. pm.max_spare_servers = 16 
  235. pm.max_requests = 512 
  236.  
  237. request_terminate_timeout = 0 
  238. request_slowlog_timeout = 0 
  239.  
  240. slowlog = log/$pool.log.slow 
  241. rlimit_files = 51200 
  242. rlimit_core = 0 
  243.  
  244. catch_workers_output = yes 
  245. env[HOSTNAME] = $HOSTNAME 
  246. env[PATH] = /usr/local/bin:/usr/bin:/bin 
  247. env[TMP] = /tmp 
  248. env[TMPDIR] = /tmp 
  249. env[TEMP] = /tmp 
  250. EOF 
  251.  
  252. echo '/usr/local/php/sbin/php-fpm' >> /etc/rc.local 
  253. /usr/local/php/sbin/php-fpm 
  254.  
  255. #安装nginx 
  256. mkdir /root/lnmp/nginx 
  257. cd /root/lnmp/nginx 
  258. tar xzf pcre-8.12.tar.gz 
  259. cd pcre-8.12 
  260. ./configure 
  261. make && make install 
  262. cd ../ 
  263. tar xzf ngx_cache_purge-1.3.tar.gz  
  264. tar xzf nginx-1.0.12.tar.gz 
  265. cd nginx-1.0.12 
  266. #修改版本信息 
  267. sed -i 's@#define NGINX_VERSION.*$@#define NGINX_VERSION      "1.0"@g' src/core/nginx.h  
  268. sed -i 's@#define NGINX_VER.*NGINX_VERSION$@#define NGINX_VER          "YWS/" NGINX_VERSION@g' src/core/nginx.h  
  269. ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_cache_purge-1.3 
  270. make && make install 
  271. cd /root/lnmp/nginx/  
  272. cp nginx.sh /etc/init.d/nginx 
  273. chmod 755 /etc/init.d/nginx 
  274. chkconfig --add nginx 
  275. chkconfig nginx on 
  276. rm -rf /usr/local/nginx/conf/nginx.conf 
  277. cp nginx.conf /usr/local/nginx/conf/nginx.conf 
  278. echo "LNMP安装成功" 
  279. echo "请按实际需求nginx.conf文件" 

 

你可能感兴趣的:(源码,安装,脚本,LNMP)