Konfigurasi CentOS Apache HTTPD (403 Dilarang)


8

Inilah yang saya miliki di httpd.conf saya

<VirtualHost *:80>
        ServerAdmin spero78@spero78.com
        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

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.


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/

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

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>

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


-1

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

restorecon -r /home/mcmoddr/www/

Itu harus memperbaiki masalah Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.