在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
gentoo的emerge安装:目前apache-2.2.0是被mask的,要先对它时行unmask) 1)编辑/etc/portage/package.unmask:加入下列几行 >=dev-php/mod_php-5.0 >=net-www/apache-2.2.0 >=dev-libs/apr-util-1.2.2 >=dev-libs/apr-1.2.2 2)USE= "mysql apache2 -qt -qtmt -pdflib" emerge apache /etc/init.d/apache2 start #启动apache2 rc-update add apache2 default #加入到开机自启动 源码编译约2小时。 3)装好后需要改一下配置: /etc/apache/httpd.conf: ServerName www.yourlocalName.com:80 #加入该行,其它不变 /etc/apache/vhost.d/00_default_vhost.conf DocumentRoot "/usr/local/WebRoot" #对根目录进行保护,任何用户都不许访问 <Directory /> Options FollowSymLinks AllowOverride None Order Deny,Allow Deny from all </Directory> #对虚拟网站的站点,给用户权限 <Directory "/usr/local/WebRoot"> Options Indexes FollowSymLinks AllowOverride None Order Allow,Deny Allow from all </Directory> 注: a.如果不加ServerName,会在apache启动时提示ServerName找不到,自动使用127.0.0.1 b.需要对根目录进行保护增强安全性。 c.必须先安装apache2再装PHP,如果有以前的版本,建议先将以前的版本备份清除,包括以前的配置文件 失败的案例: 原先装的是php4.4+apache2.0.55,当时还需要再编一个mod_php放到apache的modules中。 然后升级到php5.1.2,此时会提示mod_php不能用,删除掉。 然后再升级到apache2.2.0,没有删除配置文件,导致/etc/apache2下面的http.conf没有重写,Load模块都是错的,又不知道怎么弄,就再编了一次apache2.2.0。这样HTTP服务器就好用了。 但加上PHP5的配置(PHP5安装时会自动“聪明地”把/etc/conf.d/apache2修改,并加上/etc/apache2/modules.d/70_mod_php5.conf)后,出现了“libphp5.so无效,请检查它是不是apache2的DSO”的提示,搞不懂什么原因。想想可能是PHP5用到了apache2.0.55的什么东西了。 最后再重新编一次PHP5.1.2,再把vhost弄好,就可以用了。 走了弯路,一开始就编apache2.2.0,再编php5.1.2就没事了。 ------------------------------------------------------ [转]Web伺服器Apache 田逸([email protected]) 《網管員世界》2006年第2期 相信使用過電腦的人,都應該有過訪問web伺服器的經歷。在網站瀏覽新聞、登錄郵件伺服器收發郵件、通過網路購物、以瀏覽器方式配置防火牆等等,無一例外都有一個web伺服器在為訪問者提供服務。儘管有別的方式來實現對設備或服務的訪問(如配置衛星數據機),但以web方式提供訪問的策略依然是最受歡迎的,因為它更直觀,也更方便。也是因為這樣,是的web伺服器得以更廣泛的流行。 Apache是linux主流的伺服器,為linux的迅速繁榮立下汗馬功勞。根據資料顯示,截至2005年12月,在internet上,Apache伺服器以70.98%的絕對優勢雄居web伺服器之首。在這節內容中,我們就話花些時間來討論linux下大名鼎鼎的web伺服器Apache。請初學者注意,不要花費心思去搜尋名字為apache這樣的套裝軟體,它現在的名字是httpd。 Apache 伺服器的安裝 有兩種安裝apache伺服器的機會:安裝linux作業系統的時候選擇安裝web伺服器和安裝完系統後安裝apache伺服器。如果是在安裝linux作業系統期間沒有安裝apache,這就需要使用包文件來安裝。一個運行著的系統,你怎麼知道它裝沒裝apache伺服器?用下面這個命令來檢查 # rpm –qa | grep httpd ,如果沒有輸出,則表明沒有安裝。下圖是某個安裝了Apache伺服器輸出的一個輸出範例。 提示:如果是以源碼安裝的apache伺服器,則此種方法無效,需要用find工具搜尋httpd文件是否存在。 1、RPM包的安裝。Linux的安裝光碟和互聯網上,都可以得到apache的RPM安裝包,然後把安裝包複製到硬盤,並切換到安裝包文件所在的目錄。本案以httpd-2.0.52-9.ent.rpm為例,執行命令 # rpm –ivh httpd-2.0.52-9.ent.rpm ,然後再執行 # rpm –ivh httpd-manual-2.0.52-9.ent.rpm 把手冊也安裝上去。 2、源碼安裝。到網站www.apache.org下載欲安裝的版本,筆者喜歡嘗試最新的版本,當前的最新有效版本為httpd-2.2.0.tar.gz 。在httpd-2.2.0.tar.gz 文件所在的當前目錄解壓文件 # tar zxvf httpd-2.2.0.tar.gz ,然後切換目錄到 httpd-2.2.0 ,進行配置 # cd httpd-2.2.0.tar.gz ; ./configure --prefix=/usr/local/apache ,順利完成這步後,接著進行編譯安裝 # make;make install 。其中,配置這一過程,使用了選項“--prefix=/usr/local/apache”來指定apache的安裝目錄,使apache伺服器所需的大部分文件都被複製在這個目錄裏。實際上,配置是一個很靈活的選擇,根據需要可以添加更多的選項,來支援更多的功能。由於這裡打算先講述基本功能,其他選項將在後面的應用中逐步增加。 配置文件 Apache的配置文件是httpd.conf,一般在/etc/apache2/http.conf或者/etc/http/conf或/usr/local/apache/conf目錄,以rpm包形式安裝的apache的配置文件的位置是/etc/httpd/conf/httpd.conf。對 apache伺服器進行得最多的操作恐怕就是在不時更改這個文件的內容。當然,如果只是運行簡單的靜態網頁,也可以不用對它做任何更改。 打開配置文件httpd.conf,可以獲悉根文檔的目錄位置。前面安裝的apache的根文檔位置是/usr/local/apache/htdocs(rpm包安裝的apache的根文檔位置是/var/www/html),欲運行自己的網站,需要把做好的網頁文件和目錄複製到apache的根文檔才可以。當初,我在配置apache伺服器的時候,在這一步費了不少周折。 上傳網頁文件及目錄 上傳網頁文件及目錄的最佳方式是啟用ftp服務。關於怎樣安裝、配置、啟用ftp服務在這裡不再介紹。創建一系統用戶,使該用戶對目錄/usr/local/apache/htdocs具有讀寫許可權或者該用戶的主目錄為/user/local/apache/htdocs。在這裡我們創建一用戶,使其主目錄為apache的根文檔目錄。# useradd –d /usr/local/apache/htdocs webuser //添加的用戶為webuser, # passwd webuser //再給該用戶設置一個訪問口令。這樣就可以很方便的修改或上傳網頁文件和目錄了。有的人認為,用ssh客戶端工具也可以實現文件的上傳,但這是不方便的,因為ssh客戶端工具只可以傳送文件而不能上傳目錄。 啟用/關閉apache服務 上面的步驟都準備好以後,就可以啟用這個網站伺服器了。啟用方法如下: # /usr/local/apache/bin/apachctl start //源碼安裝的啟動方式 #/usr/local/apache/bin/apachectl stop # service httpd start //rpm包安裝的啟動方式 # service httpd stop 如果不出意外,apache伺服器將如我們所期待的那樣運行起來,我們只要在某臺能訪問apache伺服器的電腦瀏覽器裏輸入apache伺服器的IP地址或者預先解析好的域名,網站的主頁就會出現在瀏覽器裏。在apache伺服器端,通過輸入命令 # ps -aux | grep httpd 檢查apache伺服器是否正在運行。到此,一個具備基本功能的apache伺服器誕生了。 虛擬主機 有時候,我們可能需要用一個apache伺服器來做多個web伺服器,比如運行幾個不同的網站,這樣就可以大大地節省開支。 使用虛擬主機大致有以下幾個步驟: 1、 確定使用虛擬主機的方式。虛擬主機有基於域名、IP、端口等幾種形式,應該根據自己的實際情況來決定。 2、 修改配置文件/etc/httpd/conf/httpd.conf或 / usr/local/apache/conf/httpd.conf.在這個文件裏,已經給出了如何更改的範例,它是以註釋方式出現的。只要按照範例的格式添加需要的內容即可。然後保存退出配置文件。 3、 域名解析(基於域名的虛擬主機)。這一步需要在域名伺服器上進行。 4、 啟用/關閉虛擬主機。啟用/關閉apache守護進程即可,但這將關閉所有的web服務。能否單獨關閉某個虛擬主機,我本人沒這方面的經驗。 接下來,我就給出以個虛擬主機的實例。先描述一下需求:一台伺服器,要求運行一個以PHP為腳本的網站,另外還要用它來做網路流量監控(需要web服務)。在這裡,我們採用二進位源碼包的方式來安裝配置apache虛擬伺服器,以便於對apache伺服器有更深刻的理解。 (一)安裝apache伺服器。從www.apache.org下載包httpd-2.2.0.tar.gz到目錄/root,然後執行操作 # tar zxvf httpd-2.2.0.tar.gz //包解壓 # cd # tar zxvf httpd-2.2.0. #./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max # make # make install 到這兒,apache就算安裝好了,先測試一下,運行命令 # /usr/local/apache/bin/apachectl start ,然後在與之聯網的電腦的瀏覽器裏輸入運行apache服務的電腦的IP地址,出現測試頁面表明配置一切正常。 (二)安裝PHP。下載包php-4.3.11.tar.gz到目錄/root,然後執行下面的操作 # tar –zxvf php-4.3.11.tar.gz //解壓文件 #./configure -–prefix=/usr/local/php -–with-apxs2=/usr/local/apache/bin/apxs //正常//完成後會在/usr/local/apache/modules 裏生成文件 libphp4.so,並且會在//apache的配置文件httpd.conf里加上一行 LoadModule php4_module //modules/libphp4.so # make # make install #cp php.ini-dist /usr/local/lib/php.ini //拷貝文件 完成後看是否真在目錄/usr/local/apache/modules生成文件libphp4.so,再打開配置文件httpd.conf中看 LoadModule php4_module modules/libphp4.so是否被自動追加。 (三)修改apache配置文件/usr/local/apache/conf/httpd.conf。加入行 TypeAdd application /x-httpd-php .php4 到307行的位置,當然其他位置也是可以的。請特別注意:.php4前面有一個空格。我第一次配置php整合apache的時候就犯了這個錯誤,用了好幾天的時間才弄明白的。Php前面那個“.”(小黑點)一定不要寫漏了,會有什麼後果,請讀者自己去嘗試一下。 (四)啟動一下apache伺服器。找幾個php腳本的網頁文件,把它複製到apache指定的根文檔目錄/usr/local/apache/htdocs,然後在與之聯網的電腦的瀏覽器中輸入apache所在機器的URL(形如 http://192.168.100.10/test.php),來檢驗一下配置是否成功。 (五)創建虛擬伺服器。Apache/2.2.0與以前的版本有些差異,它是以包含文件的方式來載入用戶定義的虛擬主機配置,前面的版本定義虛擬主機就在httpd.conf文件中。我們還是先在主配置文件中把虛擬主機的配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf 包含進來;具體的操作就是把行 #Include conf/extra/httpd-vhosts.conf 的註釋去掉,使之成為Include conf/extra/httpd-vhosts.conf,這一行在httpd.conf的行號是394。然後保存後退出。接著我們打開文件/usr/local/apache/conf/extra/httpd-vhosts.conf,其默認狀態如下: # <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /www/docs/dummy-host.example.com ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> 等我們先安裝配置mrtg,然後再回過頭來修改文件/usr/local/apache/conf/extra/httpd-vhosts.conf。 (六)啟用交換機的snmp功能。要監控連接在交換機每個端口的伺服器的網路流量,必須啟用交換機的snmp,這樣就不必更改被監控的伺服器的任何設置。關於怎樣啟用交換機的snmp,請參照相關文檔。 (七)安裝和配置mrtg。把套裝軟體下載到硬盤,解壓後直接安裝就是。配置mrtg有點複雜,在這裡僅僅給出方法,具體意思就不做說明,請大家自己去查手冊。 #./cfgmaker --global "WorkDir: /usr/local/mrtg/html" --global "icondir: /mrtg" --global "language: chinese" --global "Options[_]: growright,bits" --show-op-down --ifref=nr --ifdesc=descr --output=/etc/mrtg/mrtg.cfg [email protected]>/dev/null //是一個整行,交換機的snmp的 //community的值是public #./ indexmaker -t "title" -o /usr/local/mrtg/html/index.html /etc/mrtg/mrtg.cfg (八)修改虛擬主機配置文件。需要指定根文檔目錄、伺服器名稱這幾項。 NameVirtualHost * <VirtualHost *> ServerAdmin [email protected] //假定域名為sery.com DocumentRoot /usr/local/mrtg/html ServerName mrtg.sery.com ErrorLog /usr/local/apache/logs/error_log CustomLog /usr/local/apache/logs/access_log combined DirectoryIndex index.html index.php </VirtualHost> 保存後退出。如果要對虛擬主機的訪問進行用戶驗證,還需要在apache的主配置文件對虛擬機的根文檔目錄進行相關的處理。把下面的行插入到apache的主配置文件httpd.conf中。 <Directory "/usr/local/mrtg/html"> AuthName "mrtg AuthType Basic AuthUserFile /usr/local/apache/.mrtg //帶點是為了使文件的屬性為隱藏 require valid-user </Directory> 保存後退出。然後運行命令 # /usr/local/apache/bin/htpasswd –c /usr/local/apache/.mrtg sery 按照提示設定用戶sery的訪問口令。 (九)做域名解析。在域名伺服器上解析主機mrtg.sery.com. (十)啟用apache服務。用指令 # ps –aux | grep httpd 檢查apache是否正常運行,然後在另外的電腦的瀏覽器裏輸入apache伺服器的URL,如輸入www.sery.com則應該訪問到主配置文件設定的網頁,如果輸入mrtg.sery.com則訪問上面設定的虛擬機頁面,並且需要輸入正確的用戶名和口令才能訪問。 總結 通過上面的實踐,我們可以得出這樣一個結論:apache伺服器功能設定的主要操作就是修改配置文件—主配置文件httpd.con及包含配置文件。當然,apache的配置不僅僅是上文所描述的那些,可以說是非常豐富,也是非常靈活的,限於篇幅,不再詳敘。至於要讓apache隨系統啟動,可以把守護進程/usr/local/apache/bin/httpd&加在文件/etc/rc.local裏。 偏方:為了在同一環境下使用更多的apache服務,可以安裝多個apache到不同的目錄,安裝目錄在安裝過程中的配置操作 ./configure – prefix=<安裝目錄> 制定,所有apache的配置原則都是一致的。所有配置完成後,把他們全部啟動起來。關於配置多個虛擬主機與安裝多個apache服務,究竟有多大的差別,望各位讀者自己去做評判。 2005-12-30 於白石橋 |
2022-08-17
2022-11-06
2022-08-17
2022-08-14
2022-07-18
请发表评论