2010-05-24 129 views
2

我有一個文件夾,並且該文件夾中的所有PHP文件(甚至更好,該文件夾或其中的任何文件夾中),我想作出一些更改PHP設置。我可以在這個文件夾中放置一個php.ini文件,並使用我想要更改的設置嗎?「覆蓋」 php.ini設置

如果是這樣,任何理由,這不會爲我工作?這是我自己的服務器。

謝謝!

編輯:我想能夠使用本地php.ini文件,我已經能夠與一些主機商做。這有可能嗎?

回答

3

它看起來像你想使用per-directory php.ini files其可作爲PHP 5.3的。如果它是你自己的服務器,我想你很樂意跟上最新的穩定版本(目前是5.3.2)。回到ini文件,引用該手冊頁:

自PHP 5.3.0起,PHP在每個目錄的基礎上支持.htaccess樣式的INI文件。這些文件只能由CGI/FastCGI SAPI處理。該功能廢除了PECL htscanner擴展。如果您使用的是Apache,請使用.htaccess文件獲得相同的效果。

除了主要的php.ini文件之外,PHP還會掃描每個目錄中的INI文件,從請求的PHP文件的目錄開始,一直到當前文檔根目錄(如$ _SERVER [ 'DOCUMENT_ROOT'])。僅具有PHP_INI_PERDIR和PHP_INI_USER模式的INI設置才能在.user.ini樣式的INI文件中識別。

+0

輝煌 - 這並沒有直接幫助解決問題,但讓我得到了一個非常類似的解決方案。謝謝! – Cam 2010-05-26 04:51:45

2

您必須爲此使用.htaccess文件。有PHP手冊有關的一段:

http://php.net/manual/en/configuration.changes.php

有關htaccess的文件的更多的一般信息,你可以閱讀:

http://en.wikipedia.org/wiki/Htaccess

http://httpd.apache.org/docs/2.0/howto/htaccess.html

+0

你確定我不能使用本地的php.ini文件?我無法使用htaccess,因爲我在php 5.0上,而且我無法升級,因爲它可能會破壞我的一些應用程序。 (+1 btw試圖幫助!) – Cam 2010-05-24 18:43:28

+0

.htaccess沒有任何與PHP有關的事情。您可以在PHP 4和PHP 5的.htaccess中更改PHP設置。但是,它dDO要求您將Apache作爲您的Web服務器運行,因爲其他Web服務器不使用.htaccess(但它們可能有類似的解決方案) – 2010-05-24 19:09:01

+0

無論您的PHP版本是什麼,htaccess都能正常工作。 「本地php.ini」將不起作用,因爲PHP只加載主ini文件和其中配置的其他文件。 – selfawaresoup 2010-05-24 19:12:48

0

代替修改php.ini文件的每個文件夾,你將需要修改通過.htaccess文件。用任何你喜歡的設置將文件保存在文件夾中。因爲在php.ini的變化被認爲是服務器寬

1

你也可以使用ini_set(),如果你想要做的代碼你不能用一個php.ini文件做到這一點。

+1

設置必須在腳本運行之前設置。這不是一個選項。 – Cam 2010-05-24 18:47:14

+0

啊,好的。我有一些應用程序,我在引導加載程序中包含了一個文件,將選項設置爲所需的值,然後繼續運行應用程序。我不知道任何性能問題,但它確實使值更容易管理。通常,我只是設置上傳限制和最大執行時間等。 – chris12892 2010-05-24 18:50:07

+0

是的。我很欣賞這種反應 - 這不是我所需要的:) – Cam 2010-05-24 19:01:41

2

的.htaccess文件通常是去Apache服務器的最佳方式。但是,要回答您的原始問題,是的,您可以在每個目錄中設置一個php.ini文件。但是,爲了使其工作,PHP必須設置爲以PHP-CGI運行。我的猜測是你作爲Apache模塊運行PHP。

查看PHP查找php.ini文件在何時何地尋找它這個鏈接以供參考:http://www.php.net/manual/en/configuration.file.php