ไม่สามารถรับ nginx เพื่อรัน php บนเซิร์ฟเวอร์ ubuntu 16.04


8

แก้ไข
คำถามได้รับคำตอบแล้วที่นี่: /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

ฉันกำลังตั้งค่าเซิร์ฟเวอร์ที่ใช้งาน nginx และฉันพยายามเรียกใช้งานสคริปต์ php

เห็นได้ชัดว่าบทความที่ยิ่งใหญ่ที่สุดเกี่ยวกับวิธีการรับ nginx ในการเรียกใช้ php คือ: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- อูบุนตู-16-04

การสนทนาต่อไปนี้จะจบลงเมื่อมีทิศทางอื่น ๆ แก่ลง
วิธีที่ง่ายที่สุดในการเปิดใช้งาน PHP บน nginx คืออะไร?

ฉันไปตามทิศทางบนเว็บไซต์มหาสมุทรดิจิตอล แต่ไม่มีอะไรเปลี่ยนแปลงฉันยังคงไม่สามารถใช้ 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 บันทึกข้อผิดพลาดสคริปต์ php อะไร ????? เราต้องการข้อมูลเพิ่มเติม
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

มี nginx ยินดีต้อนรับ html ใน / usr / share / nginx / html ใช่
Hermann Ingjaldsson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.