现在的位置: 首页 > 综合 > 正文

给APACHE加上URLRewrite 功能的问题 PDF Print E-mail

2013年10月31日 ⁄ 综合 ⁄ 共 5467字 ⁄ 字号 评论关闭
昨天,在本机上配置APACHE + mod_rewrite ,把APACHE重编译了一把,在编译的过程,出现了几个问题。。。

首先,
sudo ./configure --prefix=/usr/server/apache --enable-so --enable-mods-shared=all --enable-rewrite

当然,我还不明白 --enable-mods-shared=all 之后,是否还需要 --enable-rewrite 这个选项。
APACHE的安装说明里有个示例

     ./configure --prefix=/sw/pkg/apache /
     --enable-rewrite=shared /
     --enable-speling=shared

我不知道 --enable-rewrite=shared 和 --enable-rewrite 的区别,但是我这样写:
sudo ./configure --prefix=/usr/server/apache --enable-so --enable-rewrite
却没有编译出 mod_rewrite.so 这个模块出来。

因为使用了:
--enable-mods-shared=all //编译全部的模块,对于不需要我们可以在httpd.conf去掉。

这个选项,所有模块都被编译出来了。

这种编译参数编译出来的httpd.conf 和 只使用:

./configure --prefix=/usr/server/apache  //(以前,我只用过这种编译方式)

编译出来的的 httpd.conf 有很大出入.

第一个出现的问题是,
Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

解决办法就是加上:
LoadModule authz_host_module modules/mod_authz_host.so

第二出现的问题是:
Invalid command 'CustomLog', perhaps misspelled or defined by a module not included in the server configuration

是 httpd-vhost.conf 里的一个选项,解决办法是加上:
LoadModule log_config_module modules/mod_log_config.so

第三个问题是:我明明设置了,DirectoryIndex index.html index.php 却仍然不能默认访问: index.php
解决办法:
LoadModule dir_module modules/mod_dir.so

最后一个问题,我感觉是我处理的最蠢的问题:
我在浏览器里(FF)输入某个 html 文件的地址,结果把HTML的源码给显示出来了,反反复复的在GOOGLE/BAIDU上找原因,反反复复的
AddType text/html html ,就是不行!折腾到12点半,我换了另外一个HTML文件的地址,正常显示。。。汗

附:

APACHE的部分编译选项说明:

--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--enable-module=so //打开 so 模块,so 模块是用来提 DSO 支持的 apache 核心模块
--enable-mods-shared=all //编译全部的模块,对于不需要我们可以在httpd.conf去掉。

--enable-cache //支持缓存
--enable-file-cache //支持文件缓存
--enable-mem-cache //支持记忆缓存
--enable-disk-cache //支持磁盘缓存
--enable-static-support //支持静态连接(默认为动态连接)
--enable-static-htpasswd //使用静态连接编译 htpasswd - 管理用于基本认证的用户文件
--enable-static-htdigest //使用静态连接编译 htdigest - 管理用于摘要认证的用户文件
--enable-static-rotatelogs //使用静态连接编译 rotatelogs - 滚动 Apache 日志的管道日志程序
--enable-static-logresolve //使用静态连接编译 logresolve - 解析 Apache 日志中的IP地址为主机名
--enable-static-htdbm //使用静态连接编译 htdbm - 操作 DBM 密码数据库
--enable-static-ab //使用静态连接编译 ab - Apache HTTP 服务器性能测试工具
--enable-static-checkgid //使用静态连接编译 checkgid
--disable-cgid //禁止用一个外部 CGI 守护进程执行CGI脚本
--disable-cgi //禁止编译 CGI 版本的 PHP

Windows 下 APACHE默认安装的配置文件(httpd.conf)里LoadModule 小节:

LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so

开机自运行APACHE/MySQL

打开: /etc/rc.local
,在 exit 0
的前面加上:

/usr/server/apache/bin/apachectl start
cd /usr/server/mysql
bin/mysqld_safe --user=database&

保存。

抱歉!评论已关闭.