开发者社区> netkiller> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

httpd-2.2.21 + php-5.3.8 自动安装脚本

简介:
+关注继续查看
Java代码  收藏代码
  1. #!/bin/bash  
  2. #================================================================================  
  3. # LAMP Installing script by Neo <openunix@163.com>  
  4. # http://netkiller.sourceforge.net/  
  5. # $Id$  
  6. #================================================================================  
  7. SRC_DIR=$(pwd)  
  8. PREFIX_DIR=/srv  
  9. EMAIL=webmaster@example.com  
  10. #================================================================================  
  11. HTTPD_SRC='httpd-2.2.21.tar.gz'  
  12. PHP_SRC='php-5.3.8.tar.gz'  
  13. MYSQL_SRC='mysql-5.5.9.tar.gz'  
  14. MYSQL_LIBS_SRC='mysql-5.1.50.tar.gz'  
  15. MYSQL_BIN='mysql-5.1.50-linux-x86_64-glibc23.tar.gz'  
  16. JAVA_BIN='jdk-6u20-linux-x64.bin'  
  17. #================================================================================  
  18. HTTPD_DIR=${HTTPD_SRC%%.tar.gz}  
  19. PHP_DIR=${PHP_SRC%%.tar.*}  
  20. MYSQL_DIR=${MYSQL_SRC%%.tar.*}  
  21. MYSQL_LIBS_DIR=${MYSQL_LIBS_SRC%%.tar.*}  
  22. #================================================================================  
  23.   
  24. if [ -z "$( egrep "CentOS|Redhat" /etc/issue)" ]; then  
  25.     echo 'Only for Redhat or CentOS'  
  26.     exit  
  27. fi  
  28.   
  29. function clean(){  
  30.         rm -rf $HTTPD_DIR  
  31.         rm -rf $PHP_DIR  
  32.         rm -rf $MYSQL_DIR  
  33.         rm -rf $MYSQL_LIBS_DIR  
  34. }  
  35.   
  36. function depend(){  
  37.         yum install gcc gcc-c++ make autoconf -y  
  38.         yum install curl-devel libmcrypt-devel gd-devel libjpeg-devel libpng-devel libXpm-devel libxml2-devel libxslt-devel mhash-devel openldap-devel -y  
  39.         yum install ncurses-devel -y  
  40. #        yum install mysql-devel -y  
  41.         yum install libevent-devel -y  
  42.     yum install e4fsprogs -y  
  43.     yum install net-snmp-devel -y  
  44.     yum install setuptool ntsysv system-config-network-tui -y  
  45.     #rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm  
  46. }  
  47.   
  48.   
  49.   
  50. function httpd(){  
  51. rm -rf $HTTPD_DIR  
  52. tar zxf $HTTPD_SRC  
  53. cd $HTTPD_DIR  
  54.   
  55. RETVAL=$?  
  56. [[ $RETVAL != 0 ]] && echo "Static: "$RETVAL &&  exit $?  
  57.   
  58. vim server/mpm/worker/worker.c <<end > /dev/null 2>&1  
  59. :%s/#define DEFAULT_SERVER_LIMIT 16/#define DEFAULT_SERVER_LIMIT 256/  
  60. :%s/#define DEFAULT_THREAD_LIMIT 64/#define DEFAULT_THREAD_LIMIT 1024/  
  61. :wq  
  62. end  
  63. #define MAX_SERVER_LIMIT 20000  
  64. #define MAX_THREAD_LIMIT 20000  
  65.   
  66. [[ $? -ne 0 ]] && echo "Step: server/mpm/worker/worker.c" &&  exit $?  
  67.   
  68. ./configure --prefix=$PREFIX_DIR/$HTTPD_DIR \  
  69. --with-mpm=worker \  
  70. --enable-modules="so dir mime rewrite deflate vhost_alias include" \  
  71. --enable-mods-shared="alias filter expires headers  setenvif status info ssl usertrack cache mem-cache file-cache disk-cache version mod_unique_id " \  
  72. --disable-authn_file \  
  73. --disable-authn_default \  
  74. --disable-authz_groupfile \  
  75. --disable-authz_user \  
  76. --disable-authz_default \  
  77. --disable-auth_basic \  
  78. --disable-version \  
  79. --disable-env \  
  80. --disable-autoindex \  
  81. --disable-asis \  
  82. --disable-cgid \  
  83. --disable-cgi \  
  84. --disable-negotiation \  
  85. --disable-actions \  
  86. --disable-userdir \  
  87. --enable-so \  
  88. --enable-file-cache \  
  89. --enable-cache \  
  90. --enable-disk-cache \  
  91. --enable-mem-cache \  
  92. --enable-expires \  
  93. --enable-headers \  
  94. --enable-ssl \  
  95. --enable-info \  
  96. --enable-rewrite  
  97.   
  98. #--with-mpm=worker \  
  99. #--enable-so \  
  100. #--enable-mods-shared=all \  
  101. #--disable-alias  
  102. #--disable-include \  
  103. #--disable-status \  
  104.   
  105. [[ $? -ne 0 ]] && echo "Step: configure" &&  exit $?  
  106.   
  107. make clean  
  108. make  
  109.   
  110. [[ $? -ne 0 ]] && echo "Step: make" &&  exit $?  
  111.   
  112. make install  
  113.   
  114. [[ $? -ne 0 ]] && echo "Step: make install" &&  exit $?  
  115.   
  116. cd ..  
  117. ln -s $PREFIX_DIR/$HTTPD_DIR $PREFIX_DIR/httpd  
  118. ln -s $PREFIX_DIR/httpd $PREFIX_DIR/apache  
  119.   
  120. cp $PREFIX_DIR/httpd/conf/httpd.conf  $PREFIX_DIR/httpd/conf/httpd.conf.original  
  121. mkdir -p /www/logs/error  
  122.   
  123. vim $PREFIX_DIR/httpd/conf/httpd.conf <<end > /dev/null 2>&1  
  124. :%s/User daemon/User nobody/  
  125. :%s/Group daemon/Group nobody/  
  126. :%s/ServerAdmin you@example.com/ServerAdmin $EMAIL/  
  127. :%s!#ServerName www.example.com:80!#ServerName www.example.com:80\rServerName 127.0.0.1!  
  128. :%s#$PREFIX_DIR/$HTTPD_DIR/htdocs#/www#g  
  129. :%s/#\n    AllowOverride None/#\r    AllowOverride All/  
  130. :%s#    DirectoryIndex index.html#    DirectoryIndex index.html index.php#  
  131. :%s=    #AddType text/html .shtml=    AddType text/html .shtml=  
  132. :%s=    #AddOutputFilter INCLUDES .shtml=    AddOutputFilter INCLUDES .shtml=  
  133. :%s=AddOutputFilter INCLUDES .shtml=AddOutputFilter INCLUDES .shtml\r\r    AddType application/x-httpd-php .php .phtml\r    AddType application/x-httpd-php-source .phps\r=  
  134. :%s#ErrorLog "logs/error_log"#ErrorLog "| $PREFIX_DIR/httpd/bin/rotatelogs /www/logs/error/error.%Y-%m-%d.log 86400 480"#  
  135. :%s=#Include conf/extra/httpd-info.conf=Include conf/extra/httpd-info.conf=  
  136. :%s=#Include conf/extra/httpd-mpm.conf=Include conf/extra/httpd-mpm.conf=  
  137. :%s=#Include conf/extra/httpd-languages.conf=Include conf/extra/httpd-languages.conf=  
  138. :%s=#Include conf/extra/httpd-vhosts.conf=Include conf/extra/httpd-vhosts.conf=  
  139. :%s=#Include conf/extra/httpd-default.conf=Include conf/extra/httpd-default.conf=  
  140. :wq  
  141. end  
  142. #:%s!Listen 80!Listen 0.0.0.0:80!  
  143. #:%s!#ServerName www.example.com:80!#ServerName www.example.com:80\rServerName *!  
  144.   
  145. #vim $PREFIX_DIR/httpd/conf/extra/httpd-mpm.conf <<end > /dev/null 2>&1  
  146. #:%s/<IfModule mpm_worker_module>/<IfModule mpm_worker_module>\r    ServerLimit         16\r    ThreadLimit         128/  
  147. #:%s/StartServers          2/StartServers        8/  
  148. #:%s/MaxClients          150/MaxClients          2048/  
  149. #:%s/MinSpareThreads      25/MinSpareThreads     64/  
  150. #:%s/MaxSpareThreads      75/MaxSpareThreads     128/  
  151. #:%s/ThreadsPerChild      25/ThreadsPerChild     128/  
  152. #:%s/MaxRequestsPerChild   0/MaxRequestsPerChild 10000/  
  153. #:wq  
  154. #end  
  155.   
  156.   
  157. vim $PREFIX_DIR/httpd/conf/extra/httpd-mpm.conf <<end > /dev/null 2>&1  
  158. :%s/<IfModule mpm_worker_module>/<IfModule mpm_worker_module>\r    ServerLimit         16\r    ThreadLimit         256/  
  159. :%s/StartServers          2/StartServers        8/  
  160. :%s/MaxClients          150/MaxClients          4096/  
  161. :%s/MinSpareThreads      25/MinSpareThreads     64/  
  162. :%s/MaxSpareThreads      75/MaxSpareThreads     256/  
  163. :%s/ThreadsPerChild      25/ThreadsPerChild     256/  
  164. :%s/MaxRequestsPerChild   0/MaxRequestsPerChild 10000/  
  165. :wq  
  166. end  
  167.   
  168. vim $PREFIX_DIR/httpd/conf/extra/httpd-languages.conf <<end > /dev/null 2>&1  
  169. :%s/LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW/#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW/  
  170. :%s/ForceLanguagePriority Prefer Fallback/#ForceLanguagePriority Prefer Fallback/  
  171. :wq  
  172. end  
  173.   
  174. echo -ne "  
  175. AddDefaultCharset UTF-8  
  176. " >> $PREFIX_DIR/httpd/conf/extra/httpd-languages.conf  
  177.   
  178. vim $PREFIX_DIR/httpd/conf/extra/httpd-info.conf <<end > /dev/null 2>&1  
  179. :%s/Allow from .example.com/Allow from 127.0.0.1 172.16.1 113.106.63.1/g  
  180. :wq  
  181. end  
  182.   
  183. vim $PREFIX_DIR/httpd/conf/extra/httpd-default.conf <<end > /dev/null 2>&1  
  184. :%s/ServerTokens Full/ServerTokens Prod/  
  185. :wq  
  186. end  
  187.   
  188. echo -ne "  
  189. $PREFIX_DIR/httpd/bin/apachectl start  
  190. " >> /etc/rc.local  
  191.   
  192. }  
  193. function php(){  
  194. #ln -s /usr/lib64/mysql/* /usr/lib64/ 
  195. #ln -s /srv/mysql/bin/mysql_config /usr/local/bin/ 
  196.  
  197. rm -rf $PHP_DIR 
  198. tar zxf $PHP_SRC 
  199. cd $PHP_DIR 
  200.  
  201. ./configure --prefix=$PREFIX_DIR/$PHP_DIR \ 
  202. --with-config-file-path=$PREFIX_DIR/$PHP_DIR/etc \ 
  203. --with-config-file-scan-dir=$PREFIX_DIR/$PHP_DIR/etc/conf.d \ 
  204. --with-apxs2=$PREFIX_DIR/$HTTPD_DIR/bin/apxs \ 
  205. --with-curl \ 
  206. --with-gd \ 
  207. --with-jpeg-dir \ 
  208. --with-png-dir \ 
  209. --with-freetype-dir \ 
  210. --with-xpm-dir \ 
  211. --with-iconv \ 
  212. --with-zlib-dir \ 
  213. --with-xmlrpc \ 
  214. --with-openssl \ 
  215. --with-mcrypt \ 
  216. --with-mhash=shared \ 
  217. --with-mysql=/srv/mysql-5.1.50-linux-x86_64-glibc23 \ 
  218. --with-pdo-mysql=/srv/mysql-5.1.50-linux-x86_64-glibc23 \ 
  219. --with-sqlite=shared \ 
  220. --with-pdo-sqlite=shared \ 
  221. --with-ldap=shared \ 
  222. --with-snmp=shared \ 
  223. --with-xsl=shared \ 
  224. --with-pear \ 
  225. --enable-sockets \ 
  226. --enable-soap \ 
  227. --enable-mbstring \ 
  228. --enable-magic-quotes \ 
  229. --enable-inline-optimization \ 
  230. --enable-gd-native-ttf \ 
  231. --enable-zip \ 
  232. --enable-xml \ 
  233. --enable-ftp 
  234.  
  235. #--with-mysqli=/srv/mysql-5.1.50-linux-x86_64-glibc23/bin/mysql_config \ 
  236. #--enable-embedded-mysqli \ 
  237.  
  238. #--enable-fpm \ 
  239. #--with-fpm-user=nobody \ 
  240. #--with-fpm-group=nobody \ 
  241. #--with-mysql=/srv/mysql-5.5.9-linux2.6-x86_64 \ 
  242. #--with-pdo-mysql=/srv/mysql-5.5.9-linux2.6-x86_64 \ 
  243.  
  244. [[ $? -ne 0 ]] && echo "Step: configure" &&  exit $? 
  245.  
  246. #make && make test && make install 
  247. #make &&  make install 
  248. make 
  249. [[ $? -ne 0 ]] && echo "Step: make" &&  exit $? 
  250.  
  251. make install 
  252. [[ $? -ne 0 ]] && echo "Step: make install" &&  exit $? 
  253.  
  254. mkdir -p $PREFIX_DIR/$PHP_DIR/etc/conf.d 
  255. cp $PREFIX_DIR/src/$PHP_DIR/php.ini-production $PREFIX_DIR/$PHP_DIR/etc/php.ini 
  256. ln -s $PREFIX_DIR/$PHP_DIR $PREFIX_DIR/php 
  257.  
  258. cp $PREFIX_DIR/$PHP_DIR/etc/php.ini $PREFIX_DIR/$PHP_DIR/etc/php.ini.original 
  259.  
  260. vim $PREFIX_DIR/php/etc/php.ini <<EOF > /dev/null 2>&1 
  261. :%s!;include_path = ".:/php/includes"!;include_path = ".:/php/includes"\rinclude_path = ".:$PREFIX_DIR/$PHP_DIR/lib/php"! 
  262. :%s:;extension_dir = "./":extension_dir = "$PREFIX_DIR/$PHP_DIR/lib/php/extensions": 
  263. :%s/memory_limit = 128M/memory_limit = 64M/ 
  264. :%s/log_errors = Off/log_errors = On/ 
  265. :%s#;error_log = php_errors.log#error_log = php_errors.log# 
  266. :%s#;open_basedir =#open_basedir = /www/:/tmp/# 
  267. :%s/upload_max_filesize = 2M/upload_max_filesize = 8M/ 
  268. :wq 
  269. EOF 
  270.  
  271. #:%s/mysql.allow_persistent = On/mysql.allow_persistent = Off/ 
  272. #:%s/register_long_arrays = On/register_long_arrays = Off/ 
  273. #:%s/display_errors = On/display_errors = Off/ 
  274. #:%s/output_buffering = Off/output_buffering = On/ 
  275. #:%s/allow_call_time_pass_reference = On/allow_call_time_pass_reference = Off/ 
  276. #:%s#;error_log = php_errors.log#error_log = /www/logs/php_errors.log# 
  277.  
  278.  
  279.     read -p "php memcache module? [y/n]" -n 1 key 
  280.     echo 
  281.     if [ $key = 'y' ]; then 
  282. $PREFIX_DIR/php/bin/pecl install memcache 
  283. cp $PREFIX_DIR/$PHP_DIR/lib/php/extensions/no-debug-zts-*/memcache.so $PREFIX_DIR/$PHP_DIR/lib/php/extensions/  
  284. cat > $PREFIX_DIR/php/etc/conf.d/memcache.ini <<EOF  
  285. extension=memcache.so  
  286. EOF  
  287. #> /dev/null 2>&1  
  288. #memcache.default_timeout_ms=30  
  289.     fi  
  290.   
  291.     read -p "php APC module? [y/n]" -n 1 key  
  292.     echo  
  293.     if [ $key = 'y' ]; then  
  294. $PREFIX_DIR/php/bin/pecl install apc  
  295. cp $PREFIX_DIR/$PHP_DIR/lib/php/extensions/no-debug-zts-*/apc.so $PREFIX_DIR/$PHP_DIR/lib/php/extensions/  
  296. cat > $PREFIX_DIR/php/etc/conf.d/apc.ini <<EOF  
  297. extension=apc.so  
  298. EOF  
  299. # > /dev/null 2>&1  
  300.   
  301.     fi  
  302. }  
  303.   
  304. function mysql(){  
  305. rm -rf $MYSQL_DIR  
  306. tar zxf $MYSQL_SRC  
  307. cd $MYSQL_DIR  
  308. ./configure \  
  309. --prefix=$PREFIX_DIR/$MYSQL_DIR \  
  310. --with-mysqld-user=mysql \  
  311. --with-unix-socket-path=/tmp/mysql.sock \  
  312. --with-charset=utf8 \  
  313. --with-collation=utf8_general_ci  
  314. --with-extra-charsets=complex \  
  315. --with-big-tables \  
  316. --with-readline \  
  317. --with-ssl \  
  318. --with-embedded-server \  
  319. --with-plugins=innobase \  
  320. --with-mysqld-user=mysql \  
  321. --without-ndb-debug \  
  322. --without-debug \  
  323. --without-bench  
  324. --without-docs \  
  325. --localstatedir=/data/mysql/data \  
  326. --enable-assembler \  
  327. --enable-thread-safe-client \  
  328. --enable-local-infile \  
  329.   
  330. make clean  
  331. make && make install  
  332. cd ..  
  333.   
  334. ln -s $PREFIX_DIR/$MYSQL_DIR $PREFIX_DIR/mysql  
  335. $PREFIX_DIR/$MYSQL_DIR/bin/mysql_install_db --user=mysql  
  336. chown mysql.mysql -R $PREFIX_DIR/$MYSQL_DIR  
  337. cp $PREFIX_DIR/src/$MYSQL_DIR/support-files/mysql.server /etc/init.d/mysql  
  338. /etc/init.d/mysql start  
  339. $PREFIX_DIR/$MYSQL_DIR/bin/mysqladmin -u root password '9S5wxCVPMY'  
  340. }  
  341.   
  342.   
  343. function java(){  
  344.     JAVA_DIR=${JAVA_BIN%%.bin}  
  345.         #yum install java-1.6.0-openjdk -y  
  346.         chmod +x $JAVA_BIN  
  347.         ./$JAVA_BIN  
  348.         mv $JAVA_DIR ..  
  349.         ln -s $PREFIX_DIR/$JAVA_DIR $PREFIX_DIR/java  
  350. echo -ne '  
  351. export JAVA_HOME=$PREFIX_DIR/java  
  352. export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH  
  353. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOMR/bin:$PATH  
  354. export PATH=$PATH:$PREFIX_DIR/httpd/bin:$PREFIX_DIR/php/bin:$PREFIX_DIR/mysql/bin:$PREFIX_DIR/resin/bin:$PREFIX_DIR/python/bin  
  355. ' >> /etc/profile  
  356.   
  357. }  
  358. function resin(){  
  359.         tar zxf resin-4.0.6.tar.gz  
  360.         mv resin-4.0.6 $PREFIX_DIR/  
  361.     echo 'export RESIN_HOME=$PREFIX_DIR/resin' >> /etc/profile  
  362. }  
  363. function memcache(){  
  364.         MEMCACHED_PKG=memcached-1.4.5.tar.gz  
  365.         MEMCACHED_SRC=memcached-1.4.5  
  366.         rm -rf $MEMCACHED_SRC  
  367.         tar zxf $MEMCACHED_PKG  
  368.         cd $MEMCACHED_SRC  
  369.         ./configure --prefix=$PREFIX_DIR/memcached-1.4.5  
  370.         make && make install  
  371. }  
  372.   
  373.   
  374.   
  375. function vsftpd(){  
  376.     yum install -y vsftpd  
  377.     adduser --home-dir /www/target/logs/ --shell /sbin/nologin --password logs.xiu.com logs  
  378.     echo logs >> /etc/vsftpd/chroot_list  
  379.     vim /etc/vsftpd/vsftpd.conf <<VIM > /dev/null 2>&1  
  380. :%s/#chroot_list_enable=YES/chroot_list_enable=YES/  
  381. :%s/#chroot_list_file/chroot_list_file/  
  382. VIM  
  383.     chkconfig vsftpd on  
  384.     service vsftpd start  
  385. }  
  386.   
  387.   
  388. # See how we were called.  
  389. case "$1" in  
  390.   clean)  
  391.         clean  
  392.         ;;  
  393.   httpd)  
  394.         httpd  
  395.         ;;  
  396.   php)  
  397.         php  
  398.         ;;  
  399.   mysql)  
  400.         if [ -f $0 ] ; then  
  401.                 mysql  
  402.         fi  
  403.         ;;  
  404.   depend)  
  405.         depend  
  406.         ;;  
  407.   java)  
  408.         java  
  409.         ;;  
  410.   resin)  
  411.         resin  
  412.         ;;  
  413.   profile)  
  414.         profile  
  415.         ;;  
  416.   memcache)  
  417.         memcache  
  418.         ;;  
  419.   lamp)  
  420.         clean  
  421.   
  422.         echo ##################################################  
  423.         echo # $MYSQL_DIR Installing...  
  424.         echo ##################################################  
  425.         mysql  
  426.   
  427.         echo ##################################################  
  428.         echo # $HTTPD_DIR Installing...  
  429.         echo ##################################################  
  430.         httpd  
  431.   
  432.         echo ##################################################  
  433.         echo # $PHP_DIR Installing...  
  434.         echo ##################################################  
  435.         php  
  436.   
  437.         clean  
  438.         ;;  
  439.   vsftpd)  
  440.     vsftpd  
  441.     ;;  
  442.   optimization)  
  443.     optimization  
  444.     ;;  
  445.   *)  
  446.         echo $"Usage: $0 {depend|clean}"  
  447.         echo "      {httpd|php|mysql|vsftpd}"  
  448.         echo "      {java|resin}"  
  449.         echo "      {memcache}"  
  450.         echo "      {optimization}"  
  451.         echo "      {ntp|snmp|nagios|nrpe}"  
  452.         RETVAL=2  
  453.         ;;  
  454. esac  
  455.   
  456. exit $RETVAL  

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
httpd编译安装php
wget http://hk1.php.net/distributions/php-5.6.31.tar.gz yum groupinstall "Development Tools" yum install zlib openssl perl yum install httpd httpd-devel tar -xf php.
810 0
+关注
netkiller
Nickname:netkiller | English name: Neo chen | QQ: 291379 | 订阅号:netkiller-ebook | 网站:http://www.netkiller.cn
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PHP安全开发_从白帽角度做安全
立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现
立即下载
PHP与APM_技术内幕和最佳实践
立即下载