當我們剛建好 ubuntu 16.04 的 apache server 時,預設網站目錄在 /var/www/html 下,假設我們想要將網站目錄放在 /var/www/site.myweb.com 下,設定方式如下...
$sudo su -
#cd /var/www
#mkdir site.myweb.com
#cd /etc/apache2/sites-available
#cp 000-default.conf site.myweb.com.conf
#vim site.myweb.com.conf
<VirtualHost *:80>
ServerName site.myweb.com
DocumentRoot /var/www/site.myweb.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
#a2ensite site.myweb.com.conf
#a2dissite 000-default.conf
#service apache2 restart
至此 在網址列輸入server的 IP 應該會導到 /var/www/site.myweb.com (沒內容可以建一個測試頁),如果 DNS 已經設好對應,則可以直接輸入網址(如: http://site.myweb.com)。
註1:
執行 a2ensite 啟用網站後,/etc/apache2/sites-enabled 會同步新增一個 site.myweb.com.conf,實際上這個檔案只是指向 sites-available/site.myweb.com.conf 的指向連結,如果要改設定值時,建議還是回到 sites-available 去改。
註2:
conf 檔可以進行很多設定,預設只有四項,如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost #網站管理者的email
DocumentRoot /var/www/html #網站檔案目錄的實際位置
ErrorLog ${APACHE_LOG_DIR}/error.log #訪問網站失敗時的log存放位置
CustomLog ${APACHE_LOG_DIR}/access.log combined #訪問網站成功時的log存放位置
</VirtualHost>
可以進一步視需求調整成我們需要的樣子,假設我們不想記錄log,方法如下:
<VirtualHost *:80>
#ServerAdmin webmaster@localhost #可以不用設定
ServerName site.myweb.com #網址
DocumentRoot /var/www/html #網站檔案目錄的實際位置
#ErrorLog ${APACHE_LOG_DIR}/error.log #如果不需要錯誤記錄 則註解掉
ErrorLog off # 關掉 Error Log 記錄
#CustomLog ${APACHE_LOG_DIR}/access.log combined #如果不需要成功記錄 則註解掉
CustomLog /dev/null combined # 關掉 Access Log 記錄
</VirtualHost>
在網站log部分,如果需要記錄log,可以將存放log的檔案用網站名稱區隔開來 ,例如:
ErrorLog ${APACHE_LOG_DIR}/site.myweb.com_error.log
這樣的話,我們到 /var/log/apache2/ 就可以很清楚的找到指定網站的log檔。(不改的話所有網站的log會放在同一個檔案)
如果希望有訪問網站的log,又不想太頻繁的記錄,可以增加語法如下:
LogLevel warn #調整log級別至有潛在危害時才記錄
SetEnvIf Request_URI "(\.gif|\.png|\.jpg)$" dontlog #當訪問 gif, png, jpg 檔案時 不記錄
<VirtualHost *:80>
ServerName site.myweb.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/site.myweb.com_error.log
CustomLog ${APACHE_LOG_DIR}/site.myweb.com_access.log combined
LogLevel warn #調整log級別至有潛在危害時才記錄
SetEnvIf Request_URI "(\.gif|\.png|\.jpg)$" dontlog #當訪問 gif, png, jpg 檔案時 不記錄
</VirtualHost>
No comments:
Post a Comment