Rumah > Soal Jawab > teks badan
<?php
echo file_put_contents("/tmp/log.txt", "Hello world everyone.");
Kod ini sangat mudah dan ia menunjukkan kejayaan apabila dijalankan pada penyemak imbas dan baris arahan, seperti: 21
. Tetapi selepas pelayar dijalankan, /tmp/log.txt tidak wujud. Di bawah baris arahan, /tmp/log.txt telah berjaya dibuat (tiada masalah untuk ujian pengguna root dan apache). sangat keliru. . . . . . .
uname -r
: 3.10.0-514.2.2.el7.x86_64
Semuanya dipasang melalui yum install, yum install httpd php5
PHP中文网2017-05-16 13:05:18
Direktori /tmp sepatutnya mempunyai kebenaran maksimum. Adakah tiada masalah kebenaran? Buka mesej ralat dan lihat mesej ralat
phpcn_u15822017-05-16 13:05:18
Mula-mula, sahkan kebenaran folder untuk membenarkan penulisan dan kemudian
<?php
echo file_put_contents($_SERVER['DOCUMENT_ROOT']."/tmp/log.txt", "Hello world everyone.");
文件路径 如果不加 $_SERVER['DOCUMENT_ROOT'] 的话 要写成 "./tmp/log.txt" 这样 你在试试吧
巴扎黑2017-05-16 13:05:18
Soalan pengguna? Dianggarkan bahawa anda adalah pengguna akar di bawah baris arahan, jadi pelaksanaan boleh berjaya. Semak untuk melihat sama ada direktori web anda tergolong dalam kumpulan pengguna lain dan kumpulan pengguna ini tidak mempunyai kebenaran membaca dan menulis pada direktori temp.
给我你的怀抱2017-05-16 13:05:18
Ia sepatutnya menjadi isu kebenaran. Ia juga tidak selamat untuk PHP untuk mengendalikan direktori tmp, jadi ia pasti tidak dibenarkan secara lalai.
Kenapa dikatakan tidak selamat? Kerana jika anda boleh menulis, anda mesti boleh membaca (untuk PHP, pada dasarnya tidak ada situasi di mana anda hanya boleh menulis tetapi tidak membaca tanpa menetapkan kebenaran)... Dalam kes ini, penggodam boleh membaca banyak maklumat
巴扎黑2017-05-16 13:05:18
Ujian mudah dan kasar: chmod -R 777 /tmp
Kemudian lihat jika ia boleh ditulis.
習慣沉默2017-05-16 13:05:18
Pelayar berjalan / merujuk kepada direktori akar laman web / merujuk kepada direktori akar pelayan Sila semak sama ada terdapat fail /tmp/log.txt dalam direktori akar laman web