Tidak bisa mendapatkan nginx untuk menjalankan php di server ubuntu 16.04

8

Edit.
Pertanyaan sudah mendapat jawaban di sini: /server/889334/cant-get-nginx-to-run-php-on-ubuntu-16-04-server

Saya menyiapkan server yang menjalankan nginx dan saya mencoba membuatnya menjalankan skrip php.

Rupanya artikel terhebat tentang cara mendapatkan nginx untuk menjalankan php adalah artikel ini: https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in- ubuntu-16-04

Diskusi berikut berakhir karena arahan lainnya sudah tua.
Apa cara termudah untuk mengaktifkan PHP di nginx?

Saya mengikuti petunjuk di situs digital ocean tapi tidak ada perubahan, saya masih tidak bisa menjalankan php.

Saya sangat tersesat dalam hal ini dan bantuan apa pun akan dihargai.

Ini adalah output dari 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.

Ini adalah output dari 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

Dan inilah file konfigurasi yang saya gunakan.

Itu di /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
}

Aku sudah:

  • restart php-fpm.
  • restart nginx.
  • paksa memuat ulang cache browser dengan ctrl-f5.
  • checked / var / log / error untuk kesalahan tetapi ternyata tidak ada kesalahan ketika saya menjalankan file php. Sepertinya nginx tidak menyadari bahwa seharusnya menjalankan php alih-alih memperlakukannya seperti file biasa.

Saya mencoba menjalankan skrip yang hanya berisi fungsi phpinfo(). Tapi alih-alih memberi saya info php, browser hanya menawarkan saya untuk mengunduh file. /:

Hermann Ingjaldsson
sumber
tunjukkan hasil dari: sudo service nginx statusdanphp -v
MehrdadEP
Saya menambahkannya ke pertanyaan.
Hermann Ingjaldsson
1
Bagaimana Anda mengkonfigurasi php? Poskan suntingan Anda ke php dan nginx. restart php-fpm dan nginx, kosongkan cache browser Anda, lihatlah Anda nginx log untuk kesalahan, script php apa ????? Kami memerlukan informasi lebih lanjut.
Panther
apa pesan kesalahan yang Anda dapatkan?
George Udosen
@HermannIngjaldsson status nginx Anda terlihat baik-baik saja, apa kesalahannya sebenarnya?
MehrdadEP

Jawaban:

2

Buka terminaldan jalankan perintah berikut:

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

ini akan membuka nginxfile konfigurasi Anda . edit dengan teks berikut:

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;
    }
}

setelah menyimpan file jalankan perintah berikut untuk me-restart nginx:

sudo service nginx restart
MehrdadEP
sumber
Saya menempatkan teks ini ke file konfigurasi, restart nginx dan masalahnya masih ada. /:
Hermann Ingjaldsson
periksa lokasi ini untuk melihat versi file Anda dan edit dalam nginx conf:/var/run/php7-fpm.sock
MehrdadEP
apakah Anda menempatkan file uji php di folder ini? /usr/share/nginx/html
MehrdadEP
Tidak ada /var/run/php7-fpm.sock tetapi ada /var/run/php/php7.0-fpm.sock. Soket dan saya tidak yakin bagaimana melihat konten itu. Saya tidak begitu mengerti apa yang sebenarnya Anda minta.
Hermann Ingjaldsson
Ada html selamat datang nginx di / usr / share / nginx / html ya.
Hermann Ingjaldsson