apache的安装与配置
apache下载地址:http://httpd.apache.org/download.cgi#apache24
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.51.tar.gz
tar -zxvf httpd-2.4.51.tar.gz #解压安装包
cd httpd-2.4.51
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --enable-headers --enable-expires --with-mpm=worker --enable-modules=most --enable-deflate
make && make install # 编译安装
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd #复制启动文件到/etc/init.d目录
service httpd start #启动Apache
因为Apache与nginx默认都会监听80端口,所以我们在安装Apache或者启动Apache之前先关闭nginx,或者先把Apache的配置进行修改
Apache的配置修改
apache的配置目录在/usr/local/apache/conf/httpd.conf。注:这里只是我配置文件的地址。 Apache的虚拟主机可以在conf/httpd.conf中进行配置,也可以在conf/extra/httpd-vhost.conf中配置。后者是在httpd.conf文件中通过include指令引入的子配置文件,但是在使用前需要现在httpd.conf中找到如下一行配置取消注释,否则配置将不会生效。
#include conf/extra/httpd-vhost.conf #去掉前面的#号
然后打开httpd-vhost.conf文件,可以看到Apache提供的默认配置。我们只需要删除多余的配置,添加自己的配置即可:
<VirtualHost *:81>
DocumentRoot "/www/study_nginx"
ServerName www.study_apache.com
ServerAlias study_apache.com
</VirtualHost>
<Directory "/www/study_nginx">
Require all granted
</Directory>
在 httpd.conf 文件中修改 listen 并添加 ServerName
listen 81
ServerName localhost
保存之后,重启Apache
Apache配置访问php文件
Apache处理PHP动态请求的稳定性高于NGINX+PHP-fpm的方式,这个是因为PHP利用Apache的动态模块机制实现了高度整合。在安装Apache时,编译选项中有一个–enable-so,添加此选项后,Apache就会在bin目录下生成一个apxs程序,apxs是Apache提供的一个扩展工具,用于编译模块,PHP能够利用apxs编译一个用于Apache访问PHP的模块,以实现整合。
因为之前我已经安装了nginx+php-fpm,这里需要整合php-fpm与Apache,所以对于php需要重新编译
cd /home/php-7.4.16 #php所在位置
make clean #清除之前安装过的nginx+PHP
./configure --prefix=/usr/localphp --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --enable-zip --enable-mbstring --with-mcrypt --with-mysql --with-mysqli --with-pdo-mysql --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-curl --with-openssl --with-mhash --enable-bcmath --enable-opcache
make && make install
Apache配置的修改:
在 httpd.conf文件加入:
<FilesMatch "\.php$">
setHandler application/x-httpd-php
</FilesMatch>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
编译完成之后,使用在之前我们添加的Apache服务下新增PHP代码文件,并访问:
nginx结合Apache动静分离
=静分离的优势 api接口服务化:动静分离之后,后端应用更为服务化,只需要通过提供api接口即可,可以为多个功能模块甚至是多个平台的功能使用,可以有效的节省后端人力,更便于功能维护。
前后端开发并行:前后端只需要关心接口协议即可,各自的开发相互不干扰,并行开发,并行自测,可以有效的提高开发时间,也可以有些的减少联调时间
减轻后端服务器压力,提高静态资源访问速度:后端不用再将模板渲染为html返回给用户端,且静态服务器可以采用更为专业的技术提高静态资源的访问速度。
修改nginx对动态请求的处理
server{
listen 80;
server_name www.study_nginx.com;
root /www/study_nginx;
index index.html index.htm;
location ~ \.php$ {
proxy_pass http://127.0.0.1:81;
proxy_set_header Host $host;
proxy_set_header X-Client-IP $remote_addr;
# root /www/study_nginx;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
# include fastcgi_params;
}
}
访问 www.study_nginx.com
|