Saya ingin membuat folder selalu dapat ditulis oleh PHP.
Saya mengubah izin folder sementara untuk 777, tetapi konten folder diunggah oleh pengguna ftp, jadi setiap kali saya jalankan kembali skrip saya mendapatkan ini:
Warning: file_get_contents(/var/www/html/.../file.txt): failed to open stream: Permission denied in /var/www/html/.../autoimport.php on line 25
Hal yang sama terjadi pada saya dalam skrip ini, di mana saya menunjukkan konten error.log. Saya mengubahnya ke 777 tetapi ketika itu dihasilkan kembali saya kehilangan akses lagi.
Warning: fopen(/var/log/apache2/error.log): failed to open stream: Permission denied in /var/www/html/admin/errorlog.php on line 48
Could not get lines from file - /var/log/apache2/error.log
ubuntu
apache-http-server
php
ubuntu-server
pengguna1532587
sumber
sumber
/var/log/apache2/error.log
?Jawaban:
Cara saya biasanya melakukan ini dalam pengaturan server saya adalah membuat grup untuk situs web, kemudian menggunakan kombinasi setgid dan umask untuk memastikan bahwa file tetap dapat ditulisi oleh aplikasi yang saya inginkan. Panduan langkah demi langkah di bawah ini:
1 / Buat grup baru untuk situs web Anda:
2 / Tambahkan pengguna yang dijalankan server web ke grup:
3 / chown direktori dan file yang Anda inginkan server memiliki akses ke:
4 / Tetapkan bit gid dan izin lainnya pada direktori tersebut:
5 / Atur umask program ftp Anda ke
002
. Ini akan tergantung pada klien ftp dan server Anda, cari di sekitar untuk mencari tahu bagaimana melakukan ini untuk pengaturan khusus Anda.6 / Mulai ulang server web Anda untuk mengambil izin grup baru:
Yang menarik di sini adalah
setgid
bit pada direktori tersebut akan menyebabkan file baru yang dibuat di direktori memiliki grup yang sama secara default. Ini berarti Anda tidak memerlukan777
izin — yang berarti Anda memiliki lebih banyak keamanan serta sistem yang harus terus bekerja.Bagian
umask
itu juga penting. File baru akan memiliki bit izin diumask
dilucuti, jadi jika Andaumask
adalah022
, file baru tidak akan kelompok ditulis, dan hal-hal tidak akan bekerja dengan baik.Saya telah menggunakan pengaturan ini dengan sangat sukses selama beberapa tahun sekarang.
sumber