Saya baru-baru ini mencoba menyiapkan server uji dengan Apache. Situs harus dijalankan di bawah domain www.mytest.com
. Saya selalu mendapatkan 403 Forbidden
kesalahan. Saya menggunakan edisi server Ubuntu 10.10. Root doc berada di bawah dir /var/www
. Berikut ini adalah pengaturan saya:
Isi dari / var / www
ls -l /var/www/
total 12
drwxr-xr-x 2 root root 4096 2011-08-04 11:26 mytest.com
-rwxr-xr-x 1 root root 177 2011-07-25 16:10 index.html
Konten file host di server (dengan IP 192.168.2.5)
cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 americano
192.168.2.5 americano.mytest.com www.mytest.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Konfigurasi situs
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.mytest.com
ServerAlias mytest.com
DocumentRoot "/var/www/mytest.com"
ErrorLog /var/log/apache2/mytest-error_log
CustomLog /var/log/apache2/mytest-access_log combined
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/mytest.com">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Saya tidak memiliki .htaccess
file di root doc saya. Izin diatur dengan benar (dapat dibaca oleh www-data).
Jika saya mengetik alamat IP dari desktop saya, situs tersebut muncul dengan benar. Saya mengubah file host di desktop saya agar mengarah www.mytest.com
ke IP server. Saat saya menggunakannya, saya mengerti 403
. Karena banyak fungsi situs ini yang peka terhadap nama situs, saya harus dapat mengakses situs dengan nama domain.
Hal funky lainnya adalah, meskipun semua file log dibuat dengan benar, mereka tidak memiliki informasi tentang kesalahan ini.
Aku terjebak. Ada yang bisa membantu?
sumber
sudo sh -c ". /etc/apache2/envvars; apache2 -S"
(daftar Virtualhosts) dan:sudo sh -c ". /etc/apache2/envvars; grep -R Listen /etc/apache2/*|grep -v \"#\"; grep -R NameVirtual /etc/apache2/*|grep -v \"#\""
VirtualHost configuration: 192.168.2.5:* www.mytest.com (/etc/apache2/sites-enabled/mytest.com:1) Syntax OK
Perintah kedua kembali:/etc/apache2/ports.conf:Listen 80 /etc/apache2/ports.conf: Listen 443 /etc/apache2/ports.conf: Listen 443 /etc/apache2/conf.d/virtual.conf:NameVirtualHost *
Jawaban:
Apache 2.4.3 (atau mungkin sedikit lebih awal) menambahkan fitur keamanan baru yang sering menyebabkan kesalahan ini. Anda juga akan melihat pesan log dalam bentuk "klien ditolak oleh konfigurasi server". Fitur tersebut membutuhkan identitas pengguna untuk mengakses direktori. Ini diaktifkan oleh DEFAULT di httpd.conf yang disertakan dengan Apache. Anda dapat melihat pengaktifan fitur dengan direktif
Ini pada dasarnya mengatakan untuk menolak akses ke semua pengguna. Untuk memperbaiki masalah ini, hapus direktif yang ditolak (atau jauh lebih baik) tambahkan direktif berikut ke direktori yang ingin Anda beri akses:
seperti dalam
sumber
/etc/apache2/apache2.conf
dan itu membantu, terima kasih!apache/conf/extra
di dalamnya/etc/apache2
Untuk apache Ubuntu 2.4.7, saya akhirnya menemukan Anda perlu memasukkan host virtual Anda ke daftar putih di apache2.conf
sumber
Ini mungkin masalah izin.
menurut halaman ini tentang kesalahan Apache 403.
Karena Anda menggunakan
Allow from all
, pesanan Anda seharusnya tidak menjadi masalah, tetapi Anda dapat mencoba mengalihkannya keDeny,Allow
untuk menyetel perilaku default ke "mengizinkan".sumber
Pindahkan klausa Direktori keluar dari virtualhost, dan letakkan sebelum mendeklarasikan virtualhost.
Membuatku gila untuk waktu yang lama juga. Tidak tahu kenapa. Ini tentang Debian.
sumber
Saya mengalami masalah yang sama dengan host virtual di Ubuntu 14.04
Bagi saya, solusi berikut berhasil:
http://ubuntuforums.org/showthread.php?t=2185282
Ini hanya menambahkan
<Directory >
tag ke/etc/apache2/apache2.conf
sumber
Jika Anda melakukan semuanya dengan benar, berikan izin direktori home seperti:
kemudian
sumber
Masalahnya adalah izin akses file salah.
Saya mengubah izin direktori dan berhasil.
sumber
Saya mengalami masalah ini di Arch Linux juga ... ini menghabiskan beberapa waktu tetapi saya senang sekarang karena saya menemukan kesalahan saya:
Direktori saya dengan
.html
file yang ada di akun saya.Saya mengatur semuanya
r+x
tetapi saya masih mendapatkan403
kesalahan.Kemudian saya kembali sepenuhnya dan mencoba mengatur direktori home saya untuk dieksekusi yang memecahkan masalah saya.
sumber
Saya hanya menghabiskan beberapa jam untuk masalah bodoh ini
Pertama, ubah izin menggunakan ini di terminal
Saya tidak tahu apa perbedaan antara 664 dan 775 Saya melakukan keduanya 775 seperti ini Juga htdocs membutuhkan jalur direktori misalnya bagi saya itu
Ini juga hal bodoh lainnya
pastikan bahwa link src gambar Anda adalah nama domain Anda, misalnya
Pastikan untuk memilikinya
Anda mengeditnya menggunakan terminal pico in
Saya juga membuat direktori untuk gambar secara khusus sehingga ketika Anda mengetik di bilah alamat browser domainname.com/images, Anda akan mendapatkan daftar foto yang dapat diunduh dan perlu diunduh dengan sukses untuk menunjukkan file gambar yang berfungsi dengan baik
Dan itu adalah solusi yang telah saya coba, sekarang saya memiliki gambar yang berfungsi ... yay !!!
Ke masalah berikutnya
sumber