Akses ditolak nginx php fpm

Jika Anda mencoba untuk mendapatkan file dengan a. html diuraikan sebagai PHP dengan Nginx + php-fpm, Anda mungkin mendapatkan kesalahan "akses ditolak" di browser Anda, dan pesan kesalahan "Akses ke skrip '...' telah ditolak (lihat keamanan. limit_extensions)” di log kesalahan Nginx Anda. Posting ini menunjukkan cara mengizinkan file html berhasil diuraikan sebagai PHP dengan Nginx + php-fpm

Blok konfigurasi Nginx

Blok konfigurasi Nginx Anda akan terlihat seperti ini untuk mengurai file HTM sebagai PHP

server {
  .. configuration options ...
  location ~ .html$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param	QUERY_STRING		$query_string;
    fastcgi_param	REQUEST_METHOD		$request_method;
    fastcgi_param	CONTENT_TYPE		$content_type;
    fastcgi_param	CONTENT_LENGTH		$content_length;
    .. etc etc ...
  }
}

Pesan eror

Namun ketika Anda mengakses e. g. beberapa file. html Anda mendapatkan "Akses ditolak" di browser

Anda memeriksa log kesalahan Nginx dan melihat ini

2015/04/25 07. 38. 28 [kesalahan] 5942#0. *108814 FastCGI dikirim dalam stderr. “Akses ke skrip '/path/to/somefile. html' telah ditolak (lihat security. limit_extensions)” saat membaca tajuk respons dari upstream, klien. 192. 168. 1. 54, pelayan. www. contoh. com, permintaan. “DAPATKAN / HTTP/1. 1”, hulu. “fastcgi. //unix. /var/run/php5-fpm. kaus kaki. ", tuan rumah. “www. contoh. com”

Perbaikan yang diperlukan disarankan dalam pesan kesalahan. “lihat keamanan. batas_ekstensi”

Atur keamanan. batas_ekstensi

Pada Debian 7 Wheezy, file konfigurasi untuk mengedit pengaturan ini ada di /etc/php5/fpm/pool. d/www. conf;

Kemudian mencari keamanan. batas_ekstensi. Seharusnya terlihat seperti ini di file secara default

; Limits the extensions of the main script FPM will allow to parse. This can
; prevent configuration mistakes on the web server side. You should only limit
; FPM to .php extensions to prevent malicious users to use other extensions to
; exectute php code.
; Note: set an empty value to allow all extensions.
; Default Value: .php
;security.limit_extensions = .php .php3 .php4 .php5
_

Jika keamanan. limit_extensions sudah disetel, lalu tambahkan. html untuk itu; . g

security.limit_extensions = .php .html

Apakah aman melakukan ini?

Saat mengaktifkan ini sendiri, pikiran pertama saya adalah "Apakah ini aman" dan "Bisakah file HTML biasa tiba-tiba diuraikan sebagai PHP" dan kemudian jelas "Apakah ini akan menyebabkan masalah keamanan dengan blog WordPress mana pun yang terpasang di server saya?"

Sejauh yang saya tahu, seharusnya tidak menimbulkan masalah, karena Anda masih harus mengizinkan. html untuk diurai melalui php-fpm di konfigurasi Nginx. Jika Anda belum melakukannya, maka mereka tidak akan melakukannya

Saya telah menghabiskan beberapa jam untuk masalah itu dan meskipun banyak posting yang terkait dengannya, saya tidak dapat menyelesaikannya. Saya memiliki kotak Fedora 20 dengan Nginx + PHP-FPM yang berfungsi cukup baik hingga hari ini (setelah saya memuat ulang php-fpm. layanan saya kira). Nginx melayani file statis tanpa masalah, tetapi file PHP apa pun memicu kesalahan 403

Izinnya ok, nginx dan php-fpm berjalan di bawah pengguna "nginx"

root     13763  0.0  0.6 490428 24924 ?        Ss   15:47   0:00 php-fpm: master process (/etc/php-fpm.conf)
nginx    13764  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13765  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13766  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13767  0.0  0.1 490428  7296 ?        S    15:47   0:00 php-fpm: pool www
nginx    13768  0.0  0.1 490428  6848 ?        S    15:47   0:00 php-fpm: pool www

File yang disajikan telah disetel ke pengguna nginx juga, saya bahkan mengakhiri chmoding 777 file-file itu untuk dicoba, tetapi masih "Akses ditolak" untuk file PHP apa pun

Apakah Anda melihat php-fpm. kesalahan sock failed (13 izin ditolak) di log server web?

Seringkali izin yang buruk atau tidak tersedianya penangan PHP-FPM menyebabkan kesalahan situs web ini

Dengan demikian web server tidak akan dapat berkomunikasi dengan PHP FastCGI Process Manager atau FPM

Di Bobcares, kami menyelesaikan kesalahan PHP-FPM sebagai bagian dari Layanan Manajemen Server kami

Hari ini, kita akan melihat bagaimana kita menyelesaikan php-fpm. sock failed dan buat situs web berfungsi

Di mana kita melihat php-fpm. kesalahan sock failed (13 izin ditolak)?

PHP FastCGI Process Manager (PHP-FPM) adalah cara populer untuk menangani halaman PHP. Ini memungkinkan situs web untuk menangani beban tinggi. Dan, ini bekerja sangat baik dengan situs web dengan lalu lintas tinggi juga

Biasanya, kesalahan kegagalan soket php-fpm muncul di log kesalahan server web sebagai

[crit] 4596#0: *138 connect() to unix:/tmp/php-fpm.sock failed (13: Permission denied) while connecting to upstream
_

Di halaman situs web, ini akan menghasilkan kesalahan seperti 502 Bad Gateway atau 503 Service Temporaryly Unavailable

Penyebab teratas untuk php-fpm. kesalahan sock failed (13 izin ditolak).

Secara umum, PHP-FPM memelihara sekumpulan kumpulan. Kumpulan ini adalah pekerja yang tersedia untuk menanggapi permintaan PHP. Mereka hanya akan menjalankan skrip PHP sesuai permintaan server web. Akhirnya, ia mengirimkan hasilnya kembali ke server web. Dengan demikian, mengaktifkan PHP-FPM untuk melayani konten akan lebih cepat dari metode biasa

Namun, ketika server web tidak dapat berkomunikasi dengan penangan FPM, hal itu akhirnya menyebabkan kesalahan situs web

Sekarang, mari kita lihat alasan utama kegagalan soket PHP FPM

Kesalahan izin

Salah satu alasan umum kegagalan FPM PHP adalah izin terkait. Ketika izinnya salah, server Apache atau Nginx tidak akan dapat terhubung ke daemon FPM

Baru-baru ini, ketika pelanggan memperbarui paket PHP di servernya, itu mengatur ulang izin file. Soket php-fpm dibuat dengan kepemilikan yang salah. Dengan demikian, Nginx tidak dapat terhubung ke soket php-fpm

Izin file soket yang benar harus 0660

Seringkali, daftar kontrol akses yang diperluas juga membatasi akses ke direktori tempat soket berada. Dengan demikian, itu membuat php-fpm tidak dapat diakses oleh pengguna web

Layanan PHP-FPM gagal

Demikian pula, kegagalan dalam layanan PHP FPM juga dapat menyebabkan php-fpm. kesalahan sock failed (13 izin ditolak).

Di server cPanel, status gagal dari status cpanel_php_fpm muncul sebagai

php-fpm sock failed 13 permission denied

Ini bisa terkait dengan konfigurasi php-fpm yang salah atau pengaturan server yang salah. Demikian pula, memori server yang tidak mencukupi juga dapat mencegah start-up php-fpm

Bagaimana kami memperbaiki php-fpm. kesalahan sock failed (13 izin ditolak).

Selanjutnya, mari kita lihat bagaimana Teknisi Dukungan kami memperbaiki kesalahan soket PHP FPM dan membuat situs web berfungsi

Status PHP-FPM

Kami mulai dengan memeriksa status status FPM. Di server cPanel, kami memeriksanya dengan menggunakan perintah

service cpanel_php_fpm status

Jika tidak berjalan, kami cukup memulai ulang

/scripts/restartsrv_cpanel_php_fpm --stop
/scripts/restartsrv_cpanel_php_fpm --start
_

Selanjutnya kita cek error log di /usr/local/cpanel/logs/php-fpm/error. catatan

Ini akan menampilkan semua jenis kesalahan konfigurasi. Kami memperbaiki kesalahan ini dan membuat fpm berjalan kembali. Di sini, kami juga memeriksa penggunaan memori server. Kemudian tambahkan lebih banyak memori jika ada kendala sumber daya

Memperbaiki izin soket

Untuk memperbaiki hak akses file soket di server Nginx, kami melakukan langkah-langkah berikut

Mengedit file /etc/php-fpm. d/www. conf file dan dikoreksi variabel-variabel ini

listen = /tmp/php7-fpm.sock
listen.owner = nginx
listen.group = nginx

Di sini, server web berjalan di bawah pengguna nginx. Jadi kami menetapkan pengguna php-fpm sebagai nginx itu sendiri. Kemudian, kami menyimpan file tersebut dan memulai ulang PHP FPM

sudo service php7-fpm restart
_

Ini memperbaiki izin pada file soket

[[email protected]:~]ls -ahl /tmp/php7-fpm.sock
srw-rw---- 1 nginx nginx 0 Apr 6 08:08 /tmp/php7-fpm.sock
_

Akhirnya, situs web mulai berfungsi kembali

[Butuh bantuan untuk memperbaiki kesalahan PHP FPM? . ]

Kesimpulan

Singkatnya, php-fpm. kesalahan sock failed (13 izin ditolak) terjadi karena konfigurasi PHP FPM yang salah atau kegagalan layanan. Hari ini, kami melihat bagaimana Insinyur Dukungan kami memperbaiki izin soket dan membuat situs web berfungsi