• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Error

            C++博客 首頁 新隨筆 聯系 聚合 管理
              217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

            Apache服務器的安裝與配置

            文檔:http://httpd.apache.org/docs/2.4/

            指令:http://httpd.apache.org/docs/2.4/mod/core.html

            一、配置文件

            語法

            * 主配置文件httpd.conf,更改只有重啟服務才會生效
            * 配置中一行一個命令,如果要多行一個命令,則最后以\結束,且與該行最后個字符無其它字符或者空白
            * 每行注釋以#開頭,會被忽略,一行命令符后不能再接注釋
            * 空行空白字符在配置文件中被忽略
            * 配置文件錯誤檢測可以通過 Test Configuration來完成(httpd.exe -w -t -f "D:\Software\GreenSoft\Apache\conf\httpd.conf" -d "D:\Software\GreenSoft\Apache\.")


            模塊

            Related Modules Related Directives
            --------------------------------------------
            mod_so <IfModule>
            LoadModule

            * httpd基于模塊化,編譯配置時,默認會把基本的功能模塊加載到服務器內核。
            * 對于動態加載的模塊可以通過LoadModule指令在任何時候完成。
            * <IfModule>可用于條件加載
            * Dos命令 httpd.exe -l 可以查看已經加載的模塊

            * httpd.exe支持的參數指令

            -D name : define a name for use in <IfDefine name> directives
            -d directory : specify an alternate initial ServerRoot
            -f file : specify an alternate ServerConfigFile
            -C "directive" : process directive before reading config files
            -c "directive" : process directive after reading config files
            -n name : set service name and use its ServerConfigFile
            -k start : tell Apache to start
            -k restart : tell running Apache to do a graceful restart
            -k stop|shutdown : tell running Apache to shutdown
            -k install : install an Apache service
            -k config : change startup Options of an Apache service
            -k uninstall : uninstall an Apache service
            -w : hold open the console window on error
            -e level : show startup errors of level (see LogLevel)
            -E file : log startup errors to file
            -v : show version number
            -V : show compile settings
            -h : list available command line options (this page)
            -l : list compiled in modules
            -L : list available configuration directives
            -t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
            -S : a synonym for -t -D DUMP_VHOSTS
            -t -D DUMP_MODULES : show all loaded modules
            -M : a synonym for -t -D DUMP_MODULES
            -t : run syntax check for config files
            -T : start without DocumentRoot(s) check

             

            指令作用范圍


            Related Modules Related Directives
            -----------------------------------------
            <Directory>
            <DirectoryMatch>
            <Files>
            <FilesMatch>
            <Location>
            <LocationMatch>
            <VirtualHost>

            * 指令范圍標簽可以指定指令生效的范圍,其可以嵌套
            * 可以通過在<VirtualHost>標簽中放置多個指令以同時支持多個虛擬主機站點
            * 節點配置參見:http://httpd.apache.org/docs/2.4/sections.html

             

            .htaccess文件

            * httpd通過在站點目錄里面放置.htaccess文件允許配置分散
            * .htaccess的語法與主配置文件一致,對于該配置文件的變更只要請求過來會立即生效
            * 可以在.htaccess中放置的指令見:http://httpd.apache.org/docs/2.4/mod/directive-dict.html#Context
            * 如果有權限配置主配置,則應避免使用.htaccess文件方式來配置,這種方式影響服務器性能
            1)配置.htaccess文件后,httpd會查找每個目錄的.htaccess文件,不管你實際有沒有使用
            2)文檔被請求的時候,.htaccess文件每次都會被加載

            3)httpd會在多層目錄中查找.htaccess文件,以應用完整的指令。
            4).htaccess中地址重寫指令中的正則表達式在每次請求的時候重新編譯。
            5)安全問題,用戶在修改.htaccess使管理員對配置的管理失控。只有設置AllowOverride指令才可以使用戶使用指定的指令。

             


            * 在.htaccess中配置指令與在主配置中配置Dirctory塊可以達到相同效果,但是后者有更好的性能。

            Contents of .htaccess file in /www/htdocs/example
            AddType text/example .exm

            等價于:

            Section from your httpd.conf file

            <Directory /www/htdocs/example>
            AddType text/example .exm
            </Directory>


            * 禁用.htaccess可以用指令 AllowOverride None

             

            二、Apache目錄結構

            根目錄
            |-- bin 程序命令目錄
            |-- build
            |-- cgi-bin
            |-- conf 配置文件目錄
            |-- error
            |-- htdocs 編譯安裝時站點目錄
            |-- icons
            |-- include
            |-- lib 
            |-- logs 默認日志文件存放包括錯誤日志(error_log)和訪問日志(access_log) tail -f access_log可以隨時看訪問記錄, 里面httpd.pid還會記錄主進程號
            |-- man
            |-- manual
            |-- modules 模塊目錄 例如PHP MEMCACHE編譯后的模塊在這里面

             

            Bin目錄
            |-- ab apache http服務器性能壓力測試工具,類似的jmeter loadrunner webbench
            |-- apachectl apache的啟動命令
            |-- apr-1-config
            |-- apu-1-config
            |-- apxs apache服務器編譯和安裝擴展的工具,在進行DSO方式模塊編譯時會用到例如編譯PHP時就用到:--with-apxs2=/usr/local/apache/bin/apxs
            |-- checkgid
            |-- dbmmanage
            |-- envvars
            |-- envvars-std
            |-- htcacheclean 清理磁盤緩存區的命令,一般少用
            |-- htdbm
            |-- htdigest
            |-- htpasswd 建立更新基本認證文件 例如配置nagio監控時候會用到
            |-- httpd 為apache的控制命令程序,apachectl執行的時候會調用到httpd
            |-- httxt2dbm
            |-- logresolve


            Conf目錄
            |-- extra 輔助apache配置文件
            | |-- httpd-autoindex.conf
            | |-- httpd-dav.conf dav支持配置
            | |-- httpd-default.conf apache相關服務配置 如超時時間 保持連接時間
            | |-- httpd-info.conf
            | |-- httpd-languages.conf 語言支持
            | |-- httpd-manual.conf
            | |-- httpd-mpm.conf 服務器池管理,如apache模式配置 連接等
            | |-- httpd-multilang-errordoc.conf
            | |-- httpd-ssl.conf 支持SSL加密配置
            | |-- httpd-userdir.conf
            | |-- httpd-vhosts.conf 虛擬機配置文件
            |-- httpd.conf 主配置文件
            |-- magic
            |-- mime.types
            |-- original

             

            三、httpd.conf主配置文件常見配置


            ServerRoot "/usr/local/apache2.2.22" apache安裝目錄
            Listen 80 apache端口 
            <IfModule !mpm_netware_module>
            <IfModule !mpm_winnt_module>
            User daemon apache運行用戶
            Group daemon apache運行組
            </IfModule>
            </IfModule>
            ServerAdmin you@example.com 管理員郵箱
            DocumentRoot "/usr/local/apache2.2.22/htdocs" 站點目錄,注意最后不要加/線

            <Directory /> 根目錄權限
            Options FollowSymLinks 可以使用符號鏈接
            AllowOverride None
            Order deny,allow
            Deny from all
            </Directory>
            <Directory "/usr/local/apache2.2.22/htdocs"> 目錄權限 注意Indexes的作用是允許瀏覽目錄
            Options Indexes FollowSymLinks
            AllowOverride None 禁止用戶對目錄配置文件.htaccess修改,一般為none
            Order allow,deny
            Allow from all 
            </Directory>

            <IfModule dir_module>
            DirectoryIndex index.html 站點目錄首頁文件多個文件用空格隔開
            </IfModule>

            <FilesMatch "^\.ht"> 防止WEB用戶查看以.ht開頭的隱藏文件
            Order allow,deny
            Deny from all
            Satisfy All
            </FilesMatch>

            ErrorLog "logs/error_log" 錯誤日志
            LogLevel warn 警告級別
            <IfModule log_config_module>
            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 復合日志格式
            LogFormat "%h %l %u %t \"%r\" %>s %b" common 常規日志格式
            <IfModule logio_module>
            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 復合日志格式
            </IfModule>
            CustomLog "logs/access_log" common 默認訪問日志格式
            </IfModule>

            <IfModule alias_module>
            ScriptAlias /cgi-bin/ "/usr/local/apache2.2.22/cgi-bin/" CGI別名配置
            </IfModule>
            <IfModule cgid_module>
            </IfModule>

            <Directory "/usr/local/apache2.2.22/cgi-bin"> CGI權限訪問路徑
            AllowOverride None
            Options None
            Order allow,deny
            Allow from all
            </Directory>
            DefaultType text/plain 定義不能確定MIME類型時候使用默認MIME類型,如果服務主要包含text或HTML ,text/plain是一個好選擇

            <IfModule mime_module>
            TypesConfig conf/mime.types
            AddType application/x-compress .Z 允許信息在傳輸中使用mosaic/x 2.1+解壓信息 但不是所有瀏覽器都支持
            AddType application/x-gzip .gz .tgz
            </IfModule>

            <IfModule ssl_module>
            SSLRandomSeed startup builtin
            SSLRandomSeed connect builtin
            </IfModule>

             

            四、虛擬主機http_vhost.conf配置文件

            NameVirtuaHost *:80 表示基于名稱的虛擬主機 *:80表示監聽本機所有IP的80端口上提供HTTP服務,*可以設置為具體IP
            <VirtualHost *:80>
            serveradmin 管理員郵箱
            servername 域名
            serveralias 別名 可以設置多個域名指向同一個站點
            errorlog 錯誤日志
            customlog 訪問日志
            </VirtualHost>


            虛擬主機的配置是局部優先原則,也就是http_vhost.conf配置了,那么就不會從主配置文件http.conf中讀取了


            五、修改Apache默認站點目錄

            1、文檔路徑更改 
            DocumentRoot "D:/Software/GreenSoft/Apache/htdocs" 
            改成
            DocumentRoot "E:/wwwroot/Apache"

            2、目錄更改
            <Directory "D:/Software/GreenSoft/Apache/htdocs">
            改成
            <Directory "E:/wwwroot/Apache">

             


            六、配置多站點方式

            方式一 拷貝配置文件,安裝新服務
            1、將httpd.conf復制一個新的文件httpdNew.conf
            2、將httpdNew.conf中的偵聽端口改成未使用的自定義的端口。 Listen:8111
            3、將httpdNew.conf中的網站目錄 DocumentRoot "原絕對路徑" 改成 DocumentRoot "新絕對路徑"
            4、將httpdNew.conf中的權限設置 <Directory "原絕對路徑" > 改成 <Directory "新絕對路徑" >
            5、安裝新服務。Dos下進到Apache安裝目錄下的Bin目錄,輸入命令 httpd.exe -k install -n "服務名" -f "X:\Apache安裝目錄根目錄\conf\httpdNew.conf"
            6、啟動新服務。輸入命令 httpd -k start


            方式二 添加新端口,新虛擬目錄的方式
            1、httpd.conf在之前偵聽端口的基礎上,加上新偵聽端口 Listen 8333.這樣Apache有多個偵聽端口
            2、httpd.conf中加入虛擬主機支持。加入指令:NameVirtualHost *
            3、找到<VirtualHost> definition注釋所在位置。加入指令:
            <VirtualHost localhost:8333>
            ServerName localhost
            DocumentRoot "虛擬站點新絕對路徑"
            </VirtualHost>

             

            方式三 建立虛擬主機方式
            1、修改虛擬主機配置文件 X:\Apache安裝目錄根目錄\conf\extra\httpd-vhosts.conf文件.加入配置:
            <VirtualHost 127.0.1.1:8222>
            DocumentRoot "虛擬站點新絕對路徑"
            ServerName url.com
            ErrorLog "虛擬站點新絕對路徑/error.log"
            </VirtualHost>

            2、修改主配置文件X:\Apache安裝目錄根目錄\conf\httpd.conf。去掉#Include conf/extra/httpd-vhosts.conf前面的#號
            3、修改主配置文件X:\Apache安裝目錄根目錄\conf\httpd.conf。加目錄權限:
            <Directory "虛擬站點新絕對路徑">
            Options Indexes FollowSymLinks MultiViews ExecCGI
            AllowOverride All
            Order allow,deny
            Allow from all
            </Directory>
            4、重啟對應的Apache服務

             

            七、配置Apache支持Url重寫

            1、加載重寫模塊。httpd.conf中找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉#號
            2、httpd.conf中找到AllowOverride None,改成 AllowOverride All (All表示整臺服務器上都支持URL規則重寫)
            3、httpd.conf加入
            <Directory "站點絕對路徑">
            Options FollowSymLinks
            AllowOverride All
            </Directory>
            4、重啟Apache服務器并啟動服務
            5、在URL重寫的網站目錄下放一個.htaccess文件,文件名是.htaccess。如無此文件或此文件中沒定義任何關于URL重寫的規則,則重寫不會生效。
            6、在.htaccess中通過正則表達式映射需要偽靜態的頁面。URL正則表達式如下:
            RewriteEngine on
            RewriteRule index.html index.php
            RewriteRule (\d+).htmlinfo\.php\?infoid=1
            效果為:www.abc.cn/info/info.php?infoid=100 映射為 www.abc.cn/info/100.html


            可用于以下用途:
            1、http錯誤的自定義頁。格式 ErrorDocument 錯誤代碼 /目錄名/名.擴展名
            ErrorDocument 404 /errors/notfound.html
            ErrorDocument 401 "你權限訪問該頁面!"

            2、拒絕某IP的訪問
            order allow,deny 
            deny from 210.10.56.32 
            deny from 219.5.45. 
            deny from www.baidu.com
            allow from all

            3、保護.htaccess文檔
            4、Url轉向(文檔遷移,目錄更改,顯示友好易記的url)。格式:
            Redirect /舊目錄/舊文檔名 新文檔名
            Redirect 舊目錄 新目錄

            5、更改默認主頁
            DirectoryIndex 新的缺省名
            DirectoryIndex filename.html index.cgi index.pl default.htm

            6、反盜鏈
            RewriteEngine on 
            RewriteCond %{ HTTP_REFERER } !^RewriteCond [NC] 
            RewriteRule .(gif&line;jpg)- [F]  RewriteRule .(gif&line;jpg) http://www.mydomain.com/替代名 [R,L]

             

            八、配置反盜鏈
            1、參見 配置Apache支持Url重寫 節,配置Apache支持url重寫
            2、在站點的.htaccess文件中加入
            RewriteEngine on
            #允許空“HTTP_REFERER”的訪問
            RewriteCond %{HTTP_REFERER} !^[NC]RewriteCond http://nobing.cn/no.png [R,NC,L]

            說明:
            R 就是轉向的意思
            NC 指的是不區分大小寫
            L 的作用是指明本次轉向到此結束,后續的轉向不受先前判斷語句的影響

            多個擴展名用|分隔

             


            九、配置緩存

            LoadModule cache_module modules/mod_cache.so 
            LoadModule mem_cache_module modules/mod_mem_cache.so 
            <IfModule mod_cache.c> 
            #默認緩存有效期(秒)
            CacheDefaultExpire 3600 
            CacheMaxExpire 86400 
            CacheLastModifiedFactor 0.1 

            #禁止緩存某些特定的URL 
            CacheDisable /local_files 
            #使用特定的存儲類型緩存某些特定的URL 
            CacheEnable mem /manual 
            CacheEnable fd /images 
            CacheEnable disk / 
            <IfModule mod_mem_cache.c> 
            CacheEnable mem / 
            MCacheSize 8192 
            MCacheMaxObjectCount 10000 
            MCacheMinObjectSize 1 
            MCacheMaxObjectSize 51200 
            #MCacheRemovalAlgorithm LRU 
            </IfModule> 
            </IfModule>

             

            posted on 2015-04-25 18:10 Enic 閱讀(157) 評論(0)  編輯 收藏 引用 所屬分類: 從零開始寫棋牌游戲平臺
            精品国产乱码久久久久软件| 日韩亚洲欧美久久久www综合网| 久久久久人妻一区精品| 久久久久亚洲精品无码网址| 一本久久免费视频| 久久99精品久久久久婷婷| 18岁日韩内射颜射午夜久久成人| 99国内精品久久久久久久| 亚洲精品tv久久久久| 国产精品99精品久久免费| 免费观看成人久久网免费观看| 性做久久久久久久久| 婷婷久久久亚洲欧洲日产国码AV| 久久不射电影网| 久久九九兔免费精品6| 天天综合久久久网| 久久综合精品国产二区无码| 久久精品国产福利国产琪琪| 久久丫精品国产亚洲av| 午夜精品久久久久久久无码| 日韩亚洲欧美久久久www综合网| 中文字幕无码免费久久| 久久精品中文字幕第23页| 97精品国产91久久久久久| 国产精品久久婷婷六月丁香| 久久免费精品视频| 久久久女人与动物群交毛片| 日本久久中文字幕| 久久国产一区二区| 久久久久AV综合网成人| 亚洲级αV无码毛片久久精品| 久久亚洲精品无码观看不卡| 91亚洲国产成人久久精品| 97久久超碰国产精品旧版| 久久综合精品国产二区无码| 亚洲国产另类久久久精品黑人| 中文字幕精品久久| 久久综合亚洲色HEZYO社区| 一级做a爰片久久毛片免费陪| 三级韩国一区久久二区综合| 久久久久亚洲AV成人网人人软件|