Setiap «izin ditolak» punya satu jawaban yang benar dan satu yang berbahaya. Yang berbahaya adalah 777: ia selalu berhasil, dan artinya proses apa pun di server itu bisa menulis ulang kode Anda.
Apa arti ketiga angka itu
Pemilik, kelompok, dan semua orang lain. Membaca bernilai 4, menulis 2, menjalankan 1, dan semuanya dijumlahkan: 6 berarti membaca dan menulis, 7 berarti ketiganya.
- 644 pada sebuah berkas — pemiliknya menulis, semua orang membaca.
- 755 pada sebuah direktori — pemiliknya menulis, semua orang bisa masuk dan melihat isinya.
- 600 pada sebuah rahasia — pemiliknya, dan sama sekali tidak ada orang lain.
Apa yang dibutuhkan sebuah situs
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config.php
Direktori butuh bit jalankan agar bisa dimasuki; berkas sama sekali tidak membutuhkannya. Berkas PHP dengan 755 tidak menjadi lebih bisa dijalankan — server web membacanya, bukan menjalankannya sebagai program.
Bagian yang biasanya keliru adalah kepemilikannya
Galatnya sering bukan pada mode, melainkan pada pemiliknya. Kalau PHP berjalan sebagai satu pengguna sementara berkasnya milik pengguna lain, tak ada mode di bawah 777 yang akan menolong — dan perbaikan yang benar adalah pemiliknya.
ps aux | grep php-fpm | head -2
chown -R youruser:youruser /path/to/site
Hentikan unggahan dari dijalankan
location ~* /uploads/.*\.php$ {
deny all;
}