Jawaban:
Saya sendiri akan menambahkan pengguna ke www-data
grup dengan ...
sudo adduser {username} www-data
Sederhana dan efektif. Tidak main-main dengan file konfigurasi atau izin.
Edit file berikut sebagai root: / etc / apache2 / envvars
menggunakan perintah:
sudo nano /etc/apache2/envvars
ubah pengguna dan grup menjadi diri sendiri jika hanya ada satu pengguna dan Anda tidak akan pernah memiliki masalah izin lagi.
IE, jika Anda hanya masuk dan menjalankan server sebagai pengguna 'big_dog':
export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog
Heck, dalam hal ini Anda dapat mengubah pengguna itu menjadi pengguna saat ini saya yakin. Kemudian, instal user_dir Anda semua memiliki web saja Anda dapat memiliki kontrol penuh (kecuali Anda memodifikasi ini).
Mulai ulang server (jika tidak yakin, cukup reboot atau goole) dan Anda siap melakukannya.
sudo chown big_dog.big_dog /var/lock/apache2
sudo chown big_dog.big_dog -R /var/log/apache2
/etc/apache2/uid.conf
export APACHE_RUN_USER=#$(id -u)
memberikan id pengguna dan juga digunakan id -g
untuk grup dalam skrip dan pada akhirnya saya memanggil apache untuk dijalankan.
mengapa Anda melakukan ini ,, Saya berjuang dengan masalah perm di masa lalu, tapi ini adalah proses dev saya mulai hari ini:
sudo apt-get install lamp-server^
proc standar untuk menyalakan lampubuat tautan sym ke dir home saya di mana proyek seperti ini:
ln -s /home/user/html /var/www/html
buat tautan sym ke file konfigurasi hosts
ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default
itu dia :)
Ini berfungsi seperti yang diharapkan, tidak ada masalah dengan perms pengguna atau sesuatu yang mirip dengan server apache ,, untuk mysql saya punya sedikit proses lagi ..
hth, tepuk tangan
Menghindari masalah "harus Anda lakukan", Anda dapat menemukan di mana pengguna untuk apache diatur dengan menjalankan:
grep www- /etc/apache2/apache2.conf
Ini kemudian kasus mengedit contoh-contoh di dalam /etc/apache2/apache2.conf
dan memuat ulang Apache ( sudo /etc/init.d/apache2 reload
).
apache2.conf
tidak mengandung www-
untuk saya
grep -HR "www-" /etc/apache2/
. Jika Anda sudah tahu itu di apache2.conf maka cukup edit file itu. Dalam kasus saya, itu tidak ada di sana, tetapi di / etc / apache2 / envvars sebagai jawaban Eric menunjukkan.
apache.conf
mencari ${APACHE_RUN_USER}
dan ${APACHE_RUN_GROUP}
. Tidak www-data
secara langsung.
buat grup pengguna baru webdev
dan tambahkan www-data
pengguna ke dalamnya.
sudo addgroup webdev
sudo adduser www-data webdev
Lalu, lanjutkan dan tambahkan pengguna Anda ke grup itu dan jadikan itu grup default untuk pengguna Anda.
sudo adduser {your-user} webdev
sudo addgroup webdev
Hal terakhir yang harus dilakukan adalah memastikan, grup webdev memiliki hak rwx pada file
sudo chmod 775 -R /path/to/project
Sekarang satu-satunya hal yang dapat terjadi adalah bahwa untuk misalnya www-data membuat file log baru dan Anda tidak dapat menjalankannya.
www-data
grup, khususnya karena kita berbicara tentang lingkungan pengembangan?