linux下自动化部署apache + php环境
来源:互联网 发布:面包板是做单片机的吗 编辑:程序博客网 时间:2024/06/02 11:52
自己写的一个关于apache+php自动化部署的bash shell脚本,可以一键执行。主要实现内容如下:
- centos 基本工具安装
- apache依赖包apr,apr-util,par-iconv安装
- openssl安装
- apache安装
- zlip,zip,freetype, xpm, libjpeg, libpng gd, pcre, pecl等扩展库安装
- php安装
- apache 配置
- apache服务自启动配置
- ssl证书配置
- php配置
- iptables配置
以下是具体的脚本实现过程;
#!/bin/sh#centos 基本工具安装#apache依赖包apr,apr-util,par-iconv安装 #openssl安装#apache安装#zlip,zip,freetype, xpm, libjpeg, libpng gd, pcre, pecl等扩展库安装#php安装#apache 配置#apache服务自启动配置#ssl证书配置#php配置#iptables配置echo "#####################################################################脚本功能实现所需的软件安装#####################################################################"yum -y install gcc gcc-c++yum -y install pcre-develyum -y install cmakeyum -y install ncurses-develyum -y install libxml2 libxml2-develyum -y install libpng-develyum -y install freetype freetype-develyum -y install libjpeg-turbo libjpeg-turbo-develyum -y install mysql mysql-serveryum -y install curl curl-develyum -y install mlocateyum -y install jpegsrcyum -y install libpngyum -y install libXpm-develyum -y install libtoolyum -y install unzip#删除已有的日志输出文件rm -rf /home/install.logcd softwareecho "#####################################################################安装apache依赖包apr,apr-util,apr-iconv#####################################################################"#安装apr#tar xvzf apr-1.5.2.tar.gzcd apr-1.5.2./configure --prefix=/usr/local/aprmake && make installmake clean && make distcleancd ../#安装apr-util#tar xvzf apr-util-1.5.4.tar.gz cd apr-util-1.5.4./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/make && make installmake clean && make distcleancd ../#安装apr-iconv#tar xvzf apr-iconv-1.2.1.tar.gzcd apr-iconv-1.2.1./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr/make && make installmake clean && make distcleancd ../echo "#####################################################################安装openssl#####################################################################"#安装openssl#tar -xzvf openssl-1.0.2j.tar.gzcd openssl-1.0.2j./config -fPIC enable-sharedmake dependmake && make installmake clean && make distcleancd ../#openssl类库做软连接ln -s /usr/local/ssl/lib/*.so.* /usr/lib64ln -s /usr/local/ssl/lib/*.so.* /usr/libecho "#####################################################################安装pcre#####################################################################"#安装pcreunzip -o pcre2-10.22.zipcd pcre2-10.22./configure --prefix=/usr/local/pcre2make && make installmake clean && make distcleancd ../echo "#####################################################################安装apache#####################################################################"#安装apache,同时绑定编译apr, apr-util, apr-iconv, ssl模块,后续加上--with-pcre=/usr/local/bin/pcre-config #tar xvzf httpd-2.4.23.tar.gz cd httpd-2.4.23./configure \ --prefix=/usr/local/httpd \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util \ --with-apr-iconv=/usr/local/apr-iconv \ --with-ssl=/usr/local/ssl \ --with-pcre=/usr/bin/pcre-config \ --enable-so \ --enable-ssl \ --enable-mods-shared=all \ --enable-cache \ --enable-disk-cache \ --enable-file-cache \ --enable-mem-cache make && make installmake clean && make distcleancd ../ echo "#####################################################################安装gd依赖库#####################################################################"#安装zlibtar -xzvf zlib-1.2.8.tar.gzcd zlib-1.2.8./configure make && make installmake clean && make distcleancd ../#安装libjpegtar -xzvf jpegsrc.v9b.tar.gzcd jpeg-9b./configure \--prefix=/usr/lib64 \--enable-shared \--enable-static make && make instllmake clean && make distcleanlibtool --finish /usr/local/jpeg/libcd ../#安装libpngtar -xzvf libpng-1.6.26.tar.gzcd libpng-1.6.26./configure \--enable-shared \--enable-static make && make installmake clean && make distcleancd ../#安装freetype2tar -xzvf freetype-2.7.tar.gzcd freetype-2.7./configure \--prefix=/usr/lib64 \--enable-shared \--enable-static make && make install make clean && make distcleancd ../echo "#####################################################################安装gd扩展#####################################################################"#安装gdyum install libXpm-develtar -xzvf libgd-2.2.3.tar.gzcd libgd-2.2.3./configure \--prefix=/usr/lib64 \--with-jpeg=/usr/lib64 \--with-png=/usr.lib64 \--with-zlib \--with-freetype=/usr/lib64 \--enable-shared \--enable-static make && make installmake clean && make distcleancd ../echo "#####################################################################安装php#####################################################################"#安装phptar xvzf php-7.0.13.tar.gzcd php-7.0.13./configure \--prefix=/usr/local/php \--with-apxs2=/usr/local/httpd/bin/apxs \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-png-dir=/usr/lib64 \--with-jpeg-dir=/usr/lib64 \--with-freetype-dir=/usr/lib64 \--with-zlib-dir==/usr/lib64 \--with-xpm-dir=/usr/lib64/ \--with-gd=/usr/lib64 \--with-openssl \--with-curl \--with-config-file-path=/usr/local/php/lib \--enable-calendar \--enable-mbstring \--enable-sockets \--enable-xml \--enable-json \--enable-pdo \--enable-libxml \--enable-simplexml \--enable-xmlreader \--enable-xmlwritermake && make installmake clean && make distclean#拷贝php.ini 到指定路径cp php.ini-production /usr/local/php/lib/php.inicd ../echo "#####################################################################安装php pecl#####################################################################"#安装zip扩展/usr/local/php/bin/pecl install zipecho 'extension=zip.so' >> /usr/local/php/lib/php.ini#安装v8 js引擎扩展#/usr/local/php/bin/pecl install v8js#echo 'extension=v8js.so' >> /usr/local/php/lib/php.ini#安装html_parse解析器扩展#/usr/local/php/bin/pecl install html_parse#echo 'extension=html_parse.so' >> /usr/local/php/lib/php.ini#安装date_time日期扩展#/usr/local/php/bin/pecl install date_time#echo 'extension=date_time.so' >> /usr/local/php/lib/php.iniecho "##############################################################apache配置############################################################################"#添加php解析文件头echo 'AddType application/x-httpd-php .php' >> /usr/local/httpd/conf/httpd.conf#启用重写模块sed -i 's:#LoadModule rewrite_module modules/mod_rewrite.so:LoadModule rewrite_module modules/mod_rewrite.so:' /usr/local/httpd/conf/httpd.conf#启用压缩模块sed -i 's:#LoadModule deflate_module modules/mod_deflate.so:LoadModule deflate_module modules/mod_deflate.so:' /usr/local/httpd/conf/httpd.conf#启用页面缓存模块sed -i 's:#LoadModule expires_module modules/mod_expires.so:LoadModule expires_module modules/mod_expires.so:' /usr/local/httpd/conf/httpd.conf#启用页面内存缓存模块sed -i 's:#LoadModule cache_module modules/mod_cache.so:LoadModule cache_module modules/mod_cache.so:' /usr/local/httpd/conf/httpd.conf#启用页面文件缓存模块sed -i 's:#LoadModule file_cache_module modules/mod_file_cache.so:LoadModule file_cache_module modules/mod_file_cache.so:' /usr/local/httpd/conf/httpd.conf#启用磁盘缓存模块sed -i 's:#LoadModule cache_disk_module modules/mod_cache_disk.so:LoadModule cache_disk_module modules/mod_cache_disk.so:' /usr/local/httpd/conf/httpd.conf#启用基于内存的缓冲管理器模块sed -i 's:#LoadModule socache_memcache_module modules/mod_socache_memcache.so:LoadModule socache_memcache_module modules/mod_socache_memcache.so:' /usr/local/httpd/conf/httpd.conf#禁用显示apache版本信息sed -i 's:LoadModule version_module modules/mod_version.so:#LoadModule version_module modules/mod_version.so:' /usr/local/httpd/conf/httpd.conf#启用url自动修正模块sed -i 's:#LoadModule speling_module modules/mod_speling.so:LoadModule speling_module modules/mod_speling.so:' /usr/local/httpd/conf/httpd.conf#配置apache压缩规则echo '<ifmodule mod_deflate.c> ' >> /usr/local/httpd/conf/httpd.confecho ' #设定压缩率,压缩率1 -9, 6是建议值,不能太高,消耗过多的内存,影响服务器性能 ' >> /usr/local/httpd/conf/httpd.confecho ' DeflateCompressionLevel 6 ' >> /usr/local/httpd/conf/httpd.conf ' >> /usr/local/httpd/conf/httpd.confecho ' ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE text/plain ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE text/html ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE text/php ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE text/xml ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE text/css ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE text/javascript ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/xhtml+xml ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/xml ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/rss+xml ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/atom_xml ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/x-javascript ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/x-httpd-php ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/x-httpd-fastphp ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/x-httpd-eruby ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE image/svg+xml ' >> /usr/local/httpd/conf/httpd.confecho ' AddOutputFilterByType DEFLATE application/javascript ' >> /usr/local/httpd/conf/httpd.confecho ' ' >> /usr/local/httpd/conf/httpd.confecho ' #插入过滤器 ' >> /usr/local/httpd/conf/httpd.confecho ' SetOutputFilter DEFLATE ' >> /usr/local/httpd/conf/httpd.confecho ' ' >> /usr/local/httpd/conf/httpd.confecho ' #排除不需要压缩的文件 ' >> /usr/local/httpd/conf/httpd.confecho ' SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.confecho ' SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip don’t-vary ' >> /usr/local/httpd/conf/httpd.conf echo ' SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.confecho ' SetEnvIfNoCase Request_URI \.avi$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.confecho ' SetEnvIfNoCase Request_URI \.mov$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.conf echo ' SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.confecho ' SetEnvIfNoCase Request_URI \.mp4$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.confecho ' SetEnvIfNoCase Request_URI \.rm$ no-gzip dont-vary ' >> /usr/local/httpd/conf/httpd.confecho '</ifmodule> ' >> /usr/local/httpd/conf/httpd.conf#创建缓存目录mkdir /usr/local/httpd/cache#给缓存目录授权chmod 777 /usr/local/httpd/cache#配置apache缓存机制echo '<IfModule mod_cache.c> ' >> /usr/local/httpd/conf/httpd.confecho ' CacheDefaultExpire 3600 ' >> /usr/local/httpd/conf/httpd.confecho ' CacheMaxExpire 86400 ' >> /usr/local/httpd/conf/httpd.confecho ' CacheLastModifiedFactor 0.1 ' >> /usr/local/httpd/conf/httpd.confecho ' CacheIgnoreHeaders Set-Cookie ' >> /usr/local/httpd/conf/httpd.conf echo ' CacheIgnoreCacheControl Off ' >> /usr/local/httpd/conf/httpd.confecho ' ' >> /usr/local/httpd/conf/httpd.confecho ' <IfModule mod_disk_cache.c> ' >> /usr/local/httpd/conf/httpd.confecho ' CacheEnable disk / ' >> /usr/local/httpd/conf/httpd.confecho ' CacheRoot /usr/local/httpd/cache ' >> /usr/local/httpd/conf/httpd.confecho ' CacheDirLevels 5 ' >> /usr/local/httpd/conf/httpd.confecho ' CacheDirLength 5 ' >> /usr/local/httpd/conf/httpd.confecho ' CacheMaxFileSize 1048576 ' >> /usr/local/httpd/conf/httpd.confecho ' CacheMinFileSize 10 ' >> /usr/local/httpd/conf/httpd.confecho ' </IfModule> ' >> /usr/local/httpd/conf/httpd.confecho ' ' >> /usr/local/httpd/conf/httpd.confecho ' <IfModule mod_mem_cache.c> ' >> /usr/local/httpd/conf/httpd.confecho ' CacheEnable mem / ' >> /usr/local/httpd/conf/httpd.confecho ' MCacheMaxObjectCount 20000 ' >> /usr/local/httpd/conf/httpd.confecho ' MCacheMaxObjectSize 1048576 ' >> /usr/local/httpd/conf/httpd.confecho ' MCacheMinObjectSize 10 ' >> /usr/local/httpd/conf/httpd.confecho ' MCacheMaxStreamingBuffer 65536 ' >> /usr/local/httpd/conf/httpd.confecho ' MCacheRemovalAlgorithm GDSF ' >> /usr/local/httpd/conf/httpd.conf echo ' MCacheSize 131072 ' >> /usr/local/httpd/conf/httpd.confecho ' </IfModule> ' >> /usr/local/httpd/conf/httpd.confecho '</IfModule> ' >> /usr/local/httpd/conf/httpd.conf#配置访问权限sed -i 's/AllowOverride None/AllowOverride All/' /usr/local/httpd/conf/httpd.conf#提供默认页面sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php/' /usr/local/httpd/conf/httpd.conf#设定serverNamesed -i 's/#ServerName www.example.com:80/ServerName 127.0.0.1:80/' /usr/local/httpd/conf/httpd.conf#提供默认初始页cp ../index.php /usr/local/httpd/htdocs/echo "##############################################################ssl模块启用############################################################################"#启用ssl模块sed -i 's:#LoadModule ssl_module modules/mod_ssl.so:LoadModule ssl_module modules/mod_ssl.so:' /usr/local/httpd/conf/httpd.confsed -i 's:#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so:LoadModule socache_shmcb_module modules/mod_socache_shmcb.so:' /usr/local/httpd/conf/httpd.confsed -i 's:#Include conf/extra/httpd-ssl.conf:Include conf/extra/httpd-ssl.conf:' /usr/local/httpd/conf/httpd.confecho "##############################################################ssl证书配置和虚拟主机域名配置###########################################################"#拷贝证书到apache指定目录sed -i 's:#SSLCertificateChainFile "/usr/local/httpd/conf/server-ca.crt":SSLCertificateChainFile "/usr/local/httpd/conf/server-ca.crt":' /usr/local/httpd/conf/extra/httpd-ssl.confcp ../ssl/server.key /usr/local/httpd/conf/server.keycp ../ssl/server.crt /usr/local/httpd/conf/server.crtcp ../ssl/server-ca.crt /usr/local/httpd/conf/server-ca.crt#设定ssl虚拟主机的域名sed -i 's/ServerName www.example.com:443/ServerName ioa.cn:443"/' /usr/local/httpd/conf/extra/httpd-ssl.confecho "##############################################################设置apache环境变量#######################################################################"echo 'APACHE_HOME=/usr/local/httpd' >> /etc/profileecho 'PATH=$PATH:$APACHE_HOME/bin/' >> /etc/profileecho 'CLASSPATH=$CLASSPATH:$APACHE_HOME/lib' >> /etc/profilesource /etc/profileecho "##############################################################apache服务自启动配置#######################################################################"#设置apache 服务自启动cp /usr/local/httpd/bin/apachectl /etc/init.d/httpdcd /etc/init.dchmod 755 httpdsed -i '2 i #chkconfig: 2345 10 90\n#description: chkconfig httpd service' /etc/init.d/httpdchkconfig --add httpdchkconfig httpd on echo "##############################################################配置php.ini参数#######################################################################"#配置响应时间sed -i 's/max_execution_time = 30/max_execution_time = 0/' /usr/local/php/lib/php.ini#配置post大小sed -i 's/post_max_size = 8M/post_max_size = 150M/' /usr/local/php/lib/php.ini#配置上传文件大小sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /usr/local/php/lib/php.ini#设定错误输出级别sed -i 's:error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT:error_reporting = E_ALL:' /usr/local/php/lib/php.ini#配置phpize环境变量echo 'PHP_HOME=/usr/local/php' >> /etc/profileecho 'PATH=$PATH:$PHP_HOME/bin/' >> /etc/profileecho 'CLASSPATH=$CLASSPATH:$PHP_HOME/lib' >> /etc/profilesource /etc/profile#重启后才能生效service httpd restart echo "##############################################################iptables配置,启用80端口、443端口#######################################################################"iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPTiptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPTservice iptables saveservice iptables restart
0 0
- linux下自动化部署apache + php环境
- Linux下部署LAMP环境(Linux+Apache+MySQL+PHP)
- linux CentOS 7.2 服务器配置apache+mysql+php环境 (linux 系统下LAMP部署)
- RHEL4环境部署Linux+Apache+MySQL+PostgreSQL+PHP环境
- linux部署php运行环境,apache+mysql+php
- Linux下安装Apache+php环境
- Linux下apache+PHP+MySQL环境配置
- Linux下配置APACHE支持PHP环境
- opencart 在linux环境下的apache的部署
- Linux环境下使用Apache部署Web服务
- Linux下PHP开发环境搭建-php,mysql,apache
- Linux下PHP开发环境搭建-php,mysql,apache
- Linux下安装Apache+PHP+MySql 搭建PHP运行环境
- WIN下 Apache PHP 部署。
- Windows环境下jenkins配置自动化部署
- linux下环境部署
- C语言多线程自动化部署linux环境
- LINUX环境下Nginx与php-fpm安装部署
- Scala数组操作
- ssh
- python字符串比较
- Leetcode 24 :Swap Nodes in Pairs
- 小米架构师:亿级大数据实时分析与工具选型(附PPT)
- linux下自动化部署apache + php环境
- 20160712梅西法&科利法.md
- 果然咸鱼还是一如既往的咸鱼
- UVA11292 HDU1902 POJ3646 Dragon of Loowater
- 开关频率
- 29. Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
- dp做题的基本思路和优化思想
- hdu 2191 多重背包
- 第10课:Scala继承彻底实战和Spark源码鉴赏