2014-10-19 44 views
0

我有一個安裝在C:\SP\php中的php的WAMP環境。每件事情都很好。 我最近希望將我的php.ini文件放在一個自定義目錄中:C:\SP\confs\,但它不起作用。PHP不加載自定義位置的php.ini配置(Windows 8上的Apache)

這裏是我的httpd.conf指令:

PHPIniDir "C:/SP/confs/" 
LoadModule php5_module "C:/SP/php/php5apache2_4.dll" 

C:/SP/confs/php.ini我有這樣的:

extension_dir = C:\SP\php\ext 
date.timezone = Africa/Lagos 

錯誤到處出現表明許多功能(如MySQL的)是不確定的。

phpinfo()結果如下:

Configuration File (php.ini) Path: C:\windows 

Loaded Configuration File: C:\SP\confs\php.ini 

Extension_dir: C:\php 

Default timezone: UTC (with warnings like: It is not safe to rely on the system's timezone settings....) 

我的服務器軟件是:Apache/2.4.9 (Win32) OpenSSL/1.0.1g PHP/5.5.11

現在這一切似乎表明,我的自定義php.ini被找到並加載(根據phpinfo()函數),但不知何故它的指令完全被忽略,以支持某些服務器默認設置。

現在,這怎麼可能?

回答

1

這是當你甚至WAMP包安裝apache/PHP的平常和惱人的錯誤:它不會設置extension_dir中,地獄破散

這裏是你的錯誤:

Extension_dir: C:\php 

對我來說應該是c:\ SP \ php \ ext吧?檢查是否有不被重寫你的

進入你的php.ini和糾正的extension_dir一個重複的extension_dir設置,它有各種各樣的bug,如果你留空(文檔指出:應該使用默認分機/文件夾......事實並非如此)

+0

感謝@Caio您的關注。就像它在問題中所說的,我在'php.ini'中有這樣的:'extension_dir = C:\ SP \ php \ ext'。沒有其他重寫'extension_dir'指令。更奇怪的是,'phpinfo()'列出了'Loaded Configuration File'作爲'C:\ SP \ confs \ php.ini',這是我正在使用的'php.ini'!另外請注意,不僅是'extension_dir',而且'date.timezone'都會被忽略。 – 2014-10-19 09:51:16

+0

我需要補充一點,出於某種原因,這個指令:'error_log = C:\ SP \ php \ php_errors.log'正在使用相同的'php.ini',因爲錯誤消息正確顯示在那裏。 – 2014-10-19 09:53:54

+0

不錯,我看起來正確的.ini正在加載,但它不接受一些配置。嘗試改變php.ini?如果你將它移動到Windows根文件夾,它將在那裏使用它。除此之外,不知道。我不知道你是如何安裝apache/php的,你是否擁有所有文件夾的管理權限?該進程可以訪問這些文件嗎? – 2014-10-20 14:40:43

-2

的PHPIniDir 「C:/ SP/confs /」

的LoadModule php5_module 「C:/SP/php/php5apache2_4.dll」

這些都是他們應該是錯誤的順序:

的LoadModule php5_module 「C:/SP/php/php5apache2_4.dll」

的PHPIniDir 「C:/ SP/confs /」

+1

出於記錄目的,這兩個聲明的順序不是問題,(即我沒有錯誤的順序)。就像我在上面對第一個答案的評論中所說的那樣,問題變成了ini文件中的語法錯誤。我糾正後一切都好了。 – 2016-04-08 18:04:57