Konfigurasi CentOS Apache HTTPD (403 Dilarang)

8

Inilah yang saya miliki di httpd.conf saya

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mcmoddr.com
        ServerAlias www.mcmoddr.com
        DocumentRoot /home/mcmoddr/www/
        ErrorLog /mcmoddr/logs/error.log
        CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>

Ketika mengunjungi situs ini, saya mendapatkan 403 Forbidden error, File-file tersebut ditambahkan dengan vsftpd dan memiliki izin drwxr-xr-x

Patt-tom McDonnell
sumber

Jawaban:

12

Anda menggunakan instalasi stok CentOS, jika itu benar, periksa apakah SELinux dalam mode Penegakan

getenforce

jika hasilnya "Menegakkan"

ubah sementara untuk permisif

setenforce 0

dan coba lagi, Anda juga dapat memandu kondisi konten web ke file di direktori home Anda.

Freaktor
sumber
Ini berhasil dalam kasus saya. Tetapi jika saya kemudian memperkuat lagi (dengan setenforce 1 ) kesalahan 403 tidak muncul lagi, meskipun konfigurasinya sama seperti sebelumnya, ketika digunakan untuk muncul.
damix911
ini tidak lebih dari hack kotor. Ini tentu bukan cara yang tepat untuk menonaktifkan fitur keamanan. Anda harus mengonfigurasinya.
The Fool
9

Nonaktifkan SELinux atau jalankan di ROOT

setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/
IgoRRius
sumber
5

Jawaban Freaktor untuk 'setenforce 0' berhasil "bekerja" untuk saya (terima kasih!)

Tetapi agar tetap berfungsi dan mengaktifkan kembali SELinux, saya harus melakukannya

sudo chcon -Rv --type=httpd_t /path/to/my/files

... ini memberikan direktori saya dan semua file dan direktori di dalamnya konteks keamanan "httpd_t" yang merupakan cara kikuk mengatakan SELinux membiarkan httpd membaca file-file itu.

mengaktifkan selinux lagi sesederhana

setenforce 1
jg3
sumber
2
Ini hanya sementara; setiap file baru yang Anda buat akan memiliki konteks aslinya dan SELinux akan tetap menolak akses ke file baru. Untuk solusi permanen, lihat jawaban ini .
Michael Hampton
3

Anda mungkin memiliki tolak semua tempat di konfigurasi global. Coba tambahkan ini ke vhost stanza:

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>
Alex Howansky
sumber
1, Juga @ Spero78 harus membuat berkas memastikan tidak ada .htaccess di root vhost Anda dengan arahan membatasi
0

Anda harus menggunakan <Directory>wadah seperti yang disebutkan di atas.

Dan kemudian Anda perlu memeriksa dari DocumentRootjalur Anda , Setiap direktori harus memiliki izin baca sehingga apache pengguna layanan dapat mengakses.

Anda dapat memeriksa menggunakan ls -ld

pengguna533968
sumber
-1

Silakan tambahkan baris di bawah ini dalam kode Anda yang ada.

restorecon -r /home/mcmoddr/www/

Itu harus memperbaiki masalah Anda.

Niranjay singh
sumber