Jawaban:
Saya sendiri akan menambahkan pengguna ke www-datagrup 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 -guntuk 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.confdan memuat ulang Apache ( sudo /etc/init.d/apache2 reload).
apache2.conftidak 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.confmencari ${APACHE_RUN_USER}dan ${APACHE_RUN_GROUP}. Tidak www-datasecara langsung.
buat grup pengguna baru webdevdan tambahkan www-datapengguna 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-datagrup, khususnya karena kita berbicara tentang lingkungan pengembangan?