分类:PHP

WordPress: Fatal Error Memory Exhausted

今天一台 WordPress 突然报错

Fatal error: Allowed memory size of 268435456 bytes exhausted

这条 php 报错信息还是满常见的,一般修改 php.ini 中的 memory_limit 调高点儿就能解决了。但是今天这个办法失效了,我调到 1GB,还是报同样的错误。看样子这个参数没有生效。搜索了一下,发现一个解决办法:

打开 wp-config.php

加入下面两行

define(‘WP_MEMORY_LIMIT’, ‘512M’);
define(‘WP_MAX_MEMORY_LIMIT’, ‘512M’);

后面的数字,按照你服务器实际情况填写。问题解决了。

关于wordpress IP验证不当漏洞的解决办法

最近在一台阿里云上面搭建了一个 WordPress,结果后台有个“
云盾服务器安全服务 ” 老是提示 WordPress IP 验证不当漏洞。要你购买付费版本才可以修复,这种伎俩也太小看用户了。

找到 wp-includes/http.php 这个文件,在文件的 533 行附近,把

$same_host = strtolower( $parsed_home[‘host’] ) === strtolower( $parsed_url[‘host’] );

修改为 :

$same_host = (strtolower($parsed_home[‘host’]) === strtolower($parsed_url[‘host’]) || ‘localhost’ === strtolower($parsed_url[‘host’]));

修改好以后,在阿里云的云盾服务,这个漏洞右边,点击验证,就可以通过了。以后不会再次提示这个漏洞。

修复 WordPress RSS 输出空行错误

前几天有兄弟问我怎么博客好久不更新了,我说虽然更新的不勤快,但还是有更新啊。检查一下,发现原来是 WordPress 从去年开始输出的 RSS Feed 就出错了 This page contains the following errors: error on line 3 at column 6: XML d...

Read More.

用 selfoss 自己动手搭建 web rss 阅读器

用了好多年的 Google Reader 还有一个月就正式寿终正寝了,目前 Google 还没有收回成命的迹象,唉。虽然国内国外有很多类似服务,但或多或少有些问题,那有没有可能自己搞个呢(不讨论桌面客户端和移动客户端)?

当然可以,托开源社区的福,有好多 rss reader web 程序可以拿来直接用。最近比较有名的是 Tiny-Tiny-RSS,但是这货我用下来,更新源要点两次,灰常不爽,UI 也比较老土;比较老牌的 rsslounge 已经停止更新,项目页上的官网也已经指向 selfoss。那就来看看 selfoss 吧。 Read More.

修改 WordPress 用户登录 Cookie 过期时间

WordPress 默认的用户登录 Cookie(Auth Cookie) 过期时间并不算太长,在勾选了“记住我”的情况下为 14 天,否则为 48 小时。在常规使用的情况下,最长为14天的过期时间已经够用,但如果要构建一个需要长期保持登录状态的项目的话,14 天显然是不够的。幸好 WordPress 提供了一个 hook 允许自行修改 Cookie 过期时间,只需要一个简单的 filter 就可以实现。

1
2
3
4
5
6
7
add_filter('auth_cookie_expiration', 'custom_cookie_expiration', 99, 3);
function custom_cookie_expiration($expiration, $user_id = 0, $remember = true) {
    if($remember) {
        $expiration = 31536000;
    }
    return $expiration;
}

把上面的代码粘贴到当前主题的 functions.php 文件里,就可以把在勾选“记住我”的情况下把 Auth Cookie 的过期时间设置为 365 天,$expiration 为 Auth Cookie 过期时间的时间戳,你可以自行设定。

给 windows 下的 nginx + php 添加 zend 和 eAc

昨天我们简单搭建了 Windows 平台下的 nginx + php 环境,但是没有添加 zend 和 eac 加速器。原来添加 zend 的方法不行了,因为我们安装的是 nts (非线程安全)的 php,而原来的 zend 只是为 ts 的 php 编译的,直接装上会报错。

我找了下互联网,找到这么个东西 ZendOptimizer for PHP 5.2.1 nts,虽然不是最新版本,好歹能用。下载回来解压到 d:\wnmp\zend。在 php.ini 里最末位添加

[Zend]
zend_extension=”D:\wnmp\zend\ZendOptimizer.dll”

eAccelerator 也一样,要用 nts 版本的。到这里下载

另外,这个网站编译了很多 php 5.3.x 的版本提供下载,给安装 php 5.3 系列的朋友用。

下载回来后,放到 d:\php\ext 目录下,在 php.ini 末尾添加

[eAccelerator]
extension=”eAccelerator_nts.dll
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”D:\Temp\eAccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=””
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
eaccelerator.content = “shm_and_disk”

保存,重启 nginx + php,打开phpinfo,验证通过,结束。

windows 下的 nginx + php 环境搭建

这几天有一台 Web 服务器一直不定时出现无法访问的情况,远程一看,Apache 进程占用内存极高,而这台服务器偏偏内存不富裕,就像换成目前极度流行的 nginx 试试。

nginx 是一个轻量级的高性能 Http WebServer,以事件驱动方式编写,因此相比 Apache 而言,Nginx 更加稳定、性能更好,而且配置简单,资源占用较低。目前 Windows 下的稳定版本是 1.0.14,可以在官网免费下载。 Read More.

配置 IIS 6 用 FastCGI 方式加载 PHP5

到昨天为止,公司的服务器一直是用 ISAPI 方式调用的PHP,但是今天调试一个系统,必须要求 FastCGI 方式。

FastCGI 是可伸缩架构的 CGI 开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的 CGI 解释器的反复加载是 CGI 性能低下的主要原因,如果CGI 解释器保持在内存中并接受 FastCGI 进程管理器调度,则可以提供良好的性能、伸缩性等。

FastCGI 已经集成于 IIS7,我公司的服务器是 Windows 2003 的 IIS6,必需另外安装扩展。到微软网站下载吧 x86 / x64。微软也有官方的安装说明

Read More.

修复 Windows Installer

今天安装新版本的emeditor时,突然提示“不能访问 Windows Installer 服务,可能你在安全模式下运行 Windows ,或者Windows Installer 没有正确的安装,请和你的支持人员联系以获得帮助”。重启也没用,上网搜了搜,很多解决办法,总结如下:

Read More.

1 2 3 4