Saya menjalankan skrip PHP di server Apache saya dan dari skrip tersebut saya perlu menyalin beberapa file (untuk menjalankan skrip Bash yang menyalin file). Saya dapat menyalin ke direktori /tmp
tanpa masalah, tetapi ketika saya ingin menyalin ke /tmp/foo
maka saya mendapatkan kesalahan ini:
cp: cannot create regular file '/tmp/foo/file.txt': Permission denied
meskipun izin untuk direktori /tmp
dan /tmp/foo
diatur ke nilai yang sama.
Apakah Anda tahu apa masalahnya?
Direktori /tmp
memiliki semua ijin (baca/tulis) untuk semua user. tetapi jika anda membuat /tmp/foo
dengan akun anda sendiri, ijinnya hanya untuk anda! jika anda ingin membuatnya dapat ditulis oleh user lain (atau program) ubahlah ijinnya dengan perintah ini:
chmod 777 /tmp/foo
Jika Anda memiliki file lain di dalam direktori ini dari sebelumnya, tambahkan flag -R
ke perintah di atas.
Update:
Gunakan perintah ini untuk mengubah pemilik /tmp/foo
dari pemilik Anda sendiri menjadi pengguna default apache:
```sudo chown www-data:www-data /tmp/foo -R````
juga silakan periksa konfigurasi apache2 Anda untuk melihat pengguna mana yang dimiliki untuk menjalankan skrip php.