8090午夜福利理论影视,99九九99九九精彩视频,国产成人免费高清激情视频,国产Av一区二区三区无码野战

loading

Loading

首頁 超級知識寶庫

Fatal error:Out of memory解決方法

字數(shù): (6301)
閱讀: (24108)
0

Fatal error: Out of memory (allocated 3670016)tried to allocate 12960 bytes)in E:\crmsaas\www\lib\applibbase.inc on line 5073如下圖:

206.jpg

通過搜索網(wǎng)絡(luò)和請教牛人,發(fā)現(xiàn)能夠得出來的錯誤類型原因和解決方案基本上只有幾種:

有幾種類似的報錯信息:

  • Fatal error: Out of memory (allocated 28835840) (tried to allocate 3981531 bytes) in [Blog root path]/wp-includes/class-http.php on line 1426
  • (similar message) in [Blog root path]/wp-admin/admin.php on line 40
  • (similar message) in [Blog root path]/wp-admin/includes/media.php on line 268
  • Fatal error: Out of memory (allocated 49545216) (tried to allocate 77824 bytes) in /home/xxxxx/public_html/xyz/admin.php(1758) on line 40
  • Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 147555 bytes) in [Blog root path]/wp-includes/wp-db.php on line 97

從表面上看這類報錯均是由于內(nèi)存不夠用導(dǎo)致的,但是究竟是什么導(dǎo)致了原本運行的很好的程序突然變成這個樣子呢?

我查看了一下官方網(wǎng)站的Requirements大體如下:

3.版本的WP需要PHP5.2.4或更高,MySQL5.0或更高,需要運行Apache或者Nginx做Web請求服務(wù)

To run WordPress your host just needs a couple of things:

  • PHP version 5.2.4 or greater
  • MySQL version 5.0 or greater

The requirements have changed as of WordPress 3.2. The minimum requirements for WordPress 3.1 are PHP 4.3 and MySQL 4.1.2.

That’s really it. We recommend Apache or Nginx as the most robust and featureful server for running WordPress, but any server that supports PHP and MySQL will do. That said, we can’t test every possible environment and each of the hosts on our hosting page supports the above and more with no problems.

    一般的主機或者空間提供商都是預(yù)先跑起來這些服務(wù)以后額外給你的php程序再提供最少16M 的內(nèi)存的(要是更大的話幾個G 的也有,當(dāng)然不是免費的:P),

接下來先來看看網(wǎng)絡(luò)上的解決方法吧

方法一:You can even consider adding a line in .htaccess file which will resolve the issue.  

php_value memory_limit 256M

就是在 .htaccess 文件中加上紅色的那行字

方法二:Add this to your wp-config.php file:

define ('WP_MEMORY_LIMIT', '256M' );

在你的 wp-config.php 文件中加上紅色的那行字

方法三:wp-settings.php,編輯這個文件,修改define('WP_MEMORY_LIMIT', '32M');

define('WP_MEMORY_LIMIT', '256M');

方法四:在你的博客目錄中添加一個 php.ini 文件,并且寫入下面那行

memory_limit=256M

方法五:其實是方法四升級版:在你的博客目錄中添加一個 php.ini 文件,并且寫入下面的內(nèi)容

register_globals=Off
safe_mode=off
magic_quotes_gpc=On
allow_url_include=Off
file_uploads=on
memory_limit=256M
max_executi alt=90
post_max_size=10M
upload_max_filesize=10M
max_input_time=300

以上列舉了很多方法,到底有沒有用呢? 逐一分析并嘗試:

方法一

htaccess文件是Apache服務(wù)器中的一個配置文件,它負責(zé)相關(guān)目錄下的網(wǎng)頁配置。

通過htaccess文件,可以幫我們實現(xiàn):網(wǎng)頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。

我們在此將php的memory的限制手動改為 256M大小,其實就是提高我們的php程序分配的運行時內(nèi)存空間,但是有沒有效果呢?

在一定情況下可能會有效果,因為這樣寫跟寫在配置文件中的效果其實是一樣的,但是有的主機供應(yīng)商可能會刻意屏蔽掉htaccess的功能。

方法二、方法三

都是在配置文件中提高我們的php程序分配的運行時內(nèi)存空間,但是有可能會有個疑問,假如我的主機供應(yīng)商只給我32M的空間我在這里設(shè)置有用么?其實這里設(shè)置的大小跟主機供應(yīng)商給你提供的大小沒有太多的對應(yīng)關(guān)系。舉個例子,就像在只有1G 物理內(nèi)存的情況下,你仍然可以運行占用2G 內(nèi)存的程序一樣,這里設(shè)置的差不多是邏輯上可以使用的內(nèi)存大小的意思,但是,有個問題要注意,如果物理內(nèi)存比較小而需要的比較多的話,系統(tǒng)可能會因為頻繁的頁置換導(dǎo)致系統(tǒng)的顛簸,也有可能主機資源管理控制軟件回把你的這堆進程kill掉。(后面這段不懂無所謂,也是因不同的主機而定)

另外:在PHP5.2.3-win32這個版本有個bug,PHP對于內(nèi)存的分配有泄漏的情況

當(dāng)你分配一個較大的內(nèi)存空間時,他無法正確編址    

PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 786432) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1310720) (tried to allocate 393216 bytes)

方法四、方法五:

這個php.ini 是php環(huán)境中最正統(tǒng)的設(shè)置文件,他這里的設(shè)置也是提高我們的php程序分配的運行時內(nèi)存空間。

但是:一般的php空間的話,管理員是不會開放整個php 運行環(huán)境的配置權(quán)限給你的,另外管理員還有可能強制指定整臺主機的配置文件只使用/etc/php/apache2-php5.3/php.ini (這個路徑可能不太一樣,本人本地電腦是一臺Gentoo+php5.3+apache2+mysql的機器)。所以也不一定起作用。

另外這樣設(shè)置完成后,還需要將環(huán)境變量重置一下,

SetEnv PHPRC [Blog root path]/php.ini

但是要執(zhí)行這條指令,一般的空間也是沒有辦法的,除非你是VPS。:)


        分割一下:如果上面的方法已經(jīng)解決問題了可以不用向后看了,后面是深層次原因


我們從程序這邊找找問題,是不是可以得到改善。就從這行代碼開始看吧。

經(jīng)過查看,我得出了一個結(jié)論,這個出錯的文件屬于多國語言翻譯的功能中的一塊,主要負責(zé)的是英文轉(zhuǎn)換成其他語言然后在后臺管理界面中顯示翻譯后的內(nèi)容。

function Translation_Entry($args=array()) {
// if no singular — empty object
if (!isset($args[‘singular’])) {
return;
}
// get member variable values from args hash
foreach ($args as $varname => $value) {
$this->$varname = $value;
}
if (isset($args[‘plural’])) $this->is_plural = true;
if (!is_array($this->translations)) $this->translations = array();
if (!is_array($this->references)) $this->references = array();
if (!is_array($this->flags)) $this->flags = array();
 

可以看到我在圖上標(biāo)注出來的這一小段代碼這段代碼的意思是在翻譯后的文件中取出翻譯好的字符串,在顯示時替換掉原來的英文,foreach是枚舉每一個字符串變量。
接著看翻譯后的文件是什么樣子的:

這個文件到底有多大呢?

可以看出,這個文件有599行,383747byte。共3313條記錄,在本機上,單單使用vim打開該文件時,MEM%占用達到0.4%,本人使用的電腦為4G 內(nèi)存,也就是說只是打開該文件時就需要占用掉16M左右的內(nèi)存,此時還沒有對這個文件中的字符串解析和替換,相信在進行這一系列操作時,占用會更多。

可以得出來一個結(jié)論:WordPress是個吃內(nèi)存大戶,尤其是中文版的wordpress,那如何解決呢?

解決:

當(dāng)你升級后發(fā)現(xiàn)進不去后臺了,那就嘗試登錄ftp,將wp-content/languages/ 下的文件刪光,嘗試下是不是可以了?

當(dāng)然,如果還是進不去的話,最好是將wp-content/plugins,目錄改個名字,即禁用掉了所有的插件,這樣的話,應(yīng)該內(nèi)存占用會變得非常少。

如果還是不可以的話,請留言吧,可以一起討論一下:)

1.發(fā)現(xiàn)了中文翻譯中,并不是按需進行字符串替換的,如能將此函數(shù)改為按需替換顯示的話,相信能夠大幅減少用于翻譯的內(nèi)存和CPU占用。

2.解決內(nèi)存占用問題的關(guān)鍵是如何讓你的合理使用內(nèi)存,而不是越大越好,當(dāng)然,如果能夠聯(lián)系空間提供商擴大內(nèi)存解決問題的話也是非常好的一種方法:)如果想省錢解決問題的話,就是采用英文版的不也是很好的嗎:)

3.正在看的一部分可能設(shè)計到權(quán)限提升的代碼,閱讀得不是非常明白,但是感覺有邏輯漏洞存在,可能會是一個后臺提權(quán)BUG。

4.寫的比較倉促,錯別字和表達不妥的地方還請大家指出。

coolfire同學(xué)提出了一種類似的方法,跟方法三方法四異曲同工

在網(wǎng)站根目錄(public_html)下創(chuàng)建一個文件php.ini,里面添加下面的代碼:

memory_limit = 64M

然后編輯同目錄下的.htaccess文件,在文件末尾添加以下代碼:

suPHP_ConfigPath /home/username/public_html/

用你控制面板的用戶名替換username,支持問題即可解決。 以上就是Fatal error:Out of memory解決方法!

本文發(fā)布于2016年12月09日02:37,已經(jīng)過了3069天,若內(nèi)容或圖片失效,請留言反饋

轉(zhuǎn)載請注明出處: 網(wǎng)際網(wǎng)

本文的鏈接地址: http://news.rovide8.cn/zhishi/2938.html

評論列表:
評論本文(1)
深圳綜合布線
回復(fù)
out of memory怎么辦;out of memory怎么解決;java out of memory;a卡 out of memory;out of memory xp;outofmemory怎么修復(fù);out of memory while;outofmemory修復(fù)軟件;iexplor out of memory

2018-04-21 13:11