【发布时间】:2019-05-29 22:14:30
【问题描述】:
我正在尝试将 Nginx 设置为 Apache 的反向代理,据我所知,它允许 nginx 提供静态内容,而 Apache 处理后端 PHP 内容,但我似乎无法让 Apache 呈现。
我在 CentOS7 上,我只使用yum install nginx 安装了 nginx,然后我通过执行以下操作安装了 PHP7.2;
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php72
yum install php72 php72-php-fpm php72-php-mysqlnd php72-php-opcache php72-php-xml php72-php-xmlrpc php72-php-gd php72-php-mbstring php72-php-json
运行php72 -v 给了我
PHP 7.2.13 (cli) (built: Dec 8 2018 10:59:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.13, Copyright (c) 1999-2018, by Zend
Technologies
然后我跑了
ln -s /usr/bin/php72 /usr/bin/php
当 yum 将命令安装为php72
我编辑了 nginx.conf 并将用户从 nginx 更改为 apache 并将服务器块更改为;
server {
listen 80 default;
server_name 108.xxx.xxx.xxx;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /var/www/html;
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
我还添加了 /etc/nginx/conf.d/proxy.conf 以下内容;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
然后我通过yum install httpd 安装了 Apache2。
然后我编辑了 Apache2 httpd.conf 文件;
- Listen 80
+ Listen 127.0.0.1:8080
我还编辑了 /etc/opt/remi/php72/php-fpm.d/www.conf 并将用户和组更改为 apache 以及
listen = /var/run/php-fpm.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
这些是我所做的唯一更改。
我向/var/www/html 添加了两个文件,index.html 和 index.php ... index.html 运行良好,当我检查 browserspy 时,它说它正在由 Nginx 提供服务,非常好。但是当我运行 index.php 文件时,它会显示实际的 php 代码并且不会呈现它。
我以前从未真正使用过 Apache2,所以我不确定如何查找错误。当我在 Apache2 模块目录中查找时,我找不到任何 PHP 模块
ls -lah /etc/httpd/modules/ | grep php
什么都不返回。
任何帮助都会非常有用,我这几天一直在寻找解决方案。
谢谢
【问题讨论】:
标签: php apache nginx centos centos7