我有一個Ubuntu 10.04服務器,運行PHP 5.3.2,我已經在我的php.ini文件中設置這些行:magic_quotes的不會消失
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
有沒有其他的php.ini文件(我搜索了整個硬盤驅動器),我檢查了所有的apache2配置文件(包括整個硬盤上的所有.htaccess文件),並且其他地方都沒有引用。
但是:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
var_dump(get_magic_quotes_gpc());
?>
產生這樣的輸出:int(1)
也就是說,魔術引號都在,這是通過將任何類型的帶引號的要求容易覈查,它們將被報出來。 我已通過添加以下到我的根.htaccess文件固定此:
php_flag magic_quotes_gpc Off
上述代碼現在產生所期望的結果:int(0)
,並且沒有輸出被引用。
所以問題:爲什麼,親愛的上帝爲什麼,首先是魔術引號?是的,我知道這個問題是similar to others已被問及。我不是在尋找「快速修復」,是的,我知道魔術引號將被刪除在PHP 5.4。但事實是,在5.4出現後(不同的客戶端等),我需要維持向後兼容性幾年,所以我試圖弄清爲什麼魔術引號出現了。我知道我可以通過在我的根.htaccess文件中添加一行來解決這個問題(如我所示),但我更願意更好地理解我的php.ini設置如何在首位被覆蓋。
那麼,有沒有人有任何想法如何可以打開?
我重置不僅阿帕奇,但重新啓動整個服務器(多次)。重置不會修復它。至於Debian/Ubuntu維護者,他們如何解決apache和php配置文件?你是說這是由操作系統處理的東西嗎?如果是這樣,爲什麼.htaccess文件繞過它,你能提供任何證據這就是發生了什麼? – cegfault 2012-03-06 09:25:51