Bagaimana kita tahu bahwa direktori dapat ditulis apache?

21

Saya telah diberitahu bahwa saya harus membuat folder gambar dan folder aset, dan bahwa saya perlu memastikan bahwa: "mereka dapat ditulis apache". Saya juga telah diberitahu untuk membuat direktori app / runtime web-dapat ditulis. Apakah ini sama dengan apache yang dapat ditulis? Jika begitu:

Bagaimana saya bisa melakukannya sekaligus, atau tahu itu?

Melakukan sesuatu, ls -lsaya mendapatkan sesuatu seperti:

drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets
MEM
sumber

Jawaban:

24

Apache, adalah program yang berjalan di latar belakang. Apache awalnya dimulai oleh pengguna root(juga disebut root-process). Ini root-processmeluncurkan beberapa proses anak yang menangani permintaan klien. Untuk alasan keamanan, proses anak tidak dijalankan oleh pengguna roottetapi sebagai pengguna dengan hak istimewa minimal. Biasanya pengguna ini bernama apacheatau www-data.

Untuk mengetahui pengguna ini untuk apache v1:

ps -ef | grep httpd | grep -v grep

atau untuk apache v2:

ps -ef | grep apache | grep -v grep

Hasil untuk apache 2 akan menjadi seperti ini:

root 5001 1 0 07:21? 00:00:00 / usr / sbin / apache2 -k mulai
www-data 5021 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k mulai
www-data 5022 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k mulai
www-data 5023 5001 0 07:21? 00:00:00 / usr / sbin / apache2 -k mulai

Dalam hal ini pengguna / grup adalah www-data

Jadi, untuk membuat direktori dapat ditulis oleh server web kita harus mengatur pemilik atau grup direktori ke pemilik atau grup Apache dan mengaktifkan izin menulis untuk itu. Biasanya, kami menetapkan direktori untuk menjadi milik kelompok Apache ( apacheatau `www-data atau apa pun yang digunakan pengguna untuk meluncurkan proses turunan) dan memungkinkan izin tulis untuk grup tersebut.

chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir

( www-dataadalah nama yang Anda temukan dengan psperintah di atas).

Mengenai:

2) Saya juga telah diberitahu untuk membuat direktori app / runtime web-dapat ditulis. Apakah ini sama dengan apache yang dapat ditulis?

Ya, ini adalah direktori yang harus Anda set agar dapat ditulis ke grup yang diharapkan oleh Apache. Mungkin ini akan berada di suatu tempat /var/www/atau diatur sebagai virtual host di /etc/apache2/sites-enabled/dan / atau/etc/apache2/sites-available

Rinzwind
sumber
Terima kasih banyak. Apakah ada cara untuk membuat direktori dengan mkdir dan pada saat yang sama, memberikan izin itu?
MEM
Benarkah kita juga bisa melakukan: chmod -R o + w / atau / path / di sini? (opsi -R menjadi jelas). ?
MEM
Ya 1 metode akan menjadi:mkdir dirname && chgrp www-data dirname
Rinzwind
@MEM ya. Rakan melakukan semua dir dari mana Anda mengeluarkan perintah. Ada banyak cara untuk melakukan ini;)
Rinzwind
2
ps -ef | grep [a]pacheadalah idiom umum untuk menghindari grepgaris palsu dalam output.
enzotib