2013-08-05 76 views
-1

我在加載我網站的某些頁面時出現內存限制錯誤。如何解決共享主機中的內存限制問題

我的問題是,我沒有權限修改php.ini中的memory_limit,所以有沒有其他方式來覆蓋此設置?

我收到以下錯誤。

Fatal error: Allowed memory size of 94371840 bytes exhausted (tried to allocate 122880 bytes) in /xx/xx/xx/plugins/otbcCompanyPlugin/lib/model/om/BaseOtbcCompanyCompanyPeer.php on line 1567 

我想:

ini_set('memory_limit', '512M'); 
echo ini_get('memory_limit');exit; // prints 90M 

,我嘗試在.htaccess

<IfModule mod_php5.c> 
php_value memory_limit 512m 
</IfModule> 

<IfModule mod_php.c> 
php_value memory_limit 512m 
</IfModule> 

以下,但沒有奏效。

,您可以檢查phpinfo().

所以有什麼事被我錯過了什麼?

+2

首先,你確定,你是否真的想分配那麼多的內存? – Leri

+0

通常,更改共享主機上的內存限制是不可能的。共享主機的想法會產生反作用。無論如何你需要這麼多空間? 512 MB聽起來像是瘋狂的RAM。想象一下,10人同時致電您的網頁。 –

+0

爲什麼你需要那麼多的記憶?它是一個特定的函數/數據庫查詢導致該問題?你能優化它嗎? – Laurence

回答

0

,你可以嘗試添加您的歐文php.ini文件中至極指定:

memory_limit = 512M 

這樣做:

  1. 在你的根文件夾中創建一個php.ini文件
  2. add memory_limit = 512M
  3. 創建.htaccess文件並添加以下行:

SetEnv PHPRC /home/username/folder/php.ini

,這將載入您的自定義指令在php.ini

,以確保只運行

<?php phpinfo() ?> 
0

我也遇到同樣的問題。但它很容易:

cPanel>部分軟件/服務>選擇PHP版本菜單。

點擊切換到PHP擴展,那裏你會看到提升php內存限制爲memory_limit的選項。

在某些主機中,您也可以從這裏配置自定義php.ini文件。