2012-12-03 30 views
0

好吧,我正在嘗試爲客戶端做一些工作。目前,我們只是試圖爲另一個開發人員創建的自定義函數執行修復,這會導出所有聯繫人的CSV。更改設置在php.ini max_execution_time,Drupal仍然有問題

由於他們添加了更多的聯繫人,該功能需要更長的時間,並且需要更多的內存(我們必須將內存限制從128M增加到256M,現在已經增加到512M)。

無論如何,我試圖運行CSV出口國,我收到以下錯誤,在不同的運行:

Fatal error: Maximum execution time of 30 seconds exceeded in /home/readyby2/public_html/includes/module.inc on line 19 

Fatal error: Maximum execution time of 30 seconds exceeded in /home/readyby2/public_html/sites/all/modules/contrib/views/modules/field/views_handler_field_field.inc on line 0 

和現在每一次我得到一個內部服務器錯誤500

請注意,此功能已工作過 - 我已經看到它的工作。

現在,據我所知,這意味着我需要更改php.ini中的最大執行時間設置。

/public_html文件夾(這是Drupal安裝文件的保存位置)之外有一個php.ini文件,我修改了該設置 - 但仍然獲得了上述所有錯誤。我已分別將其更改爲60,90和0,沒有任何變化。

是否有其他地方爲Drupal安裝設置超時設置?我能找到正確的php.ini文件嗎?我在/public_html目錄或任何其他目錄中沒有看到。

我該如何解決這個問題?我已經提高了內存限制(服務器錯誤是否意味着服務器上沒有足夠的內存來執行此功能?)

任何建議或幫助都會有用。

作爲供參考,這是在Drupal 7中。PHP版本是5.x(我不記得確切的一個,認爲它是5.1,可以找出是否有必要)。

回答

2

通常php.ini文件是類似於/etc/php5/apache/php.ini或類似的地方。也許只是更簡單的設置/etc/php.ini

如果您在基於debian的系統上,您可能需要諮詢您的軟件管理系統:$> rpm -ql php5或apt替代方案。這會列出包中包含的文件。 php.ini文件應該在其中。根據您的分銷情況,您可能還需要查看包裹apache-mod_php5或類似物品。在您的包管理中搜索php,例如$> rpm -q --whatprovides /usr/bin/php5$> rpm -qa | grep -i php。在Drupal環境中調用phpinfo()。在輸出php指定哪個文件已被解析。

2

當正確的php.ini是,將要取決於很多你的託管環境,但你可以在其周圍迅速得到通過使用ini_set或腳本的set_time_limit功能。

你可以在settings.php中做ini設置,但是它對於整個站點來說是全局的。

ini_set('max_execution_time', 120);設置。php

或在您的腳本set_time_limit (120)如果PHP safemode打開,這不起作用!

+0

哪個更好?這或下面的答案? –

+0

我更喜歡settings.php,因爲如果你更新Drupal,那麼.htaccess可以被覆蓋。 –

1

另一個選項是將以下內容添加到Drupal的.htaccess

php_value max_execution_time 0 
+0

這是更好的選擇,還是更好的選擇? –

+0

@AndrewAlexander使用.htaccess是更安全的方式,因爲同一服務器上的其他項目/應用程序仍然有限。 –

+0

@Cobra_Fast,小錯誤:「php_value」,而不是「php_flag」 – David

1

你總是可以嘗試(在你的網站(網站/默認/ settings.php配置)的settings.php中看到,如果你得到了權利寫。

ini_set('memory_limit', '256M');

它overwride的php.ini。 但我不認爲你可以通過增加內存解決它(你不能每次有記憶問題的時間增加你的極限)。 你必須找到什麼產生這種達到極限(無限boucle,太多的結果...) 您可以隨時使用視圖模塊和csv出口,以良好的意見,以製作一個良好的csv:D只是想爲csv overwride尋呼機。