前言
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
一、安装httpd
主流网站服务器软件: Apache:时间较早,模块化设计,几乎可以运行在所有操作系统上,性能稳定;配置相对复杂,自身无法解析动态网页。 nginx:高性能、高并发的网站和反向代理服务器,也可做邮件代理,阿里再开发tengine应用于天猫和淘宝。 tomcat:java应用服务器,也是servlet容器,可以认为是Apache的扩展,可以独立运行,也可以和Apache合作。 Apache与nginx的区别: nginx:配置简洁、反向代理、负载均衡、静态数据处理能力是Apache3倍以上,消耗内存少。 Apache:跨所有平台、支持通用网关接口(cgi)、支持多种动态网站语言(php,python,perl,java),模块组件比nginx多,运行稳定;配置复杂 Apache2.4版本
新特性: 1、MPM 支持在运行时装载;不过要开启这种特性,在编译安装要启用这三种功能; --enable-mpms-shared=all --with-mpm=event 2、支持 event 3、支持异步读写 4、在每个模块及每个目录上指定日志级别 5、增强版的表达式分析器 6、每请求配置:
Apache安装步骤:
1.检查是否已安装rpm包httpd rpm -q httpd \\查看是否安装 rpm -e httpd --nodeps \\卸载已安装的程序
2.安装前提软件 把软件复制到虚拟机的/usr/src目录下或直接下载到虚拟机 如果编译安装无法执行,可能是开发软件工具没有安装,需要先安装开发软件:命令如下 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 编写脚本安装前提软件: mkdir /sh cd /sh vim qianti.sh 添加: #!/bin/bash cd /usr/src tar zxf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/usr/local/apr && make && make install
cd .. tar zxf 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 install
cd .. yum -y install zlib-*
tar zxf pcre-8.39.tar.gz cd pcre-8.39 ./configure --prefix=/usr/local/pcre && make && make install
cd .. tar zxf openssl-1.0.1u.tar.gz cd openssl-1.0.1u ./config -fPIC --prefix=/usr/local/openssl enable-shared && make && make install 保存退出
执行脚本:sh qianti.sh
安装Apache主程序
cd /sh vim httpd.sh 添加: #!/bin/bash cd /usr/src tar zxf httpd-2.4.25.tar.gz cd httpd-2.4.25 ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate && make && make install
保存退出
优化链接
ln -s /usr/local/httpd/bin/* /usr/local/bin
添加系统服务 cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd vim /etc/init.d/httpd 定位到第二行:修改为 # chkconfig: 35 85 15 \\声明服务启动级别,开机启动顺序,关机关闭顺序 # description: apache 2.4.25 \\服务声明,简要信息 保存退出 chkconfig --add httpd \\添加httpd到系统服务 chkconfig httpd on \\设置服务开机自启(等同于:systemctl enable httpd) systemctl start httpd \\开启服务(等同于:service httpd start)
查看httpd模块
httpd -V \\查看版本和已装模块 httpd -l \\只查看静态编译模块 httpd -M \\查看所有模块
MPM(Multi Process Modules):多进程处理模块
负责实现网络监听、请求的处理等功能,目的为了在不同的平台上实现最优化的性能和稳定性。 操作系统平台 MPM BeOS beos NetWare mpm_netware OS/2 mpm_os2 linux prefork、worker、event Windows mpm_winnt
prefork模式:
非线程、预生成进程型MPM,一个子进程同一时间点仅能处理一个用户请求,根据并发请求数动态调整子进程 worker模式: 线程化、多进程型MPM,每个进程可生成多个线程,每个线程处理一个请求,缺点:长连接,资源容易被占用 event模式: worker的改进版,使用监控线程处理长连接出现的资源占用问题
修改mpm配置文件
vim /usr/local/httpd/conf/httpd.conf Include conf/extra/httpd-mpm.conf 去除#号
systemctl restart httpd
vim /usr/local/httpd/conf/extra/httpd-mpm.conf
#企业推荐参数
使用ab命令进行压力测试
yum -y install httpd-tools ab -c 1000 -n 10000 http://192.168.1.102/index.html 试命令进行160人并发访问,发出10000个请求。
安装mysql
1.复制mysql5.6-rpm到虚拟机/root cd /root/mysql5.6-rpm yum -y localinstall *.rpm systemctl start mysqld systemctl enable mysqld
安装php
1.安装前提软件 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum -y install libxml2-devel lzip2-devel libcurl-devel libmcrypt-devel openssl-devel bzip2-devel
2.复制libmcrpt和php包到/usr/src,安装libmcrypt加密工具 cd /usr/src tar zxf libmcrypt-2.5.7.tar.gz cd libmcrypt-2.5.7/ ./configure --prefix=/usr/local/libmcrypt && make && make install
3.安装php cd /usr/src tar zxf php-5.6.27.tar.gz cd php-5.6.27/ ./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
4.提供 php 配置文件 cp /usr/src/php-5.6.27/php.ini-production /etc/php.ini
5.为 php-fpm 提供脚本 cd /usr/src/php-5.6.27/ cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm chkconfig --add php-fpm chkconfig php-fpm on
6.提供 php-fpm 配置文件并编辑 cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf 7.启动php-fpm服务 systemctl start php-fpm
测试Apache与php的静/动分离
1.启用Apache服务的代理转发 vim /usr/local/httpd/conf/httpd.conf 找到下面三行,去除#号: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so Include conf/extra/httpd-vhosts.conf
找到AddType所在行,添加: AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
定位至 DirectoryIndex,改为: DirectoryIndex index.php index.htm 保存退出 systemctl restart httpd
2.配置虚拟主机文件 vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 改为:
3.测试 (1)mysql服务器,创建测试数据库用户 mysql \\登录数据库命令 grant all on *.* to testuser@'%' identified by '123456';
(2)在 php 服务器上的/var/www/benet 目录下创建.php 的测试页: vim /var/www/benet/index.php 添加: 保存退出
(3)在mysql服务器上测试访问Apache,会出现php内容
部署Discuz论坛
(1)复制Discuz包到apache和php服务器的/var/www/benet目录,解压并重命名赋权(步骤一样) mkdir -p /var/www/benet unzip Discuz_X3.3_SC_UTF8.zip mv upload/ /var/www/benet/bbs chmod -R 777 /var/www/benet/bbs
(2)在php服务器修改配置文件,重启服务 vim /etc/php.ini 找到下行并改为: short_open_tag = On 保存退出 service php-fpm restart
(3)在mysql服务器上创建bbs数据库及用户(下面ip为本机ip) mysql> create database bbsdb; mysql> grant all on bbsdb.* to runbbs@'192.168.8.10' identified by 'pwd@123';
(4)访问Apache,安装discuz论坛 http://192.168.8.10/bbs
相关阅读
发表评论