# Apache ###### tags: `Network Management` :::info File path: /etc/apache2 ::: ::: danger 修改任何設定檔案強烈建議要做備份 ::: ## 備份 將原有的設定檔案更改名稱成為 .bak,即可作為備份檔案 ## 安裝 Linux: apt install httpd(apache2) 安裝完成後會包含conf, mods, site的資料夾 分別為設定,模組,網頁設定 > 網頁的設定檔放在server上,會需要給“修改網路的權限” 和 ”修改server上文件的權限“ ## 環境設定 若要新增設定,只需要在*-availabled下新增後,再下達指令: ```bash= a2enconf(a2enmod/a2ensite) 設定檔名稱 ``` 啟用後的設定會在*-enabled內產生相對的軟連結 若要取消設定,則為: ```bash= a2disconf(a2dismod/a2dissite) 設定檔名稱 ``` ### apache2.conf 建議預設即可 ### conf-availabled apache的內部細節設定等 ### mods-availabled 在apache內新增一些額外的附加功能等 ### site-availabled 網頁的相關設定 --- ## apache內容文件說明 * VirtualHost 設定要用哪個port的設定去接入與回應用 ### error.log 顯示錯誤紀錄 > 預設在 srv/www/apache2 底下 ### 000-default.conf VirtualHost *:80 一般http進入 ### 001-phpdev 將進入80 port的網址強轉至Rewrite設定的網址 ```bash= VirtualHost *:80 RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ~~~ ``` VirtualHost *:443 使用https進入,需要加上SSL公鑰和私鑰設定 ```bash= SSLCertificateFile 公鑰檔案位置 SSLCertificateKeyFile 私鑰檔案位置 ``` ### 002-imgv ```bash= <IfModule mod_ssl.c> <VirtualHost *:443> </VirtualHost> </Ifmodule> ``` ### 003-trustu.conf ```bash= <VirtualHost *:443> ServerName bot.wndc.nkust.edu.tw ProxyPreserveHost On ProxyPass / http://127.0.0.1:12344/ ProxyPassReverse / http://127.0.0.1:12344/ ErrorLog /var/log/apache2/trustu-linebot.log CustomLog /var/log/apache2/trustu-linebot.log common SSLEngine On SSLProtocol all -SSLv2 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM:!LOW:! RC4 SSLCertificateFile /etc/letsencrypt/live/bot.wndc.nkust.edu.tw/ fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/bot.wndc.nkust.edu.tw/ privkey.pem </VirtualHost> ``` ### 005-file-upload.conf 代理伺服器,將進來的request轉發到指定的位置進行處理 ```bash= ProxyPreserveHost on ProxyPass / ProxyPassReverse / ``` ### 006-trustu-humon.conf ## 當*.conf 更改完成後... 記得在enabled之前,要使用以下的指令來檢查所有conf的語法是否有誤 ```bash= sudo apachectl configtest ``` 若語法正確,結果顯示如下: ```bash= Syntax OK ```