Linux
添加新虛擬主機後伺服器文件根更改
Ubuntu 18.04.3、Virtualmin 6.08、Webmin 1.932
奇怪的事情正在發生。
如果我在 /etc/apache2/sites-enabled 中什麼都沒有
然後我可以訪問伺服器的首頁:ns.server.com (/var/www/html)
和 ns.server.com/phpmyadmin 工作正常
如果我添加一個虛擬主機,或者啟用一個站點
a2ensite domain.com (+ 重新載入 apache)
然後當我嘗試訪問 ns.server.com 時出現 403 Forbidden
和 ns.server.com/phpmyadmin 下載 php 文件而不是執行它。
如果我 a2dissite domain.com (+ reload apache)
一切都再次正常工作。
/etc/apache2/apache2.conf:
DefaultRuntimeDir ${APACHE_RUN_DIR} PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} HostnameLookups Off ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> AccessFileName .htaccess <FilesMatch "^\.ht"> Require all denied </FilesMatch> LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite HIGH:!SSLv2:!ADH:!aNULL:!eNULL:!NULL <IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule>
有人可以幫忙弄清楚發生了什麼嗎?謝謝,
更新
因此,ns.server.com 似乎總是指向 /etc/apache2/sites-enabled 中按字母順序排列的第一個站點的 public_html。如果我把 index.html 放在那裡,我可以訪問 ns.server.com。
此外,如果我在第一個虛擬主機中以 Apache 使用者身份執行 php,那麼 ns.server.com/phpmyadmin 也可以正常工作。
所以有一個解決方法,但這太奇怪了:-o
有任何想法嗎?
簡而言之,作為最佳實踐,定義一個
_default_
虛擬主機。IE
<VirtualHost _default_:*> DocumentRoot "/www/default" </VirtualHost>
您還可以將其添加到現有的虛擬主機指令中……如果需要:
<VirtualHost _default_:* 1.2.3.4:80> DocumentRoot "/www/some_website" </VirtualHost>