Bagaimana untuk memberi kebenaran menulis PHP ke direktori?
P粉512363233
P粉512363233 2023-08-27 15:25:11
0
2
479

Saya cuba mencipta fail menggunakan PHP tetapi ia tidak berfungsi. Saya mengandaikan ini kerana ia tidak mempunyai akses tulis (pernah menjadi masalah ini sebelum ini). Saya cuba menguji sama ada ini adalah masalah oleh chmod 0777 folder, tetapi ini akhirnya menyebabkan setiap skrip dalam direktori itu mengembalikan mesej ralat 500 sehingga saya menukarnya kembali. Bagaimanakah saya boleh memberikan akses tulis PHP kepada sistem fail saya supaya ia boleh mencipta fail?

EDIT: Ia dihoskan pada pengehosan kongsi Hostgator menggunakan Apache.

Edit 2: Seseorang bertanya tentang kod: Kod tersebut ialah skrip imej GD. Saya tahu selebihnya berfungsi seperti sebelum ini apabila saya mencipta imej setiap kali saya memanggilnya. Sekarang saya cuba menciptanya apabila menambah teks baharu dan menyimpannya ke dalam folder. Garis tulis saya ialah: imagejpeg(null,$file,85);

Saya juga mencipta fail ujian untuk menyemak sama ada ia hanya skrip yang rosak (kebanyakannya disalin daripada tizag): http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (Saya tidak tahu sama ada/bagaimana untuk menghantar kod di sini dengan betul. Ini adalah kandungan skrip PHP, tolak tag PHP.) < /p>

Ia mengembalikan 13,13,1 (baris berasingan), jadi ia kelihatan seperti ia menulis sesuatu, tetapi testfile.txt kosong (saya memuat naik yang kosong), atau tidak wujud (jika saya memadamkan ia)).

Edit 3: Pelayan sedang menjalankan CentOS.

P粉512363233
P粉512363233

membalas semua (2)
P粉376738875

Penyelesaian tiga langkah mudah


Langkah 1: Kenal pasti Pengguna PHP

Buat fail PHP dengan kandungan berikut:

Muat naik ke pelayan web anda. Output sepatutnya menyerupai yang berikut:

www-data

Jadi, pengguna PHP adalahwww-data.


Langkah 2: Tentukan Pemilik Direktori

Seterusnya, semak butiran direktori web melalui baris arahan:

ls -dl /var/www/example.com/public_html/example-folder

Hasilnya sepatutnya kelihatan seperti berikut:

drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder

Oleh itu, pemilik direktori ini ialahexampleuser1.


Langkah 3: Tukar Pemilik Direktori kepada Pengguna PHP

Kemudian, tukar pemilik direktori web kepada pengguna PHP:

sudo chown -R www-data /var/www/example.com/public_html/example-folder

Sahkan bahawa pemilik direktori web telah berubah:

ls -dl /var/www/example.com/public_html/example-folder

Hasilnya sepatutnya kelihatan seperti berikut:

drwxrwxr-x 2 www-data exampleuser2 4096 Mar 29 16:34 example-folder

Pada ketika ini, pemilikexample-foldertelah berjaya ditukar kepada pengguna PHP:example-folder的所有者已成功更改为 PHP 用户:www-data.


Selesai! PHP kini sepatutnya boleh menulis ke direktori.

    P粉352408038

    Cara mudah ialah membenarkan PHP mencipta direktori itu sendiri terlebih dahulu.

    
              

    Ini menjimatkan masalah anda dengan kebenaran.

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!