Saya tahu pertanyaan ini banyak ditanyakan, tetapi solusi yang saya lihat tidak berhasil untuk saya.
Saya hanya memiliki satu host virtual diaktifkan, dan saya mencoba untuk mengaktifkan akses ke folder yang tidak di bawah root dokumen
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /movies /home/username/Videos/Movies
<Directory /home/username/Videos/Movies/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Saya menetapkan /etc/apache2/envvars
sebagai berikut
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
Saya memastikan bahwa / home / nama pengguna / Video / dan sub foldernya dimiliki oleh username:public
, mengatur izin ke 777 (setelah 775 tidak berfungsi) dan memastikan bahwa pengguna www-data
milik grup public
.
Sekarang, ketika saya menelusuri http://localhost/movies
saya dapatkan
[Mon Apr 21 11:28:14.971844 2014] [core:error] [pid 1385:tid 140067725104896] (13)Permission denied: [client 127.0.0.1:46603] AH00035: access to /movies/ denied (filesystem path '/home/username/Videos') because search permissions are missing on a component of the path
Tetapi ketika saya mengatur /etc/apache2/envvars
untuk menjalankan Apache di bawah username
(nama pengguna saya sendiri) semuanya berfungsi dengan baik. Masalahnya terkait izin, tapi saya tidak melihat bagaimana dalam kasus saya; terutama ketika saya mengatur izin 777
. Ada ide?
Versi PS Ubuntu 14,04, Apache 2,4,7 dan saya tidak mengedit file konfigurasi lainnya.
sumber
/home
ACL Anda diaktifkan? (ada tanda "+" di akhir bit izin jika itu kasusnya (periksa denganls -l
))Jawaban:
Lakukan
chmod +x
pada dir pengguna Anda, dan restart apache. 755 izin harus berfungsi. Saya punya masalah dengan 644 .sumber
namei -m /home/youruser/public_html/yourfile.ext
atau mencoba people.apache.org/~igalic/hacks/parsepath/home/username
untuk mengaksesnya dengan cepat.Jika dalam kasus selinux menjadi masalah, bukan hanya menonaktifkannya, halaman ini dan halaman ini memberikan perintah untuk memberikan akses:
sumber
~/public_html/
bagian dengan direktori root dari konten yang saya coba layani.chcon -R -t httpd_sys_content_t /var/www/html/phpmyadmin/
(dalam situasi saya)Anda mungkin mengaktifkan selinux. Mencoba
Jika itu menunjukkan "Menegakkan", coba
dan coba jika ini memperbaiki masalah Anda.
sumber
Saya mengalami masalah yang sama, setelah berjam-jam mencoba, saya menemukan solusi yang tepat memecahkan masalah:
https://wiki.apache.org/httpd/13PermissionDenied
Pada dasarnya, server Apache tidak hanya memerlukan izin baca dari semua file yang dilayaninya, tetapi izin eksekusi semua direktori di jalur virtual host Anda.
Namei utilitas dapat digunakan untuk membantu menemukan masalah izin dengan mendaftar izin di sepanjang setiap komponen jalan:
Dalam kasus saya, direktori di jalur saya memiliki izin 700, itu menyebabkan masalah. Setelah mengubahnya menjadi 701, masalah terpecahkan.
sumber
Saya mengalami masalah ini ketika saya mencoba menjalankan apache dalam wadah buruh pelabuhan pada host Ubuntu 16.04 yang menggunakan kernel 4.4 bukannya 4.10.
Setelah saya menjalankan perintah ini pada host dan digunakan kembali, saya baik-baik saja:
sumber
chmod
atauchown
di dalam wadah, dan itu menekan kesalahan Apache 403 untuk sementara waktu, hanya untuk mengembalikan beberapa waktu kemudian. Tidak ada wadah intervening restart atau perubahan substantif lainnya yang bisa menjadi penyebabnya, sejauh yang saya tahu. Karena saya benar-benar menjalankan 16.04, saya mencoba menginstal biner ini, dan 403-an saya ditahan untuk saat ini. Saya akan terus mengawasi, dan terima kasih!