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

http://netkiller.github.com/#!/bin/bash
#================================================================================
# LAMP Installing script by Neo <openunix@163.com>
# http://netkiller.sourceforge.net/
# $Id$
#================================================================================
SRC_DIR=$(pwd)
PREFIX_DIR=/srv
EMAIL=webmaster@example.com
#================================================================================
HTTPD_SRC='httpd-2.2.21.tar.gz'
PHP_SRC='php-5.3.8.tar.gz'
MYSQL_SRC='mysql-5.5.9.tar.gz'
MYSQL_LIBS_SRC='mysql-5.1.50.tar.gz'
MYSQL_BIN='mysql-5.1.50-linux-x86_64-glibc23.tar.gz'
JAVA_BIN='jdk-6u20-linux-x64.bin'
#================================================================================
HTTPD_DIR=${HTTPD_SRC%%.tar.gz}
PHP_DIR=${PHP_SRC%%.tar.*}
MYSQL_DIR=${MYSQL_SRC%%.tar.*}
MYSQL_LIBS_DIR=${MYSQL_LIBS_SRC%%.tar.*}
#================================================================================if [ -z "$( egrep "CentOS|Redhat" /etc/issue)" ]; thenecho 'Only for Redhat or CentOS'exit
fifunction clean(){rm -rf $HTTPD_DIRrm -rf $PHP_DIRrm -rf $MYSQL_DIRrm -rf $MYSQL_LIBS_DIR
}function depend(){yum install gcc gcc-c++ make autoconf -yyum install curl-devel libmcrypt-devel gd-devel libjpeg-devel libpng-devel libXpm-devel libxml2-devel libxslt-devel mhash-devel openldap-devel -yyum install ncurses-devel -y
#        yum install mysql-devel -yyum install libevent-devel -yyum install e4fsprogs -yyum install net-snmp-devel -yyum install setuptool ntsysv system-config-network-tui -y#rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
}function httpd(){
rm -rf $HTTPD_DIR
tar zxf $HTTPD_SRC
cd $HTTPD_DIRRETVAL=$?
[[ $RETVAL != 0 ]] && echo "Static: "$RETVAL &&  exit $?vim server/mpm/worker/worker.c <<end > /dev/null 2>&1
:%s/#define DEFAULT_SERVER_LIMIT 16/#define DEFAULT_SERVER_LIMIT 256/
:%s/#define DEFAULT_THREAD_LIMIT 64/#define DEFAULT_THREAD_LIMIT 1024/
:wq
end
#define MAX_SERVER_LIMIT 20000
#define MAX_THREAD_LIMIT 20000[[ $? -ne 0 ]] && echo "Step: server/mpm/worker/worker.c" &&  exit $?./configure --prefix=$PREFIX_DIR/$HTTPD_DIR \
--with-mpm=worker \
--enable-modules="so dir mime rewrite deflate vhost_alias include" \
--enable-mods-shared="alias filter expires headers  setenvif status info ssl usertrack cache mem-cache file-cache disk-cache version mod_unique_id " \
--disable-authn_file \
--disable-authn_default \
--disable-authz_groupfile \
--disable-authz_user \
--disable-authz_default \
--disable-auth_basic \
--disable-version \
--disable-env \
--disable-autoindex \
--disable-asis \
--disable-cgid \
--disable-cgi \
--disable-negotiation \
--disable-actions \
--disable-userdir \
--enable-so \
--enable-file-cache \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-expires \
--enable-headers \
--enable-ssl \
--enable-info \
--enable-rewrite#--with-mpm=worker \
#--enable-so \
#--enable-mods-shared=all \
#--disable-alias
#--disable-include \
#--disable-status \[[ $? -ne 0 ]] && echo "Step: configure" &&  exit $?make clean
make[[ $? -ne 0 ]] && echo "Step: make" &&  exit $?make install[[ $? -ne 0 ]] && echo "Step: make install" &&  exit $?cd ..
ln -s $PREFIX_DIR/$HTTPD_DIR $PREFIX_DIR/httpd
ln -s $PREFIX_DIR/httpd $PREFIX_DIR/apachecp $PREFIX_DIR/httpd/conf/httpd.conf  $PREFIX_DIR/httpd/conf/httpd.conf.original
mkdir -p /www/logs/errorvim $PREFIX_DIR/httpd/conf/httpd.conf <<end > /dev/null 2>&1
:%s/User daemon/User nobody/
:%s/Group daemon/Group nobody/
:%s/ServerAdmin you@example.com/ServerAdmin $EMAIL/
:%s!#ServerName www.example.com:80!#ServerName www.example.com:80\rServerName 127.0.0.1!
:%s#$PREFIX_DIR/$HTTPD_DIR/htdocs#/www#g
:%s/#\n    AllowOverride None/#\r    AllowOverride All/
:%s#    DirectoryIndex index.html#    DirectoryIndex index.html index.php#
:%s=    #AddType text/html .shtml=    AddType text/html .shtml=
:%s=    #AddOutputFilter INCLUDES .shtml=    AddOutputFilter INCLUDES .shtml=
:%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=
:%s#ErrorLog "logs/error_log"#ErrorLog "| $PREFIX_DIR/httpd/bin/rotatelogs /www/logs/error/error.%Y-%m-%d.log 86400 480"#
:%s=#Include conf/extra/httpd-info.conf=Include conf/extra/httpd-info.conf=
:%s=#Include conf/extra/httpd-mpm.conf=Include conf/extra/httpd-mpm.conf=
:%s=#Include conf/extra/httpd-languages.conf=Include conf/extra/httpd-languages.conf=
:%s=#Include conf/extra/httpd-vhosts.conf=Include conf/extra/httpd-vhosts.conf=
:%s=#Include conf/extra/httpd-default.conf=Include conf/extra/httpd-default.conf=
:wq
end
#:%s!Listen 80!Listen 0.0.0.0:80!
#:%s!#ServerName www.example.com:80!#ServerName www.example.com:80\rServerName *!#vim $PREFIX_DIR/httpd/conf/extra/httpd-mpm.conf <<end > /dev/null 2>&1
#:%s/<IfModule mpm_worker_module>/<IfModule mpm_worker_module>\r    ServerLimit         16\r    ThreadLimit         128/
#:%s/StartServers          2/StartServers        8/
#:%s/MaxClients          150/MaxClients          2048/
#:%s/MinSpareThreads      25/MinSpareThreads     64/
#:%s/MaxSpareThreads      75/MaxSpareThreads     128/
#:%s/ThreadsPerChild      25/ThreadsPerChild     128/
#:%s/MaxRequestsPerChild   0/MaxRequestsPerChild 10000/
#:wq
#endvim $PREFIX_DIR/httpd/conf/extra/httpd-mpm.conf <<end > /dev/null 2>&1
:%s/<IfModule mpm_worker_module>/<IfModule mpm_worker_module>\r    ServerLimit         16\r    ThreadLimit         256/
:%s/StartServers          2/StartServers        8/
:%s/MaxClients          150/MaxClients          4096/
:%s/MinSpareThreads      25/MinSpareThreads     64/
:%s/MaxSpareThreads      75/MaxSpareThreads     256/
:%s/ThreadsPerChild      25/ThreadsPerChild     256/
:%s/MaxRequestsPerChild   0/MaxRequestsPerChild 10000/
:wq
endvim $PREFIX_DIR/httpd/conf/extra/httpd-languages.conf <<end > /dev/null 2>&1
:%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/
:%s/ForceLanguagePriority Prefer Fallback/#ForceLanguagePriority Prefer Fallback/
:wq
endecho -ne "
AddDefaultCharset UTF-8
" >> $PREFIX_DIR/httpd/conf/extra/httpd-languages.confvim $PREFIX_DIR/httpd/conf/extra/httpd-info.conf <<end > /dev/null 2>&1
:%s/Allow from .example.com/Allow from 127.0.0.1 172.16.1 113.106.63.1/g
:wq
endvim $PREFIX_DIR/httpd/conf/extra/httpd-default.conf <<end > /dev/null 2>&1
:%s/ServerTokens Full/ServerTokens Prod/
:wq
endecho -ne "
$PREFIX_DIR/httpd/bin/apachectl start
" >> /etc/rc.local}
function php(){
#ln -s /usr/lib64/mysql/* /usr/lib64/
#ln -s /srv/mysql/bin/mysql_config /usr/local/bin/rm -rf $PHP_DIR
tar zxf $PHP_SRC
cd $PHP_DIR./configure --prefix=$PREFIX_DIR/$PHP_DIR \
--with-config-file-path=$PREFIX_DIR/$PHP_DIR/etc \
--with-config-file-scan-dir=$PREFIX_DIR/$PHP_DIR/etc/conf.d \
--with-apxs2=$PREFIX_DIR/$HTTPD_DIR/bin/apxs \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-xpm-dir \
--with-iconv \
--with-zlib-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash=shared \
--with-mysql=/srv/mysql-5.1.50-linux-x86_64-glibc23 \
--with-pdo-mysql=/srv/mysql-5.1.50-linux-x86_64-glibc23 \
--with-sqlite=shared \
--with-pdo-sqlite=shared \
--with-ldap=shared \
--with-snmp=shared \
--with-xsl=shared \
--with-pear \
--enable-sockets \
--enable-soap \
--enable-mbstring \
--enable-magic-quotes \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-zip \
--enable-xml \
--enable-ftp#--with-mysqli=/srv/mysql-5.1.50-linux-x86_64-glibc23/bin/mysql_config \
#--enable-embedded-mysqli \#--enable-fpm \
#--with-fpm-user=nobody \
#--with-fpm-group=nobody \
#--with-mysql=/srv/mysql-5.5.9-linux2.6-x86_64 \
#--with-pdo-mysql=/srv/mysql-5.5.9-linux2.6-x86_64 \[[ $? -ne 0 ]] && echo "Step: configure" &&  exit $?#make && make test && make install
#make &&  make install
make
[[ $? -ne 0 ]] && echo "Step: make" &&  exit $?make install
[[ $? -ne 0 ]] && echo "Step: make install" &&  exit $?mkdir -p $PREFIX_DIR/$PHP_DIR/etc/conf.d
cp $PREFIX_DIR/src/$PHP_DIR/php.ini-production $PREFIX_DIR/$PHP_DIR/etc/php.ini
ln -s $PREFIX_DIR/$PHP_DIR $PREFIX_DIR/phpcp $PREFIX_DIR/$PHP_DIR/etc/php.ini $PREFIX_DIR/$PHP_DIR/etc/php.ini.originalvim $PREFIX_DIR/php/etc/php.ini <<EOF > /dev/null 2>&1
:%s!;include_path = ".:/php/includes"!;include_path = ".:/php/includes"\rinclude_path = ".:$PREFIX_DIR/$PHP_DIR/lib/php"!
:%s:;extension_dir = "./":extension_dir = "$PREFIX_DIR/$PHP_DIR/lib/php/extensions":
:%s/memory_limit = 128M/memory_limit = 64M/
:%s/log_errors = Off/log_errors = On/
:%s#;error_log = php_errors.log#error_log = php_errors.log#
:%s#;open_basedir =#open_basedir = /www/:/tmp/#
:%s/upload_max_filesize = 2M/upload_max_filesize = 8M/
:wq
EOF#:%s/mysql.allow_persistent = On/mysql.allow_persistent = Off/
#:%s/register_long_arrays = On/register_long_arrays = Off/
#:%s/display_errors = On/display_errors = Off/
#:%s/output_buffering = Off/output_buffering = On/
#:%s/allow_call_time_pass_reference = On/allow_call_time_pass_reference = Off/
#:%s#;error_log = php_errors.log#error_log = /www/logs/php_errors.log#read -p "php memcache module? [y/n]" -n 1 keyechoif [ $key = 'y' ]; then
$PREFIX_DIR/php/bin/pecl install memcache
cp $PREFIX_DIR/$PHP_DIR/lib/php/extensions/no-debug-zts-*/memcache.so $PREFIX_DIR/$PHP_DIR/lib/php/extensions/
cat > $PREFIX_DIR/php/etc/conf.d/memcache.ini <<EOF
extension=memcache.so
EOF
#> /dev/null 2>&1
#memcache.default_timeout_ms=30firead -p "php APC module? [y/n]" -n 1 keyechoif [ $key = 'y' ]; then
$PREFIX_DIR/php/bin/pecl install apc
cp $PREFIX_DIR/$PHP_DIR/lib/php/extensions/no-debug-zts-*/apc.so $PREFIX_DIR/$PHP_DIR/lib/php/extensions/
cat > $PREFIX_DIR/php/etc/conf.d/apc.ini <<EOF
extension=apc.so
EOF
# > /dev/null 2>&1fi
}function mysql(){
rm -rf $MYSQL_DIR
tar zxf $MYSQL_SRC
cd $MYSQL_DIR
./configure \
--prefix=$PREFIX_DIR/$MYSQL_DIR \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--with-charset=utf8 \
--with-collation=utf8_general_ci
--with-extra-charsets=complex \
--with-big-tables \
--with-readline \
--with-ssl \
--with-embedded-server \
--with-plugins=innobase \
--with-mysqld-user=mysql \
--without-ndb-debug \
--without-debug \
--without-bench
--without-docs \
--localstatedir=/data/mysql/data \
--enable-assembler \
--enable-thread-safe-client \
--enable-local-infile \make clean
make && make install
cd ..ln -s $PREFIX_DIR/$MYSQL_DIR $PREFIX_DIR/mysql
$PREFIX_DIR/$MYSQL_DIR/bin/mysql_install_db --user=mysql
chown mysql.mysql -R $PREFIX_DIR/$MYSQL_DIR
cp $PREFIX_DIR/src/$MYSQL_DIR/support-files/mysql.server /etc/init.d/mysql
/etc/init.d/mysql start
$PREFIX_DIR/$MYSQL_DIR/bin/mysqladmin -u root password '9S5wxCVPMY'
}function java(){JAVA_DIR=${JAVA_BIN%%.bin}#yum install java-1.6.0-openjdk -ychmod +x $JAVA_BIN./$JAVA_BINmv $JAVA_DIR ..ln -s $PREFIX_DIR/$JAVA_DIR $PREFIX_DIR/java
echo -ne '
export JAVA_HOME=$PREFIX_DIR/java
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HOMR/bin:$PATH
export PATH=$PATH:$PREFIX_DIR/httpd/bin:$PREFIX_DIR/php/bin:$PREFIX_DIR/mysql/bin:$PREFIX_DIR/resin/bin:$PREFIX_DIR/python/bin
' >> /etc/profile}
function resin(){tar zxf resin-4.0.6.tar.gzmv resin-4.0.6 $PREFIX_DIR/echo 'export RESIN_HOME=$PREFIX_DIR/resin' >> /etc/profile
}
function memcache(){MEMCACHED_PKG=memcached-1.4.5.tar.gzMEMCACHED_SRC=memcached-1.4.5rm -rf $MEMCACHED_SRCtar zxf $MEMCACHED_PKGcd $MEMCACHED_SRC./configure --prefix=$PREFIX_DIR/memcached-1.4.5make && make install
}function vsftpd(){yum install -y vsftpdadduser --home-dir /www/target/logs/ --shell /sbin/nologin --password logs.xiu.com logsecho logs >> /etc/vsftpd/chroot_listvim /etc/vsftpd/vsftpd.conf <<VIM > /dev/null 2>&1
:%s/#chroot_list_enable=YES/chroot_list_enable=YES/
:%s/#chroot_list_file/chroot_list_file/
VIMchkconfig vsftpd onservice vsftpd start
}# See how we were called.
case "$1" inclean)clean;;httpd)httpd;;php)php;;mysql)if [ -f $0 ] ; thenmysqlfi;;depend)depend;;java)java;;resin)resin;;profile)profile;;memcache)memcache;;lamp)cleanecho ##################################################echo # $MYSQL_DIR Installing...echo ##################################################mysqlecho ##################################################echo # $HTTPD_DIR Installing...echo ##################################################httpdecho ##################################################echo # $PHP_DIR Installing...echo ##################################################phpclean;;vsftpd)vsftpd;;optimization)optimization;;*)echo $"Usage: $0 {depend|clean}"echo "       {httpd|php|mysql|vsftpd}"echo "     {java|resin}"echo "     {memcache}"echo "       {optimization}"echo "       {ntp|snmp|nagios|nrpe}"RETVAL=2;;
esacexit $RETVAL

httpd-2.2.21 + php-5.3.8 自动安装脚本相关推荐

  1. 网络无人自动安装centos 6.2 + PXE + httpd + kickstart

    centos 6.2 +PXE +httpd + system-config-kickstart 网络无人自动安装   注意:因为dhcpd  和tftp 的 某几个选项和配置文件在centos 5. ...

  2. shell脚本1例 自动安装httpd

    #!/bin/bash read -n 1 -p "是否已将httpd-2.2.17源码包放到root目录下,确认按Y" p # -n 1指定只能读入一个字符 test " ...

  3. 21.3centos7 PXE自动安装操作系统

    红帽官方安装指导文档链接 说明:Preboot Excution Environment 预启动执行环境 PXE(网络自动化安装操作系统) Preboot Excution Environment 预 ...

  4. LAMP(apache/httpd+mysql+php)环境/架构 一键安装脚本

    该脚本只在centos 上测试过,测试OK,其他发行版自行测试 #!/bin/bash #Purpose        :一键安装lamp(apache + mysql + php) #Writer ...

  5. 【shell实例】定时21:00-21:05,循环调用DSQL脚本,其它时段自动退出

    1.功能描述: 每日21:00定时调起test.sh,循环调起DSQL脚本test.dsql,直到21:05程序自动退出,捕获日志到相应log文件中. 2.日志文件: (1)日期.log文件中含Err ...

  6. 21.1-21.4 memcached介绍,安装使用,状态查看

    NoSQL 21.1 什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库.表.行.字段里,查询的时候根据条件一行一行地去匹配,当量非 ...

  7. 21英里法则_穿着自动鞋带走一英里

    21英里法则 From owning my own mobile phone at age 11, I got used to charging my phone, as we all are acc ...

  8. Adam学习21之在Ubuntu下编译安装记录

    环境: adam-2.10.0.19 clean package test install 1.Ubuntu下对adam进行mvn clean package -DskipTests xubo@xub ...

  9. 21. Matlab中的Live scrip ---实时脚本

    我的理解: (1) 实时的通过运行反应各种的运行zhua状态 (2)将屏幕一分为二的,去展示 通过创建live scrip 的到里面的函数 然后运行的具体方法如下所示: 使用livescrip (1) ...

最新文章

  1. 混合时空图卷积网络:利用导航数据改进交通预测效果 | KDD 2020
  2. python中split的用法取第二个分片_python中的split()函数的用法
  3. sklearn没有实现ID3算法
  4. C# Lazy Loading
  5. [贝聊科技]网页端「应用跳转」技术实现演变
  6. dnf加物理攻击的卡片有哪些_DNF:节日宝珠之外百分比神器附魔,拍卖行100w,实用不氪金...
  7. 联想如何安装linux系统安装步骤,加速本本的启动 - 在ThinkPad上安装Ubuntu的全过程详解_Linux教程_Linux公社-Linux系统门户网站...
  8. docker 远程连接 文件看不到_Java 开发提升十倍生产力:IDEA 远程一键部署 Spring Boot 到 Docker...
  9. 跟小静读CLR via C#(10)-参数
  10. clickhouse 副本ReplicateMergeTree实现原理
  11. Get value from agent failed:ZBX_TCP_READ() timed out(亲测)
  12. 在ubuntu中搭建guacamole
  13. 学习PLC到底要不要买PLC?
  14. 《穿越计算机的迷雾》读书笔记五
  15. 计算机函数求各科及格率怎么求,合格率怎么算(计算及格率的方法)
  16. Preferences
  17. MPEG-TS 格式解析
  18. --go_out: protoc-gen-go: plugins are not supported问题处理
  19. yolov5昆虫识别模型测试
  20. 一种基于区块链的身份认证方法

热门文章

  1. Asp.net Ajax 的 PageRequestManager类的事件
  2. 你的努力终将被光芒环绕
  3. 中国人工智能学会通讯——AI时代的若干伦理问题及策略 1.3 构建算法治理的内外部约束机制...
  4. JavaScript 获取当日在今年第几周
  5. ms12-20 远程桌面(RDP)3389漏洞
  6. android检查可用网络的代码
  7. Nginx的client_header_buffer_size和large_client_header_buffers学习
  8. 异常的概念和Java异常体系结构
  9. 今天写了一个含配置文件的 文件分割 及 合并 的java程序。
  10. caffeine 读操作源码走读 为什么读这么快