添加步驟:
如要額外安裝cgi,先找到mod_cgi.c及mod_cgid.c。一般在apache安裝包目錄下,如 ./httpd-2.2.25/modules/generators 。
#編譯安裝 cgi模塊
cd /usr/local/src/Apache-2.2.25/httpd-2.2.25/modules/generators
/usr/local/apache/bin/apxs -i -a -c mod_cgi.c
編譯成功后會輸出:
cd /usr/local/src/Apache-2.2.25/httpd-2.2.25/modules/generators
/usr/local/apache/bin/apxs -i -a -c mod_cgi.c
.... #省略掉了前部分內容
----------------------------------------------------------------------
chmod 755 /usr/local/apache/modules/mod_cgi.so
[activating module `cgi' in /usr/local/apache/conf/httpd.conf] #這行表示,在httpd.conf中已經加載了cgi module
#編譯安裝 cgid模板
cd /usr/local/src/Apache-2.2.25/httpd-2.2.25/modules/generators
/usr/local/apache/bin/apxs -i -a -c mod_cgid.c
編譯成功后會輸出:
.... #省略掉了前部分內容
----------------------------------------------------------------------
chmod 755 /usr/local/apache/modules/mod_cgid.so
[activating module `cgid' in /usr/local/apache/conf/httpd.conf] #這行表示,在httpd.conf中已經加載了cgid module
apxs參數含義:
-i 表示需要執行安裝操作。
-a 自動增加一個LoadModule行到httpd.conf文件中,以激活此模塊,或者,如果此行已經存在,則啟用之。
-n 增加或啟用的模塊名稱。
# 再次查看下配置文件 httpd.conf:
LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module modules/libphp5.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule cgid_module modules/mod_cgid.so
cgi與cgid模塊被加載。
#重啟下Apache
service httpd restart
結果報如下錯誤:
[root@localhost PHP-5.3.27]# service httpd restart
停止 httpd: [確定]
啟動 httpd:httpd: Syntax error on line 61 of /usr/local/apache/conf/httpd.conf: module cgi_module is built-in and can't be loaded
[失敗]
提示說:cgi_module 是內建模塊,即無需手動加載,所以我們把“LoadModule cgi_module modules/mod_cgi.so”注釋掉即可!
用命令 apachectl -l 去查看下哪些模塊被內建了
[root@localhost generators]# httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
[root@localhost generators]#
從上面可看出,mod_cgi.c 果然被內建了!
新增:
/usr/local/httpd/modules/mod_userdir.so
測試新功能(用戶擁有獨立網頁):
•1. 修改httpd.conf,啟用個人主頁功能
[root@www ~]# vi /etc/httpd/conf/httpd.conf
<IfModule mod_userdir.c>
#UserDir disabled
UserDir public_html
<Directory /home/*/public_html>
AllowOverride none
Options none
Order allow,deny
Allow from all
</Directory>
</IfModule>
2. 建立個人主頁測試網頁
~/public_html/index.html
添加權限:chmod o+x /home/jerry/
3. 重新啟動httpd服務
/etc/init.d/httpd restart
4. 修改sebool值
/getsebool -a | grep httpd | grep home
setsebool -P httpd_enable_homedirs on
4. 訪問測試
http://www.yeslab.com/~user