網頁

2013年3月25日 星期一

Apache相關設定及說明


  • Appach的相關設定存儲於 /opt/httpd/conf/httpd.conf,若如果你要修改的話,或是廠商有修改的話可能在其他的地方如/etc/httpd/config下的httpd.conf
  • 啟動apache
    • /opt/apache/bin/apachectl start
    • /sbin/service httpd restart
  • 你的預設的www目錄可能在/var/www/html
  • 注意:若是你有新增page到/var/www/html中的話,記得要修改一下權限
    • chmod 755 /var/www/html/yourfile.html
  • 在httpd.conf常設定的選項
    • Listen : 是設定apache使用到的port 
      • Listen 80
    • ServerRoot "/usr/local/apache"      : 設定apache的伺服器所在的根目錄
    • <IfModule !mpm_netware.c>
    • PidFile logs/httpd.pid                    :執行http這個服務的程序號碼
    • </ifModule>
    • Timeout 300          :在傳陝五與接收之前的逾時的秒數
    • KeepAlive On     :是否保持連線
    • MaxKeepAliveRequest  100     : 建立連線時所允許的最大回應數,而0表不限
    • KeepAliveTimeout 15   :在相同的client,相同的連線中,等待下一個請求的秒數,起過即算逾時。
    • <IfModule prefork.c>
    •     StartServers 5         :server啟動時的程予數目
    •     MinSpareServers   5 :server備援程序的最小直
    •     MaxSpareServers  5 : 上行的最大值
    •     MaxClient 150 : client端的最大連線數
    •     MaxRequestsPerChild 0 : 一個server程式最大回應的子程序數目;0表不限
    • </IfModule>
    • ExtendedStatus On :這個控制是否紀錄完整的狀態(on),或是基本的資訊(off),default是關閉的。
    • User Apache
    • Group Apache 以上2行是定義執行httpd的使用者與群組,預設是apache
    • ServerAdmin admin@test.com 當系統出現問題的時侯所出現的聯絡email
    • ServerName new.host.name:80 是否認證自已的domain name
    • UseCanonicalName off 是否使用別名
    • DocumentRoot "/usr/local/apache/htdocs" 網頁根目錄所放的路徑
    • 對於apache而言,每一個目錄都可以設相關的權限,以下的default值使用嚴格的限制
      • <Directory>
      •     Options FollowSymLinks
      •     AllowOverride None    
      • </Directory>
    • DirectoryIndex index.html index.htm  頁設開啟的檔案
    • AccessFileName .htaccess 每個目錄錄中權限控管的檔案
    • 以下是設定避免.htaccess以及.htpasswd被web client看到
      • <Files ~"^\.ht">
      •     Order allow , deny
      •     Deny from all
      • </Files>
    • HostnameLookups Off 紀錄檔中的ip address是否要做反查
    • EnableMMAP off 記憶體對應的控制
    • ErrorLog logs/error_log 錯誤檔案的紀錄位置
    • LogLevel warm 紀錄檔的等級
    • CustomLog logs/access_log common 全部的紀錄都到一個紀錄檔中
    • ServerSignature On 在一些網頁中是否要出現Admin 的email的連結
    • Alias /haha "/usr/local/apache/manual" 建立別名
    • LanguagePriority tw en da ...語言的優先順序


  • 設定apache的認證登入
    • 新增一個Apache所認的id,supermain,以及密碼為abc123,並將密碼檔置於/opt/passwords。要注意…這一個密碼檔必須要能夠被apache帳號讀取到,並且最好放在瀏覽器無法存取到的位置。
      • htpasswd -c /opt/passwords superman
      • new password:abc123
      • re-type ......
    •  首外將/opt/passwords給予一孺使用者閱讀的權限,否則認正的功能將無法啟動。由於apache除了port 80 的程序由root執行之外,其他的程序由apache這個使用者執行,所以必須開放根目錄可閱讀的權限
    • chmod 644 /opt/passwords
    • chmod 755 /home/newrpm
    • 在httpd.conf加入以下四行
      • <Directory /home/*/www>
      • AuthType Basic
      • AuthName "Restricted Files"
      • AuthUserFile /opt/passwords
      • require user supermain
      • ... 
  • apache的虛擬主機:一台pc多個domain name
    • 假設pc a 的ip 為10.1.1.1 而有2個domain name,分別是www.one.com以及www.two.com,我們希望client端在browser輸入不同的domain name,則會連到不同的目錄。
      • 修改httpd.conf
        • NameVirtualHost  10.1.1.1
        • <VirtualHost www.one.com>
        •     DocumentRoot /home/one/www
        •     ServerName www.one.com
        •     ErrorLog logs/error_one_log
        •     CustomLog logs/access_log1 common
        • </VirtualHost>

        • <VirtualHost www.two.com>
        •     DocumentRoot /home/two/www
        •     ServerName www.tow.com
        •     ErrorLog logs/error_tow_log
        •     CustomLog logs/access_log2 common
        • </VirtualHost>
  • appache的分散流量
    • 實做方法有2個;1為在DNS server設定,將同一個domain name對應到多個Ip Address,另一個為iptables的設定。
  • httpd指令說明
    • -d serverroot : 設定server root的起始目錄
    • -f config :使用特定的設定檔案,預設值是conf/httpd.conf
    • -t :執行httpd.conf的語法測試,
    • -v :顯示apache的版本
    • -V:顯示apache的版本以及httpd用的參數
  • htpasswd指令
    • -c:新增密碼檔案,如果此檔案已經存在,會被覆蓋
    • -d:不使用交談方式,直接將密碼置於指令之後
      • htpasswd /usr/local/etc/apache/.htpasswd-users tom
        • 新增或是更改tom的密碼
      • htpasswd -c /home/doe/mywwww/.htpasswd jane
        • 新增一個帳號並記錄它
      • htpasswd -mb /usr/web/.htpasswd-all john HappyDays
        • HappyDays是密碼哦
  • apachectl指令
    • start:啟動apache server
    • Stop:停止apache server
    • Restart:重新啟動
    • Fullstatus:顯示完整的狀態
    • Status:顯示簡單的狀態
    • Configtest:執行語法測試
    • Help:help 這就不用說了吧…

沒有留言:

張貼留言