Saya memasang situs web dalam droplet (Digital Ocean). Saya memiliki masalah untuk menginstal NGINX dengan PHP dengan benar. Saya melakukan tutorial https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04 tetapi ketika saya mencoba menjalankan beberapa File .php hanya mengunduhnya ... misalnya ... http://5.101.99.123/info.php
itu berfungsi tetapi ... Jika saya pergi ke utama http://5.101.99.123
itu mengunduh index.php saya: /
Ada ide?
-rw-r--r-- 1 agitar_user www-data 418 Jul 31 18:27 index.php
-rw-r--r-- 1 agitar_user www-data 21 Aug 31 11:20 info.php
Saya / etc / nginx / sites-available / default
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/html;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name agitarycompartir.com;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location / {
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
... Lainnya "lokasi" dikomentari (#)
Jawaban:
Coba ini:
Edit
/etc/nginx/sites-available/default
Hapus komentar kedua saluran untuk membuat nginx mendengarkan pada port 80 IPv4 dan IPv6.
Biarkan
server_name
sendiriTambahkan
index.php
keindex
barisUncomment
location ~ \.php$ {}
Edit
/etc/php5/fpm/php.ini
dan pastikancgi.fix_pathinfo
diatur ke0
Mulai ulang nginx dan php5-fpm
sudo service nginx restart && sudo service php5-fpm restart
Saya baru saja mulai menggunakan Linux seminggu yang lalu, jadi saya sangat berharap dapat membantu Anda dalam hal ini. Saya menggunakan editor teks nano untuk mengedit file. jalankan apt-get install nano jika Anda tidak memilikinya. Google di atasnya untuk tahu lebih banyak.
sumber
service nginx restart && service php5-fpm restart
nginx -s reload
unix:/var/run/php5-fpm.sock;
konversi keunix:/var/run/php/php7.2-fpm.sock;
(satu lagi bersarang/php
)Anda perlu menambahkan ini ke / etc / nginx / sites-enabled / default untuk mengeksekusi file php di Nginx Server:
sumber
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
php7.0-fpm.pid
dan tidakphp7.0-fpm.sock
dalam/var/run/php/
arti apa?sudo service php7.0-fpm restart
. jika kaus kaki hilang itu menunjukkan bahwa proses php sedang dijalankan./etc/nginx/conf.d/wordpress_https.conf
Saya memiliki masalah serupa yang diselesaikan dengan mengosongkan cache browser (juga berfungsi dengan baik dengan browser yang berbeda).
sumber
Perbarui nginx config / etc / nginx / sites-available / default atau file config Anda
jika Anda menggunakan php7 gunakan ini
jika Anda menggunakan php5 gunakan ini
Kunjungi di sini untuk detail lengkap. Detail di sini
sumber
include snippets/fastcgi-php.conf;
?Saya melihat banyak solusi di atas dan banyak yang bekerja dengan benar untuk saya, tetapi saya tidak mengerti apa yang mereka lakukan dan khawatir hanya menyalin paste kode, khususnya, fastcgi . Jadi, inilah 2 sen saya,
Untuk beberapa, server seperti Apache, ada yang dibangun dalam dukungan untuk menafsirkan PHP dan dengan demikian tidak perlu untuk CGI.
Tautan samudra digital ini , menjelaskan langkah-langkah untuk menginstal FPM dengan cukup baik dan saya tidak menulis langkah-langkah yang diperlukan untuk menyelesaikan masalah file php yang diunduh alih-alih render karena jawaban lain IMHO cukup bagus.
sumber
Saya memiliki masalah yang sama dan tidak ada jawaban yang memecahkan masalah.
Saya berlari:
untuk menguji file konfigurasi di / etc / nginx / sites-available / default.
Itu memberi saya kesalahan ini:
Jadi saya pergi ke file konfigurasi dan pada baris terakhir ada
Saya membatalkan komentar, menjalankan perintah pengujian lagi dan itu berhasil
sumber
Ini berhasil bagi saya.
1) file MyApp
vi / etc / nginx / sites-available / myApp
Pengguna PHP5
Perubahan
untuk
2) Konfigurasikan cgi.fix_pathinfo
Setel cgi.fix_pathinfo ke 0
Lokasi:
PHP5 /etc/php5/fpm/php.ini
PHP7 /etc/php/7.0/fpm/php.ini
3) Mulai kembali layanan
FPM
php5
sudo service php5-fpm restart
php7
sudo service php7.0-fpm restart
NGINX
sumber
Bagi saya itu membantu menambahkan
?$query_string
di akhir /index.php, seperti di bawah ini:sumber
Jika salah satu jawaban yang diajukan tidak berfungsi, coba ini:
1. perbaiki www.conf di etc / php5 / fpm / pool.d:
listen = 127.0.0.1:9000;(delete all line contain listen= )
2. memperbaiki nginx.conf di usr / local / nginx / conf:
remove server block server{} (if exist) in block html{} because we use server{} in default (config file in etc/nginx/site-available) which was included in nginx.conf.
3. perbaiki file default di etc / nginx / site-available
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; }
4. mulai layanan nginx
5. mulai kembali layanan php
6. senang
Saya menggunakan Ubuntu 14.04
sumber
Jawaban di atas sepertinya terlalu banyak mengomentari solusi yang saya capai. Seperti inilah tampilan file saya:
/ etc / nginx / sites-available / default
Semoga ini bisa membantu beberapa orang yang frustrasi pada hari Minggu sore (c:
sumber
Cuplikan di atas berfungsi untuk saya jika menggunakan php7.2
sumber
Bagi siapa pun yang memiliki masalah yang sama dengan PHP 7, ini adalah apa yang saya lakukan untuk membuat nginx mengeksekusi file php dengan benar di CentOS 7, diposting di sini jadi jika ada orang yang memiliki masalah yang sama:
Ikuti langkah demi langkah dokumen ini di Digital Ocean .
Buka
/etc/nginx/conf.d/default.conf
(secara default saya tidak memiliki situs-diaktifkan atau situs-tersedia, Anda dapat mengeditnya).Edit
location
parameter seperti di bawah ini:default.conf :
Mulai kembali layanan Nginx dan PHP
sudo systemctl restart php-fpm
dansudo systemctl restart nginx
.Terakhir tetapi yang paling penting, hapus cache browser atau jalankan di
incognito (Chrome)
atauPrivate Browsing (Firefox)
dll ...Semoga coding ini bermanfaat dan bahagia
sumber
Solusi saya adalah menambahkan
ke file konfigurasi khusus saya, misalnya
etc/nginx/sites-available/example.com.conf
Menambahkan
/etc/nginx/sites-available/default
tidak berfungsi untuk saya.sumber
Saya kasus saya, saya tidak menggunakan
/etc/nginx/sites-available/default
saya menggunakan file konfigurasi blok server yang berbeda (misalnya example.com), dan satu-satunya cara saya dapat memperbaiki masalah ini adalah dengan menghapus file konfigurasi blok server default tautan simbolik:lalu muat ulang Nginx:
sumber
Saya memecahkan masalah saya sekarang dengan kode ini (ubah IP Anda):
sumber
Apa yang berhasil bagi saya dengan Ubuntu 16.04, dan php7 menghapus baris ini
fastcgi_split_path_info ^(.+\.php)(/.+)$;
Itu berhenti mengunduh file php setelah itu.
sumber
Batalkan komentar lokasi .php di / etc / nginx / sites-available / default
sumber
Jika ada hal lain yang tidak membantu Anda. Dan mungkin sebelumnya Anda menginstal apache2 dengan file tes info.php. Cukup hapus Data Aplikasi (cache, cookie) untuk localhost.
sumber
periksa ekstensi file konfigurasi nginx Anda adalah * .conf.
misalnya: /etc/nginx/conf.d/myfoo.conf
Saya mendapat situasi yang sama. Setelah saya mengubah nama file konfigurasi saya dari myfoo ke myfoo.conf, itu diperbaiki. Jangan lupa untuk me-restart nginx setelah mengganti nama itu.
sumber
Kemudian buka terminal dan jalankan perintah berikut:
Kemudian tambahkan kode berikut dalam
default
file:Jika ada ketidaksesuaian koreksi dan restart Nginx dari terminal dengan perintah berikut
Lalu buka browser dan Nikmati ...
sumber
Bagi saya itu adalah baris: fastcgi_pass unix: /var/run/php5-fpm.sock;
yang harus adil: fastcgi_pass unix: /run/php5-fpm.sock;
sumber
Saya akan menjadi mental mencoba untuk memperbaikinya, bagi saya masalahnya adalah Cloudflare telah men-cache file php dan terus membuat saya mengunduhnya.
Perbaikan untuk saya adalah membersihkan cache di Cloudflare.
sumber
Saya telah mengalami masalah yang sama yang memecahkannya adalah blok server ini juga memiliki blok ini di atas blok lokasi lain jika Anda memiliki css tidak memuat masalah. Yang saya tambahkan ke file conf situs-tersedia.
sumber
Jadi inilah yang akhirnya berhasil dalam kasus saya sebagai aturan penulisan ulang di mana pelakunya
saya mengubah aturan penulisan ulang nginx sebagai berikut ..
menjadi...
Tampaknya tanpa kata kunci terakhir , permintaan tersebut tidak dapat dimulai ulang, sehingga tidak pernah menyentuh
.php
segmen lokasi, dan hanya ditafsirkan sebagai unduhan -sumber
sebagai catatan, saya menemukan bahwa php-fpm saya tidak berjalan dan saya memperbaikinya
service php7.2-fpm stop
sumber
Satu hal lagi yang perlu diperiksa: jika Anda telah mengatur akses HTTPS sebelum mengatur PHP - Saya menggunakan certbot - Anda harus membuat perubahan di / etc / nginx / sites-available / default dua kali karena akan ada dua blok server (satu mendengarkan pada port 80 dan satu mendengarkan pada port 443).
(Saya sedang menyiapkan server ini terutama untuk email dan tidak menggunakan PHP ketika saya pertama kali menginstal nginx hanya sebagai cara untuk menjalankan certbot lebih mudah.)
sumber