Я пытаюсь настроить Nginx в качестве обратного прокси-сервера для Apache, из того, что я прочитал, он позволяет nginx обслуживать статический контент, а Apache обрабатывает бэкенд PHP, но я не могу заставить Apache отображать.
Я на CentOS7, я установил nginx, просто используя yum install 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 и изменил блок сервераto;
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;
Затем я установил Apache2 через yum install httpd
.
Затем я отредактировал файл httpd.conf Apache2;
- 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
Это единственные изменения, которые я сделал.
Я добавил 2 файла в /var/www/html
, index.html и index.php ...Index.html отлично работает, и когда я проверяю с browserspy, он говорит, что он обслуживается Nginx, отлично.Но когда я запускаю файл index.php, он отображает реальный код php и не отображает его.
Я никогда прежде не работал с Apache2, поэтому я не уверен, как искать ошибку.Когда я вхожу в каталог модулей Apache2, я не могу найти какие-либо модули PHP
ls -lah /etc/httpd/modules/ | grep php
вообще ничего не возвращает.
Любая помощь будет очень полезной, я искал решение длядней.
Спасибо