Saya telah mengubah konfigurasi Apache untuk mengarah ke folder di direktori home saya:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/dbugger/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dbugger/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Saya bahkan telah memberikan /home/dbugger/html
izin kepada saya 777. Tetapi saya masih mendapatkan pesan kesalahan yang sama di http://localhost
: "403 Forbidden"
Apa yang saya lewatkan?
/home/dbugger
izin?Jawaban:
Ini berhasil untuk saya
Yang penting adalah berubah
untuk
sumber
Allow from all
dari apache 2.4 dan seterusnya - serverfault.com/questions/549517/…AllowOverride
untukAll
di direktori root Anda ceroboh di terbaik! Lihat httpd.apache.org/docs/2.4/mod/core.html#allowoverride untuk detailnya.Aktifkan
userdir
modul:Aktifkan eksekusi PHP di direktori pengguna:
(Atau jika menggunakan php7.0, misalnya)
Komentari bagian ini (letakkan
#
di awal setiap baris):Tekan Ctrl+ Xuntuk menyimpan
Aktifkan daftar direktori:
Tambahkan ini:
Tekan Ctrl+ Xuntuk menyimpan
Mulai ulang apache (
sudo
diperlukan di sini juga):Sekarang letakkan file php Anda di
/home/yourname/public_html
direktori dan bukahttp://localhost/~yourname
dari browser web Anda.sumber
Apache berjalan sebagai pengguna
www-data
. Jika tidak memiliki izin eksekusi di rumah Anda, apache tidak akan dapat membaca file apa pun.Ubah grup rumah Anda menjadi
www-data
:Dan berikan izin hanya untuk melintasi direktori home Anda:
Anda juga dapat membatasi izin
/home/dbugger/html
:sumber
/home/dbugger
menggunakan/home/dbugger/html
?/home/dbugger/html
daripada 777, tetapi Anda harus ingat bahwa jika pengguna www-data tidak dapatcd
ke rumah Anda, itu tidak akan dapat mengakses file atau subfolder apa pun. Jadi, jika izin rumah Anda adalahrwx------ dbugger:dbugger
apache tidak akan dapat mengakses file apa pun di dalam rumah Anda. Jika Anda tidak ingin membatasi akses sedikit Anda bisa mencoba memberikan hanya mengeksekusi izin (chmod g+x /home/dbugger
), saya tidak yakin, tapi saya pikir itu berfungsi.chgrp www-data /home/dbugger
dalam kombinasi dengan metode @DavidGreene membuatnya bekerja untuk sayasudo usermod -a -G dbugger www-data
, setelah itu Anda perlu memulai kembali apache.Anda tidak perlu mengubah izin jika Anda ingin menggunakan direktori home Anda untuk meng-host lingkungan pengembangan, setidaknya Anda perlu izin menulis untuk beberapa aplikasi. Anda memerlukan modul mod_userdir apache dan Anda dapat mengakses / home / user_name / public_html / * seperti ini http: //domain.local/~user_name/dir_name/ * untuk menggunakan host virtual, untuk menggunakan modul mod_userdir Anda perlu membuat sym tautan seperti ini:
sumber
a2enmod userdir