安裝 Apache on FreeBSD 筆記
# 用 ports 安裝 apache 1.3
# 也可以裝 apache22 或更新版本,目錄不同而已。
cd /usr/ports/www/apache13/
make all install clean
# 編輯 /etc/rc.conf 加入 apache_enable="YES"
echo 'apache_enable="YES"' >> /etc/rc.conf
# 啟動
/usr/local/etc/rc.d/apache.sh start
* 一般設定
# 編輯 /usr/local/etc/apache/httpd.conf
[httpd.conf]
# 管理者帳號
ServerAdmin you@your-host.com
# 網站名稱
ServerName www.your-host.com
# 網站根目錄
DocumentRoot "/usr/local/www/data"
# 根目錄細部設定
<Directory "/usr/local/www/data">
# 常見設定:
# Options 後面可以接的關鍵字除了 None 和 All 之外也可以是其他關鍵字的合併:
# None => 什麼也沒有
# All => 除了 MultiViews 之外通通都有
# ExecCGI => 可以執行 CGI
# FollowSymLinks => 使用系統的 symbol link 存取目錄
# Indexes => 沒有索引檔時顯示目錄
# Includes => 可以使用 Apache 的 SSI (Server-Side Include)功能
# IncludesNOEXEC => 可以使用 SSI 但不能執行 CGI
Options Indexes FollowSymLinks MultiViews
# 可以使用 .htaccess
AllowOverride All
# allow 與 deny 順序
Order allow,deny
# 所有人都可以看
Allow from all
</Directory>
[/httpd.conf]* 虛擬主機設定 (v1.3)
[httpd.conf]
# 虛擬主機的 DNS
NameVirtualHost [本機IP]
# 設定含入檔
include /usr/local/etc/apache/vhosts/
# 預設伺服器, 當 client 輸入的位址查不到時會連到這
<VirtualHost _default_:80>
Options ExecCGI
ServerAdmin root@[本機IP]
DocumentRoot /usr/local/www/data
ServerName [本機IP]
ErrorLog logs/default-error_log
CustomLog logs/default-access_log combined
</VirtualHost>
# 當 client 使用 ip 連線時會連到這
<VirtualHost [本機IP]>
Options ExecCGI
ServerAdmin root@[本機IP]
DocumentRoot /usr/local/www/data
ServerName [本機IP]
ErrorLog logs/default-error_log
CustomLog logs/default-access_log combined
</VirtualHost>
[/httpd.conf]# 這種設法是把每個虛擬主機設定存一個檔案,要新增或刪除主機時在含入目錄中增刪檔案即可。
[虛擬主機設定檔範例: alpha]
alias /alpha /usr/local/www/vhosts/alpha
<VirtualHost *:80>
ServerAdmin [you]@[domain]
DocumentRoot /usr/local/www/vhosts/alpha
ServerName alpha.[domain]
ErrorLog /var/log/alpha.[domain]-error_log
CustomLog /var/log/alpha.[domain]-access_log combined
<Directory "/usr/local/www/vhosts/alpha">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
[/虛擬主機設定檔範例: alpha]* 虛擬主機設定 (v2.2)
# 與 1.3 設定類似,相關設定會放在 /usr/local/etc/apache22/extra/httpd-vhosts.conf
# 在 /usr/local/etc/apache22/httpd.conf 中把上面檔案引入,並修改為自己想要的如下:
[httpd.conf]
Include /usr/local/etc/apache22/extra/httpd-vhosts.conf[/httpd.conf]
* 錯誤記錄存放處:
cat /var/log/httpd-error.log
* apache 防盜連設法
# 參考官網範例: http://httpd.apache.org/docs/2.0/env.html#examples
[httpd.conf]
#允許存取的主機位置
SetEnvIf Referer "^http://www.your-host.com/" local_referal
SetEnvIf Referer "^http://192.168.1.100/" local_referal
#允許用戶不送 referer (從"我的最愛"/"書籤"開啟時)
#SetEnvIf Referer "^$" local_referal
#要保護的目錄
<Directory /usr/local/www/data/mrtg/>
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Directory>
[/httpd.conf]
沒有留言:
張貼留言