Linux下增加Apache的rewrite Module(轉)
Linux下增加Apache的rewrite Module(轉)[@more@]公司一臺Linux伺服器,Apache預設安裝時候沒有載入任何Modules,最近要用到Apache的rewrite模組,經過一夜一天的努力,終於成功了,興奮....
現在列下幾個要點:
1. Apache安裝rewrite模組的時候需要DBM支援,否則無法編譯,所以首先要安裝一個GDBM 下載地址:
安裝步驟: 進入安裝目錄,./configure; make; make install; make install-compat; 否則無法編譯出ndbm.h標頭檔案.
2. 然後用Apache bin目錄下的apxs命令安裝
/var/apache/bin/apxs -c mod_rewrite.c {
gcc -DLINUX=22 -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_MODULE -I/var/apache/include -c mod_rewrite.c
gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
}
/var/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.so
然後在http.conf配置檔案里加上:LoadModule rewrite_module libexec/mod_rewrite.so
接下來用/usr/local/apache/bin/apachectl
stop停止apache,然後用再start,千萬注意,在這裡不能用restart或者graceful引數來重新啟動apache,必須先停止,然後再開始,或者是reboot機器,否則rewrite將不起作用。
-------------------------------------------------------------------------------------------------------------
I tried to include in my Apache Web server's configuration the mod_rewrite module, but when I restarted the server, I received an error:
Cannot load /usr/local/apache/libexec/mod_rewrite.so into server:
/usr/local/apache/libexec/mod_rewrite.so: undefined symbol: dbm_fetch
The problem, as it turns out, is that mod_rewrite.so is compiled incorrectly. It should be linked with a dbm library but it isn't.
If you have an up-to-date set of Apache source files, you can easily solve this problem by manually rerunning the last compilation step of this module, using the correct options. When you execute make mod_rewrite.so in the appropriate directory, it performs this final step:
gcc -shared -o mod_rewrite.so mod_rewrite.lo
Rerun gcc, this time adding a reference to the GNU gdbm library:
gcc -shared -o mod_rewrite.so mod_rewrite.lo -lgdbm
Next, copy the newly created mod_rewrite.so over to /usr/local/apache/libexec or wherever your Apache module files are located.
In my case, this was all that was needed to solve the problem. Your mileage may vary.
現在列下幾個要點:
1. Apache安裝rewrite模組的時候需要DBM支援,否則無法編譯,所以首先要安裝一個GDBM 下載地址:
安裝步驟: 進入安裝目錄,./configure; make; make install; make install-compat; 否則無法編譯出ndbm.h標頭檔案.
2. 然後用Apache bin目錄下的apxs命令安裝
/var/apache/bin/apxs -c mod_rewrite.c {
gcc -DLINUX=22 -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite -fpic -DSHARED_MODULE -I/var/apache/include -c mod_rewrite.c
gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
}
/var/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.so
然後在http.conf配置檔案里加上:LoadModule rewrite_module libexec/mod_rewrite.so
接下來用/usr/local/apache/bin/apachectl
stop停止apache,然後用再start,千萬注意,在這裡不能用restart或者graceful引數來重新啟動apache,必須先停止,然後再開始,或者是reboot機器,否則rewrite將不起作用。
-------------------------------------------------------------------------------------------------------------
I tried to include in my Apache Web server's configuration the mod_rewrite module, but when I restarted the server, I received an error:
Cannot load /usr/local/apache/libexec/mod_rewrite.so into server:
/usr/local/apache/libexec/mod_rewrite.so: undefined symbol: dbm_fetch
The problem, as it turns out, is that mod_rewrite.so is compiled incorrectly. It should be linked with a dbm library but it isn't.
If you have an up-to-date set of Apache source files, you can easily solve this problem by manually rerunning the last compilation step of this module, using the correct options. When you execute make mod_rewrite.so in the appropriate directory, it performs this final step:
gcc -shared -o mod_rewrite.so mod_rewrite.lo
Rerun gcc, this time adding a reference to the GNU gdbm library:
gcc -shared -o mod_rewrite.so mod_rewrite.lo -lgdbm
Next, copy the newly created mod_rewrite.so over to /usr/local/apache/libexec or wherever your Apache module files are located.
In my case, this was all that was needed to solve the problem. Your mileage may vary.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961267/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Apache Rewrite詳解Apache
- Apache之Rewrite和RewriteRule規則梳理以及http強轉https的配置總結ApacheHTTP
- nginx學習-ngx_http_rewrite_module模組NginxHTTP
- Nginx 實現 Rewrite 跳轉Nginx
- Linux下Apache遮蔽user-agentLinuxApache
- rewrite實現目錄之間的跳轉
- ubuntu15 安裝nginx 報錯:the HTTP rewrite module requires the PCRE library.UbuntuNginxHTTPUI
- NGINX使用rewrite實現http 跳轉 httpsNginxHTTP
- Linux環境下Apache ActiveMQ 基本安裝LinuxApacheMQ
- Linux下Apache服務的基本設定(企業級)LinuxApache
- linux下Apache+PHP+MySQL安裝配置攻略LinuxApachePHPMySql
- Linux系統下安裝Apache伺服器LinuxApache伺服器
- C. VMware下LINUX的虛擬機器增加磁碟空間Linux虛擬機
- Linux下域名IP互轉Linux
- NodeJS require a global module/package in linuxNodeJSUIPackageLinux
- Nginx RewriteNginx
- nginx rewriteNginx
- 在linux下使用Apache搭建檔案伺服器LinuxApache伺服器
- 1.3.1 apache的配置(下)Apache
- CentOS(Linux)下的apache伺服器配置與管理方法分享CentOSLinuxApache伺服器
- Linux:Python報錯:No module named MySQLdbLinuxPythonMySql
- openrewrite/rewrite: 轉換升級Java或Spring程式碼的自動化工具JavaSpring
- Linux apache怎麼限制併發連線和下載速度LinuxApache
- Linux下Apache(HTTP)基礎知識梳理-運維筆記LinuxApacheHTTP運維筆記
- linux apache 使用記錄LinuxApache
- Nginx rewrite 詳解Nginx
- Clang -rewrite-objcOBJ
- Linux/windows系統下Apache2安裝SSL證書教程LinuxWindowsApache
- linux系統下Apache服務啟動時80埠報錯LinuxApache
- windows環境下go module的使用和goland配置WindowsGoLand
- Linux+apache 跨域配置LinuxApache跨域
- [轉載] Java7中增加的新特性Java
- linux下簡單好用的埠對映轉發工具rinetdLinux
- 下載安裝ApacheApache
- nginx高階篇rewriteNginx
- MySQL Rewriter Query Rewrite PluginMySqlPlugin
- Rewrite %{HTTP_HOST}用法HTTP
- Rewrite %{REQUEST_FILENAME}用法
- Rewrite %{QUERY_STRING}用法