Centos 7 서버에서 Nginx를 Apache용 역방향 프록시로 만들려고 합니다.
지금까지 내가 한 일은 다음과 같습니다.
Nginx용 구성 파일을 만듭니다.나노 /etc/nginx/conf.d/default.conf
server {
listen 80;
root /usr/share/nginx/html/;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
2줄을 바꾸세요/etc/httpd/conf/httpd.conf:
Listen 127.0.0.1:8080
DocumentRoot "/usr/share/nginx/html/"
/usr/share/nginx/html에 info.php라는 파일을 만들어 넣어두었는데 <?php infophp();?>
페이지를 로딩하려고 하면http://My_Ip/info.php파일을 다운로드하라는 팝업이 나타나는 반면 파일이 실행되기를 원합니다.
이 명령을 전달했습니다.아파치 -M | grep내 Apache 웹 서버에 Php 모듈이 있는지 확인하기 위해 php를 실행하면 "php7_module(공유)"이 표시되므로 그럴 것 같습니다.
어떤 도움이라도 주시면 감사하겠습니다.
헨리
ps: 계속하면http://내_IP기본 Nginx 홈 페이지 p.s2가 표시됩니다. 질문하시는 분들을 위해 이미 serverfault(오류 403)에 관련 문제에 대해 게시했지만 더 이상 문제가 없는 것 같습니다.http://My_IP/any_css_file.css예를 들어 잘 표시되고 오류도 없습니다)
답변1
PHP 스크립트를 실행하려면 서버에서 PHP FPM 인스턴스를 실행해야 합니다. 실행하면 확인할 수 있다
find / -type d -iname *fpm*
결과가 일부 반환되면 이미 설치된 것입니다. 이제 수신 대기 중인 포트/소켓을 찾으려면 다음을 실행할 수 있습니다.
find / -type d -iname *fpm* | xargs grep -r "^listen[= ]"
그러면 다음과 같은 내용이 반환됩니다.
/etc/php/7.2/fpm/pool.d/www.conf:listen = /run/php/php7.2-fpm.sock
Nginx 구성 디렉터리(보통 /etc/nginx/
)에 이미 파일이 있을 수 있습니다 fastcgi_params
. 그렇지 않은 경우 파일을 만들고 예제를 복사하세요.여기
그런 다음 구성 파일을 포함하도록 PHP 위치 블록을 변경하고 다음과 같이 이전 명령에서 반환된 포트/소켓을 사용하여 요청을 php fpm에 전달합니다.
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
include fastcgi_params;
}
이제 Nginx를 다시 시작하면 작동합니다.