前言
今天接触了一个项目,它只能用Apache2,而且最近PHP8.2也推出了来了,所有想着试试就逝世的态度,结果还挺简单的,只能说配置好,后续再深入了解一下。
因此这里把简单的配置方案做一下。
环境
- Ubuntu
 - Nginx
 - PHP8.1-FPM
 
步骤
1.安装Apache2
1 2  | 
add-apt-repository ppa:ondrej/apache2 apt install apache2  | 
2.安装PHP8.2-fpm
1 2  | 
apt install php8.2-fpm apt install libapache2-mod-php8.2  | 

安装完提示有错误,正常,因为80端口被nginx占用了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41  | 
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xeu apache2.service" for details. invoke-rc.d: initscript apache2, action "restart" failed. × apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Wed 2022-10-12 10:04:59 CST; 22ms ago Docs: https://httpd.apache.org/docs/2.4/ Process: 121228 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE) CPU: 12ms Oct 12 10:04:59 VM-0-7-ubuntu systemd[1]: Starting The Apache HTTP Server... Oct 12 10:04:59 VM-0-7-ubuntu apachectl[121231]: (98)Address already in use: AH00072: make_sock: could not bind to address  | 
3.修改Apache2端口
1
 | 
vim /etc/apache2/ports.conf
 | 
修改为如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
# If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default.conf Listen 8081 <IfModule ssl_module> Listen 444 </IfModule> <IfModule mod_gnutls.c> Listen 444 </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet  | 
同时也要修改 VirtualHost 配置文件中的端口:
1
 | 
vim /etc/apache2/sites-enabled/000-default.conf
 | 
修改端口:
1
 | 
<VirtualHost *:8081>
 | 
这个时候可以看一下有没有因为端口问题报错。
1 2  | 
systemctl restart apache2 systemctl status apache2  | 
返回正常:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  | 
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-10-12 10:13:47 CST; 7s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 124028 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 124032 (apache2) Tasks: 6 (limit: 8788) Memory: 10.3M CPU: 42ms CGroup: /system.slice/apache2.service ├─124032 /usr/sbin/apache2 -k start ├─124033 /usr/sbin/apache2 -k start ├─124034 /usr/sbin/apache2 -k start ├─124035 /usr/sbin/apache2 -k start ├─124036 /usr/sbin/apache2 -k start └─124037 /usr/sbin/apache2 -k start Oct 12 10:13:47 VM-0-7-ubuntu systemd[1]: Starting The Apache HTTP Server... Oct 12 10:13:47 VM-0-7-ubuntu systemd[1]: Started The Apache HTTP Server.  | 
4.为apache2启用php-fpm
1 2  | 
a2enmod proxy_fcgi setenvif a2enconf php8.2-fpm  | 
5.安装PHP模块
1
 | 
apt install php8.2-*
 | 
重启apache2
1
 | 
systemctl restart apache2
 | 
6.测试
到这边就可以试着用 IP:8081 进行访问了。
1
 | 
vim /var/www/html/index.php
 | 
输入:
1
 | 
 echo phpinfo();
 | 
保存退出。
编辑nginx的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | 
server { listen 80; index index.html index.htm index.nginx-debian.html index.php; server_name test.xxx.com; location / { proxy_pass_header Server; proxy_pass http://127.0.0.1:8081; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/test.xxx.com-access.log; error_log /var/log/nginx/test.xxx.com-error.log; }  | 
重启nginx
1
 | 
systemctl restart nginx
 | 
输入网址就能访问了。

总结
Nginx与Apache2各有优缺点,具体还是要看需求。我查了下资料,Apache2和Nginx共存使其各司其职,没有想象中的那么完美,有一篇文章的结论是 Nginx+PHP-FPM > Apache2+Nginx+PHP-FPM。以后有空验证一下吧。
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。



评论(0)