htaccess文件,php,包括目录和窗口XAMPP配置噩梦

htaccess文件,php,包括目录和窗口XAMPP配置噩梦

问题描述:

XAMPP使为Windows配置本地LAMP堆栈变得轻而易举。所以启用htaccess文件是一件非常令人失望的事情。htaccess文件,php,包括目录和窗口XAMPP配置噩梦

我的问题:
我有一个PHP应用程序,需要Apache/PHP来搜索应用程序中包含的/ includes /目录。为此,必须在apache中允许htaccess文件,并且htaccess文件必须明确指定includes目录的位置。

问题是,我无法获得我的apache配置来查看这些htaccess文件。我有很大的麻烦在uni上安装这个应用程序,并让管理员在那里帮助安装。这应该不那么难,但由于某种原因,我只是无法让Apache发挥出色。

这是我的设置:

C:\ XAMPP
C:\ XAMPP \ htdocs中
C:\ XAMPP的\ apache的\的conf \ httpd.conf文件 - 在那里我做了以下
列出的更改 c:\ xampp \ apache \ bin \ php.ini - 这个文件的变化会影响php的安装
有趣的是c:\ xampp \ php \ php.ini的改变并不意味着什么 - 这不是ini影响php的安装。

以下行是我的httpd.conf文件

#AccessFileName .htaccess 
AccessFileName htaccess.txt 
# 
# The following lines prevent .htaccess and .htpasswd 
# files from being viewed by Web clients. 
# 
#<Files ~ "^\.ht"> 
<Files ~ "^htaccess\."> 
    Order allow,deny 
    Deny from all 
</Files> 

<Directory "c:/xampp/htdocs"> 
# 
# AllowOverride controls what directives may be placed in 
# .htaccess files. 
# It can be "All", "None", or any combination of the keywords: 
# Options FileInfo AuthConfig Limit 
# 
    AllowOverride All 
# 
# Controls who can get stuff from this server. 
# 
    Order allow,deny 
    Allow from all 
</Directory> 

以下是包含在整个htaccess文件做出补充: C:\ XAMPP \ htdocs中\程序\ htaccess.txt

<Files ~ "\.inc$"> 
    Order deny,allow 
    Deny from all 
</Files> 

php_value default_charset "UTF-8" 
php_value include_path ".;c:\xampp\htdocs\application\includes" 
php_value register_globals 0 
php_value magic_quotes_gpc 0 
php_value magic_quotes_runtime 0 
php_value magic_quotes_sybase 0 
php_value session.use_cookies 1 
php_value session.use_only_cookies 0 
php_value session.use_trans_sid 1 
php_value session.gc_maxlifetime 3600 
php_value arg_separator.output "&amp;" 
php_value url_rewriter.tags "a=href,area=href,frame=src,input=src,fieldset=" 

包含目录存在于指定的位置。

当我尝试访问,收到以下错误的应用程序:

Warning: require(include.general.inc) [function.require]: failed to open stream: No such file or directory in C:\xampp\htdocs\application\menu\logon.php on line 21 

致命错误:需要()[function.require]:无法打开所需 'include.general.inc'(包含路径=” 。; C:\ xampp \ php \ pear \ random')在C:\ xampp \ htdocs \ application \ menu \ logon.php上线21

包含路径c .. \ random \是在php中指定的上面列出的.ini文件。 xampp安装无法允许htaccess.txt文件中指定的另一个包含路径。

请帮忙!我猜测可能是httpd.conf或htaccess.txt文件有错误,但它似乎没有读取htaccess文件。我尽量做到尽可能全面,所以请原谅博文的冗长。

现在我知道一个解决方法,可以简单地将include_path添加到php文件,但我不打算有权访问我计划部署我的应用程序的位置上的php.ini文件。但是,我将能够请求服务器管理员允许htaccess文件。

更新:将htacces.txt重命名为.htaccess,并在httpd.conf文件中修正了相应的指令,并且似乎都起作用。该应用程序建议在httpd中命名htaccess.txt和ammend指令。这显然是错误的(至少对于xampp堆栈)。谢谢您的帮助。

顺便说一句,如果应用程序需要部署到多个位置,使用ini_set()是非常友好的方式,所以特别要感谢那个指针。

  1. 为什么你需要重命名的.htaccess到htaccess.txt
  2. 尝试使用set_include_path()设置include_path中,看看有没有什么帮助(作为中间修正)
  3. 验证其php.ini中通过使用phpinfo()

您可以使用ini_set()更改每个请求上的include_path。这将避免必须使用htaccess。

我的htaccess在XAMPP下工作正常 - 虽然有些模块默认是禁用的 - 您确定要启用的模块吗?

+0

我启用了mod_rewrite ..是否有其他MODS我需要启用? – 2008-09-30 13:10:07

我认为你正在寻找searchprase是:

AllowOverride All

我的猜测是,XAMPP中,你需要在httpd.conf中启用了AllowOverride(通过一个.htaccess)。这是一种简单的安全措施,可防止新手安装可入侵的平台:P

您需要在主http.conf文件中启用AllowOverride All。看XAMPP_DIR /阿帕奇/ conf目录内/ http.conf中)

简单的做到这些:

open file ...\xampp\apache\conf\httpd.conf 

find line "LoadModule rewrite_module modules/mod_rewrite.so" 

if here is a # before this line remove it.(remove comment) 

其工作