wordpress出现wordpress out of memory的错误怎么办
真是纠结,刚在登陆我的wordpress后台的时候发现网站无法打开,只能打开登陆页面,其他页面一直是无法响应……马上打开网站日志,查看错误文件发现错误时:out of memory (allocated 9699328) (tried to allocate 393216 bytes)意思很简单:内存溢出。
也就是内存不够的意思,二话不说先恢复网站再说,直接重启apache,重启后正常……但是问题出现了不能就这样忽略掉呀,如果不处理肯定下次还会出现这种问题,既然提示内存不足那么就我直接调大wordpress运行的内存,这是最简单的方式了。
再想一想wordpress哪设置了内存大小呀,有点影响wp-config.PHP里面有,打开找一找,怪了,没有……经过漫长的寻找终于在wp-includes/defaule-constants.php 中找到,在wp_initial_constants方法中,方法是这样写的,[无线通信模块]主要的几句是:1 if ( !defined('WP_MEMORY_LIMIT') ) {2 if( is_multisite() ) {3 define('WP_MEMORY_LIMIT', '64M');4 } else {5 define('WP_MEMORY_LIMIT', '32M');6 }7 }89 if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {10 define( 'WP_MAX_MEMORY_LIMIT', '256M' );11 }第一行:如果没有定义WP_MEMORY_LIMIT第二行:如果网站只有一个(可以在一个wordpress建立多个站)第三行 如果有多个网站就设置wordpress的内存为64M第四行:如果没有多个网站就设置他的内存为32M(哈哈,找到了,wordpress默认的大小为32M)第9行:如果设有设置WP_MAX_MEMORY_LIMIT最大内存的话第10行:如果没有设置最大内存的话,就定义最大内存为256M……综上所述:wordpress设置默认的内存为32M,如果内存不够用,最大不会超过256M……256M实际上已经够大了,不过感觉最小32M太小了,改,这个一定得改,把他改成100M,默认100M所以在wp-config.php中增加一行配置:define("WP_MEMORY_LIMIT", "100M");把默认的32M改成了100M……这样总行了吧,改后继续观察……建博客半年第一次发生这种事情……更多 wordpress内容请看 wordpress 专题在想想,这样改的确是改了wordpress的,但是php也有限制呀,php限制了的话,wordpress设置成1G都是没用的,打开php.ini文件,查看一下默认的php的内存多大,找到memory_limit默认的是128M,memory_limit = 128M哦,原来如此,php设置的最大内存是128M,所以上面的wordpress配置中的256M是没有作用的,php这里限制在128M以内。
经过这几个分析统一起来,最终的wordpress的内存设置是:最小100M,最大128M,内存大小在2者之间变动。
在观察一段时间,如果没有出现错误的话就这样,再发生内存不足的问题,果断把php中的128M改成256M……友情提示:我敢保证我的模板,我在模板中写的代码没有任何性能问题,作为一个超级软件设计师这点自信还是有的……如果你的wordpress老是经常内存不足,就要在模板,在自己写的代码上找原因,因为性能低下的代码用超级计算机都是没用的,给你一台银河计算机还是照样会内存溢出……
为什么程序员不能用中文来编程
编程不用中文的原因:现在的编程软件全部都是英文的是因为计算机技术最先产生于美国,我们使用的操作系统基本是国外的,编程软件大都基与他们的操作系统.另外英文字符也有其自身的优势(在计算机系统信息识别上)当有一天我国有拥有自己知识产权的丰富的计算机软.硬件核心技术的时候,就能实现这一点!编程的语言目录:* CSS Cascading Style Sheets 层叠样式表*.NET是微软2002年,为开发应用程序创建的一个富有革命性的新平台*ActionScriptActionScript是Flash的脚本语言,与JavaScript相似,ActionScript是一种面向对象编程语言。
*APL、A+和J*AdaAda是一种表现能力很强的通用程序设计语言*汇编语言 汇编语言(Assembly Language)是面向机器的程序设计语言*易语言是全中文语言编程中最为强大的一个编程语言*AWKAWK是一种优良的文本处理工具*Basic是一种设计给初学者使用的程序设计语言oQBasicQBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初学者通用指令代码)语言的一个变种,由美国微软公司开发oVisual BasicVisual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言*VBScriptVBScript是Visual Basic Script的简称,即 Visual Basic 脚本语言*BrainfuckBrainfuck是一种极小化的计算机语言*C、C++ 、C# C语言是一种面向过程的计算机程序设计语言; C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。
oObjective-C通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言*ClipperClipper芯片主要用于商业活动的计算机通信网*COBOL一种适合于商业及数据处理的类似英语的程序设计语言*dBasedBASE是第一个在微型计算机上被广泛使用的数据库管理系统(DBMSE语言以简体中文作为程序代码进行编程操作。
*PASCAL、DelphiPascal是一种计算机通用的高级程序设计语言 ;Delphi是全新的可视化编程环境,是一种方便、快捷的Windows应用程序开发工具*Forth由Charles H. Moore发展出来在天文台使用的电脑自动控制系统及程序设计语言,允许使用者很容易组合系统已有的简单指令,定义成为功能较复杂的高阶指令。
* Fortran 译为“公式翻译器”,它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域。
*FoxPro是由美国Fox Software公司于1988年推出的数据库产品*F#F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言*FavaFava语言是一个小型的解释语言,它主要面向于系统测试领域及小型嵌入式设备。
*IDLIDL 是一种数据分析和图像化应用程序及编程语言*GoGo语言是谷歌2009发布的第二款开源编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
*JavaJava是由Sun Microsystems公司于1995年5月推出的Java程序设计语言,他是一种面向对象的跨平台语言,可以在多种平台上运行。
支持开源。
大量的类库。
大量的开源项目。
是一种非常强大的编程语言!*JavaScriptJavascript是一种由Netscape的LiveScript发展而来的脚本语言*J#Visual J# 是一种工具,供 Java 语言程序员用于构建在 .NET Framework 上运行的应用程序和服务*LISP一种基于λ演算的函数式编程语言。
*LuaLua 是一个小巧的脚本语言*LOGO是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程*Module在软件工程中,指较高一级程序或模块使用的一个单元或模块*NuvaNuva语言是一种面向对象的动态脚本语言 Nuva语言的设计目的是用于基于模板的代码生成*PerlPerl 一般被称为“实用报表提取语言”(PracticalExtraction andReportLanguage),也做“病态折中垃圾列表器”(PathologicallyEclectic Rubbish Lister*PHPPHP 是一种 HTML 内嵌式的语言*PL/IPL/I是Programming Language One的简写。
当中的“I”其实是罗马数字的“一”。
它是一只IBM公司在1950年代发明的第三代高级编程语言*PrologProlog(Programming in Logic的缩写)是一种逻辑编程语言*Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言*RR是用于统计分析、绘图的语言和操作环境*RubyRuby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言*SchemeScheme,一种系统设计语言,由LISP语言发展而来,属于lisp的一种方言。
与其他lisp不同的是,scheme是可以编译成机器码的。
Scheme的一个主要特性是可以像操作数据一样操作函数调用* Smalltalk 一种面向对象的程序设计语言 一种程序设计环境 一个应用开发环境(ADE)* Tcl/Tk 是一种 脚本语言*Visual FoxProVisual FoxPro原名FoxBase,是美国Fox Software公司推出的数据库产品*快手(AAuto Quicker) AAuto是专用于桌...
如何修改PHP的memory
在运行PHP程序,通常会遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的错误, 这个意味着PHP脚本使用了过多的内存,并超出了系统对其设置的允许最大内存。
解决这个问题,首先需要查看你的程序是否分配了过多的内存,在程序没有问题的情况下,你可以通过一下方法来增加PHP的内存限制(memory_limit)。
检查php的内存限制值为了查看这个值,你需要建立一个空的php文件,比如view-php-info.php。
然后将一下代码贴到里面。
将这个脚本放到你的Web服务器上,然后在浏览器中调用它。
这时你可以看到你的PHP环境配置的信息,其中有一部分是关于“memory_limit”的, 如下图:注:你可以用这种方法来查看php的其他参数设置,不仅仅是memory_limitmemory_limit应该设为多少?这个完全依赖于你的应用的要求。
比如Wordpress,运行起核心代码需要32MB。
Drupal 6则要求这个值最小为16MB,并推荐设置为32MB。
如果你又安装不少的插件(plugins),尤其是那些要进行图像处理的模块,那么你可能需要128MB或更高的内存。
如何设置memory_limit方法1: php.ini最简单或常用的方法是修改php.ini1.首先找到对你的网站生效的php.ini文件 由于有多个地方都可以设置php的参数,找到正确的配置文件,并进行更改是首先要做的一步。
如果你上面的方法建立了php文件来查看其配置参数,则你可以找到“Loaded Configuration File”这一项,以下是个例子:对于Linux用户,你可以通过执行“php -i | grep Loaded Configuration File”来找到对应的配置文件。
而Windows用户,你可以尝试修改你的php安装目录下的php.ini。
2.编辑php.ini 在php.ini中,找到“memory_limit”这一项,如果没有,你可以在文件的尾部自己增加这个参数。
以下是一些设置范例memory_limit = 128M ; 可以将128M改为任何你想设置的值保存文件3.重启web 服务器 如果是web服务器使用Apache, 则执行:httpd restart有些情况下,你可能不被允许私修改php.ini。
比如如果你购买了虚拟主机服务,但是你的服务商确禁止你修改这个文件。
那么,你可以需要考虑用其他方法来增加memory_limit的值。
方法2: .htaccess说明: 这种方法只有在php以Apache模块来执行时才生效。
在你的网站的根目录下找到“.htaccess”文件,如果没有,可以自己创建一个。
然后把以下配置放入其中php_value memory_limit 128M ; 可以将128M改为任何你想设置的值方法3: 运行时修改php的内存设置在你的php代码中增加以下命令行即可。
ini_set('memory_limit','128M');memory_limit修改失败如果你使用虚拟主机,有可能会出现memory_limit的值修改失败。
这个需要联系你的服务商看怎么处理,通常他们限制了可以设置的最大值或者根本就不允许你修改。
如果他们的环境真的无法满足你的要求,那么你可能要考虑换一个主机服务商。
linux服务器的swap分区大小设置问题
SWAP 的用处是防止内存不足导致程序错误退出的。
但 SWAP 的性能烂地球人都知道,所以不要追求 SWAP 能当内存用。
apache 这种服务器程序主要是针对大型服务器设计的,内存必须上 G ,而且他真的是有多少内存就用多少内存的货。
沾满内存是可以增加性能的。
但另一个问题是你的网站代码是不是有内存方面的使用问题,有些代码会因为内存使用的不规范导致过多的内存占用。
服务器端的内存回收机制要等程序运行完毕退出,而且还有一个延迟后才会强行回收内存的。
有些如果有对外的链接,要等链接超时后才会对内存回收。
比如数据库,这也是内存占用大户。
总的来说,apache 现在最好上 64 位系统+ 4G 内存,至于服务器的 SWAP 不能按普通的计算机那种分配来考虑。
你要考虑的是保证程序不因为内存不足而报错,所以尽可能的大是一个方向(但其实真用不到……)。
小内存就不应该用 apache 。
SWAP 不能当内存用。
转载请注明出处51数据库 » wordpress 增大内存