session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)

phpmyadmin允许提示错误:

Error during session start; please check your and/or webserver log file and configure your installation properly. Also ensure that cookies are enabled in your browser.

session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)
这是session存储目录没有执行权限。

方法和我之前提到的phpMyAdmin – Error Cannot start session一样。

打开php.ini,增加:

session.save_path = "/var/lib//session"

然后在给予目录:/var/lib/php/session" 执行权限。

Windows 10 IIS安装php manager和IIS URL Rewrite 2.0组件的方法

Windows 10中自带的Server:Microsoft-/10.0(使用Microsoft Web Platform Installer安装),然后这个10却让原本支持组件无法安装了, manager组件安装时提示“必须安装IIS7以上才可以安装”。那是不是真的就没法在新的IIS上安装了呢?显然不是的。自IIS7以来,微软的IIS更改并不大,架构一致,几乎所有IIS7能用的组件都能够在IIS7.7/8/8.5/10上安装。微软脑子秀逗,跳过了9,以为能解决版本识别的问题,没想到弄成10,还是出现了版本识别的问题,真是自己打自己的脸啊!

继续阅读“Windows 10 IIS安装php manager和IIS URL Rewrite 2.0组件的方法”

Plugin ‘FEEDBACK’ is disabled

MySQL低版本升级高版本一般会出现Plugin 'FEEDBACK' is disabled这个错误,通常还伴随The InnoDB memory heap is disabled问题一起出现。

如果是The memory heap is disabled错误可以在[mysqld]下方增加"_use_sys_malloc = 1",即使用系统自动分配内存。而Plugin 'FEEDBACK' is disabled只需要在[mysqld]下方增加“feedback=ON”即可开启。

参考MariaDB提供的文档:Feedback Plugin

Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler

mysql迁移至mariadb的时候出现:

Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler

解决办法:

停止MySQL,备份

service mysqld stop
\cp -a /var/lib// /var/lib/mysqlback

移除旧mysql,初始化mysql

继续阅读“Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler”

Windows,Apache 2.4.12,PHP-5.6.10-nts-Win32-VC11-x86,Zend Guard Loader

Windows下载的Zend Loader目前只支持PHP的NTS模式,apache需要加载mod_fcgid使用FastCGI运行PHP。介绍个来自Zend官方的apache + -nts + + mod_fcgid。

Zend官网下载:http://eu-up.zend.com/files/srv.exe
百度云盘:http://pan.baidu.com/s/1bp7iClL 密码: kyva
参考文档:Howto: Setting Up Apache, PHP (NTS) and Guard 7 Loader on Windows

需要注意的是zend官方的srv.exe里面php关于opcache与Zend Guard Loader的配置顺序和官方的Installing Zend Guard Loader居然是相反的(参考文章:Zend Guard Loader与Zend OPcache之间的顺序问题),不知道什么原因,但是srv.exe的配置方法也是生效的。

InnoDB: If you are attempting downgrade from MySQL 5.7.9 or later

: If you are attempting downgrade from 5.7.9 or later

这是一个版本问题,之前安装过mysql 5.7,再回到mariadb 5.5出现的问题。之后我搜了下网上很多人有这个问题。错误全文:

160916 17:03:21 mysqld_safe Starting mysqld daemon with databases from /var/lib/
2016-09-16 17:03:22 139911928530976 [Note] /usr/sbin/mysqld (mysqld 10.1.17-) starting as process 16541 ...
2016-09-16 17:03:22 139911928530976 [Note] : Using mutexes to ref count buffer pool pages
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: The InnoDB memory heap is disabled
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Compressed tables use zlib 1.2.3
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Using Linux native AIO
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Using SSE crc32 instructions
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Completed initialization of buffer pool
2016-09-16 17:03:22 139911928530976 [Note] InnoDB: Highest supported file format is Barracuda.
InnoDB: No valid checkpoint found.
InnoDB: If you are attempting downgrade from MySQL 5.7.9 or later,
InnoDB: please refer to http://dev.mysql.com/doc/refman/5.6/en/upgrading-downgrading.html
InnoDB: If this error appears when you are creating an InnoDB database,
InnoDB: the problem may be that during an earlier attempt you managed
InnoDB: to create the InnoDB data files, but log file creation failed.
InnoDB: If that is the case, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/error-creating-innodb.html
2016-09-16 17:03:22 139911928530976 [ERROR] Plugin 'InnoDB' init function returned error.
2016-09-16 17:03:22 139911928530976 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-09-16 17:03:22 139911928530976 [Note] Plugin 'FEEDBACK' is disabled.
2016-09-16 17:03:22 139911928530976 [ERROR] Unknown/unsupported storage engine: InnoDB
2016-09-16 17:03:22 139911928530976 [ERROR] Aborting

160916 17:03:22 mysqld_safe mysqld from pid file /var/lib/mysql/iZ236priv51Z.pid ended

继续阅读“InnoDB: If you are attempting downgrade from MySQL 5.7.9 or later”

Zend Guard Loader与Zend OPcache之间的顺序问题

我在做LAMP环境搭建的时候都会使用Zend Gurad Loader和Zend ,特别是WordPress缓存优化后效果提升非常大。Zend Guard Loader与Zend OPcache之间的顺序问题在XCache Zend OPcache在php.ini中的顺序这篇文章有所提到,这里做一个修正:

必须先加载Zend Guard Loader,后加载Zend ,参考文档:http://files.zend.com/help/Zend-Guard/content/installing_zend_guard_loader.htm继续阅读“Zend Guard Loader与Zend OPcache之间的顺序问题”

WordPress PHP 7下字符截取与文章内容输出

WordPress在PHP 7下理论是没有任何问题的,但如果自己开发的主题,有可能出现字符截取或者文字内容输出问题。

出现caption、img等字符未被截取掉,比如这种情况:

字符截取输出了短代码
字符截取输出了短代码

这个是archive页面截取文章部分内容作为简介,短代码未被截取掉。

解决办法:

$content = do_shortcode(get_the_content());
$content = wp_strip_all_tags( $content );
echo $excerpt = mb_strimwidth($content,0,330,'…','utf-8');

330表示截取字符长度,表示超出字符长度用代替,uft-8表示字符编码。

输出文章内容

7下部分WordPress在文章页会出现无法输出文章内容,由于

the_content();

失效,改为

echo get_the_content();

,如果这个时候发现短代码失效,如上图提到的[caption被输出了,使用

echo do_shortcode(get_the_content());

输出即可。

wordpress WP_Image_Editor_Imagick 指令注入漏洞,不要惊慌

WP_Image_Editor_Imagick是不是注入漏洞?

我的回答是:并不是注入漏洞,管WordPress鸟事啊。

阿里云最近提醒用户关于 WP_Image_Editor_Imagick 指令注入漏洞

【阿里云】尊敬的用户:您的服务器*.*.*.**存在wordpress WP_Image_Editor_Imagick 指令注入漏洞,已为您准备补丁可一键修复漏洞,为避免被黑客入侵,建议您登录云盾控制台-服务器安全(安骑士)页面进行查看和处理,同时建议您在控制台使用安全巡检功能对服务器进行全面检查。

wordpress WP_Image_Editor_Imagick
我已经忽略了wordpress WP_Image_Editor_Imagick

WP_Image_Editor_Imagick并非主机或程序自带的一个漏洞,而是如果你的服务器环境中安装了ImageMagick组件且没有补丁的情况下才会被利用。我非常鄙视阿里云这一做法:

一是为了安全:提醒用户,这一点我承认,但是并不是所有WordPress站点的服务器都安装了ImageMagick这个软件的,所以不需要修复。

如何检测是否存在ImageMagick漏洞?

方法一:查看rpm包

rpm -q ImageMagick
package ImageMagick is not installed
服务器未安装ImageMagick
服务器未安装ImageMagick

方法二:执行CONVERT命令

CONVERT 'http://xiedexu.cn"|ls "-la' OUT.png
-bash: CONVERT: command not found

检测未安装

如果是服务器并没有安装,那请直接在阿里云后台忽略这个提示即可,反之只需要升级ImageMagick即可。

如果服务器安装了ImageMagick怎么办

一种是直接升级组件即可:yum install ImageMagick -y,还可以手动修改WordPress源码

Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

Error during session start; please check your and/or webserver log file and configure your installation properly. Also ensure that cookies are enabled in your browser.

这个错误的解决办法和Error Cannot start session的解决办法一致,只是PHPMYADMIN版本不同,提示语不同而已。

A TimThumb error has occured Could not create the file cache directory

TimThumb是一个非常好的PHP缩图工具。大部开发者会将cache目录放到timthumb.php的同级目录,如果修改就出现如A error has occured Could not create the file cache directory错误,我分享下修正方法。

哪里修改cache目录

大致在源码的第40行:

if(! defined('FILE_CACHE_DIRECTORY') ) 		define ('FILE_CACHE_DIRECTORY', './cache/');	

默认是./cache/目录。

修改到网站根目录

特别是需要做程序、内容、插件等分离的网站,比如WordPress,程序、主题、插件、附件,如果不想相互影响,最好彼此独立,如果主题使用timthumb的话,默认设置cache会存到主题目录,导致很多非必需内容就存到主题中了,修改到网站根目录可以随意删除。

if(! defined('FILE_CACHE_DIRECTORY') ) 		define ('FILE_CACHE_DIRECTORY', '../../../cache/');	

一定是../../../cache/千万不要用/cache/

修改之后需要设置目录权限:

chmod 755 cache
chown -R .apache cache

.blog域名将于今年年底之前上线

.com的母公司Automattic已经获得管理销售和登记.blog域名的权利,并确认将会在今年年底之前上线。公司宣布这条新闻,更确切的说是通过WordPress的官方博文宣布的,但是目前没有公布具体的上线时间和新顶级域名的收费标准。不要让WordPress让你产生困惑,任何网站都能使用.blog后缀的域名。

.blog域名将于今年年底之前上线
.blog域名将于今年年底之前上线