Sekali lagi, saya memiliki masalah dengan konfigurasi host virtual apache saya. (Konfigurasi default digunakan sebagai pengganti konfigurasi khusus saya).
Masalahnya bukanlah kesalahan konfigurasi tetapi bagaimana mengatasinya.
Apakah ada yang punya saran bagus untuk menyelesaikan masalah semacam ini dengan cepat?
Beberapa informasi lagi.
File conf default adalah yang ini:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
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 /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
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>
Dan konfigurasi host virtual yang tidak berlaku adalah yang ini:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com
</VirtualHost>
apache
debugging
virtualhost
GaetanZ
sumber
sumber
Jawaban:
Pemeriksaan sintaks
Untuk memeriksa file konfigurasi untuk kesalahan sintaks:
# Red Hat-based (Fedora, CentOS) and OSX httpd -t # Debian-based (Ubuntu) apache2ctl -t # MacOS apachectl -t
Buat daftar host virtual
Untuk mencantumkan semua host virtual, dan lokasinya:
# Red Hat-based (Fedora, CentOS) and OSX httpd -S # Debian-based (Ubuntu) apache2ctl -S # MacOS apachectl -S
sumber
-S
adalah sinonim-t -D DUMP_VHOSTS
sehingga keduanya samac:\\wamp\\bin\\apache\\apache2.4.9\\bin\\httpd.exe -S
Inilah perintah yang menurut saya bisa membantu:
Anda akan mendapatkan daftar semua vhost, Anda akan tahu mana yang default dan Anda akan memastikan bahwa sintaks Anda benar (sama seperti configtest apachectl yang disarankan oleh yojimbo87).
Anda juga akan tahu di mana setiap vhost dideklarasikan. Ini bisa berguna jika file konfigurasi Anda berantakan. ;)
sumber
Jika Anda mencoba men-debug konfigurasi host virtual, Anda mungkin menemukan sakelar baris perintah Apache -S berguna. Artinya, ketik perintah berikut:
Perintah ini akan mengeluarkan deskripsi tentang bagaimana Apache mengurai file konfigurasi. Pemeriksaan yang cermat atas alamat IP dan nama server dapat membantu mengungkap kesalahan konfigurasi. (Lihat dokumen untuk program httpd untuk opsi baris perintah lainnya).
sumber
apache2ctl -S
APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data /usr/sbin/apache2 -S
Pertama periksa file konfigurasi untuk kesalahan sintaks dengan
apachectl configtest
dan kemudian lihat log kesalahan apache .sumber
Saya memiliki file konfigurasi VirtualHost baru yang tidak muncul saat menggunakan
apachectl -S
perintah. Setelah banyak garukan kepala, saya menyadari bahwa file saya tidak memiliki sufiks ".conf". Setelah saya mengganti nama file dengan sufiks itu, Vhost saya mulai ditampilkan dan berfungsi!sumber
Saya baru-baru ini mengalami beberapa masalah dengan VirtualHost. Saya dulu
a2ensite
mengaktifkan host tetapi sebelum menjalankan restart (yang akan mematikan server jika gagal) saya berlariYang memberi Anda beberapa info tentang apa yang terjadi dengan host virtual Anda. Itu tidak sempurna, tapi membantu.
sumber
Saya menemukan kesalahan saya sendiri, saya tidak menambahkan nama file log: ErrorLog / var / log / apache2
Dan jalur ini: Direktori "/ usr / share / doc /" Tidak berisi sumber situs web.
Setelah saya mengubah keduanya, semuanya bekerja. Menariknya, apache tidak mengeluarkan kesalahan apa pun, hanya saja tidak membuka situs web saya secara diam-diam di Mac OS Sierra saya.
sumber