우분투 16.04 서버에서 PHP를 실행하기 위해 nginx를 얻을 수 없습니다


8

편집하다.
질문에 대한 답변이 이미 있습니다 : /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

nginx를 실행하는 서버를 설정 중이며 PHP 스크립트를 실행하려고합니다.

분명히 실행 PHP로 nginx를 얻는 방법에 가장 큰 기사는 이것이다 : https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- 우분투 -16-04

다른 방향이 노화됨에 따라 다음 논의가 끝납니다.
nginx에서 PHP를 활성화하는 가장 쉬운 방법은 무엇입니까?

나는 디지털 오션 웹 사이트의 지시에 따르지만 아무것도 변경되지 않지만 여전히 PHP를 실행할 수 없습니다.

나는 이것에서 꽤 길을 잃었고 어떤 도움이라도 감사 할 것입니다.

출력은 다음과 같습니다 sudo service nginx status.

nginx.service - A high performance web server and a reverse proxy server     
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-12-17 13:46:33 GMT; 55min ago
Process: 19056 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 19091 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s reload (code=exited, status=0/SUCCESS)    
Process: 19064 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 19059 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 19066 (nginx)
Tasks: 2
Memory: 4.6M

CPU: 406ms
CGroup: /system.slice/nginx.service
       ├─19066 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
       └─19094 nginx: worker process                           

Dec 17 13:46:33 websites systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 17 13:46:33 websites systemd[1]: Started A high performance web server and a reverse proxy server.
Dec 17 13:48:53 websites systemd[1]: Reloading A high performance web server and a reverse proxy server.
Dec 17 13:48:53 websites systemd[1]: Reloaded A high performance web server and a reverse proxy server.

출력은 다음과 같습니다 php -v.

PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by      Zend Technologies

그리고 여기 내가 사용중인 구성 파일이 있습니다.

/etc/nginx/conf.d/virtual_servers.conf있습니다.

server {
    listen 80; 
    server_name openage.org www.openage.org;
    #listen [::]:80 default_server ipv6only=on;

    #root /usr/share/nginx/html;
    root /etc/nginx/html/openage;
    index index.php index.html index.htm;

    #server_name localhost;

    location / { 
        try_files $uri $uri/ =404;
    }   

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }   

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php/php7-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }   

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/openage.org/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/openage.org/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

나는 이미:

  • php-fpm을 다시 시작했습니다.
  • nginx를 다시 시작했습니다.
  • ctrl-f5로 브라우저 캐시를 강제로 다시로드했습니다.
  • / var / log / error에서 오류를 확인했지만 PHP 파일을 실행할 때 오류가없는 것 같습니다. 그것은 nginx가 일반 파일처럼 처리하는 대신 PHP를 실행해야한다는 것을 깨닫지 못하는 것과 같습니다.

함수 만 포함 된 스크립트를 실행하려고합니다 phpinfo(). 그러나 PHP 정보를 제공하는 대신 브라우저가 파일을 다운로드하도록 제공합니다. /:


다음의 결과를 보여주십시오 : sudo service nginx status그리고php -v
MehrdadEP

나는 그것을 질문에 추가했다.
Hermann Ingjaldsson

1
PHP를 어떻게 구성 했습니까? 설정 편집 내용을 php 및 nginx에 게시하십시오. php-fpm과 nginx를 다시 시작하고 브라우저 캐시를 지우고 nginx 로그에서 오류를 찾으십시오. 더 많은 정보가 필요합니다.
Panther

오류 메시지가 무엇인가요?
George Udosen

@HermannIngjaldsson 귀하의 nginx 상태가 올바르게 보입니다. 오류는 정확히 무엇입니까?
MehrdadEP

답변:


2

terminal다음 명령을 열고 실행하십시오.

gksu gedit /etc/nginx/sites-available/default

nginx구성 파일 이 열립니다 . 다음 텍스트를 사용하여 편집하십시오.

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php7-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

파일을 저장 한 후 다음 명령을 실행하여 nginx를 다시 시작하십시오.

sudo service nginx restart

이 텍스트를 구성 파일에 넣고 nginx를 다시 시작했는데 문제가 지속됩니다. / :
Hermann Ingjaldsson

파일의 버전을 확인하고 nginx conf에서 편집하려면이 위치를 확인하십시오./var/run/php7-fpm.sock
MehrdadEP

이 폴더에 PHP 테스트 파일을 배치하셨습니까? /usr/share/nginx/html
MehrdadEP

/var/run/php7-fpm.sock은 없지만 /var/run/php/php7.0-fpm.sock이 있습니다. 소켓이며 내용을 보는 방법을 모르겠습니다. 당신이 실제로 요구하는 것을 이해하지 못합니다.
Hermann Ingjaldsson

/ usr / share / nginx / html에 nginx welcome html이 있습니다.
Hermann Ingjaldsson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.