2008-09-30 214 views
1

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()是非常友好的方式,所以特別要感謝那個指針。

回答

4
  1. 爲什麼你需要重命名的.htaccess到htaccess.txt
  2. 嘗試使用set_include_path()設置include_path中,看看有沒有什麼幫助(作爲中間修正)
  3. 驗證其php.ini中通過使用phpinfo()
1

您可以使用ini_set()更改每個請求上的include_path。這將避免必須使用htaccess。

0

我的htaccess在XAMPP下工作正常 - 雖然有些模塊默認是禁用的 - 您確定要啓用的模塊嗎?

+0

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

0

我認爲你正在尋找searchprase是:

AllowOverride All

我的猜測是,XAMPP中,你需要在httpd.conf中啓用了AllowOverride(通過一個.htaccess)。這是一種簡單的安全措施,可防止新手安裝可入侵的平臺:P

0

您需要在主http.conf文件中啓用AllowOverride All。看XAMPP_DIR /阿帕奇/ conf目錄內/ http.conf中)

0

簡單的做到這些:

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) 

其工作