bmjp007 发表于 2013-7-2 22:48:22

关于升级php到5.4.16后,memcache重新安装后启动出错!

关于升级php到5.4.16后,memcache重新安装后启动出错!

错误信息是:
Starting php-fpm NOTICE: PHP message: PHP Warning:PHP S
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match
in Unknown on line 0
done
Starting MySQL


我对比了下前后php.ini,原来的是
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = "memcache.so"

升级后是:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
extension = "memcache.so"

请问是不是把升级后的php.ini改为
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
extension = "memcache.so"

这样改行不? 原因是什么?改了后如果可行有影响不?

bmjp007 发表于 2013-7-2 22:49:40

改了后还是不行。

请军哥帮忙

bmjp007 发表于 2013-7-2 23:36:57

以上问题应该就是论坛里id886提出的https://bbs.vpser.net/viewthread.php?tid=9620&highlight=memcached


问题5      在有些脚本中 如 memcached.sh    未使用   rm -f   删除旧目录。(不知其它脚本中是否还有)

这样就会导致   升级跨版本后,再安装,就会出现API问题。


还有这个memcached.sh 里的   cp conf/memcached.php /home/wwwroot/memcached.php   也要改。

也要加个PHP版本错误时退时不执行。


如这贴中人家贴的错误:https://bbs.vpser.net/thread-9604-1-1.html

PHP Warning:PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525


还有安装完 memcached后,在 phpinfo 中找不到 memcache ,且memcached.php 运行也空白。
/etc/init.d/memcached start    启动正常。停止也正常。
不知原因。

licess 发表于 2013-7-3 09:27:36

你用的1.0还是0.9

bmjp007 发表于 2013-7-3 11:43:28

1.0的有问题

0.9的升级都没有问题

licess 发表于 2013-7-3 12:58:23

0.9的memcache安装不支持5.4,只有1.0支持

bmjp007 发表于 2013-7-3 13:12:40

我说的是0.9没有问题。

现在不讨论0.9.

我们说的是1.0的问题。
lnmp1.0默认php是5.3.17

1.那么升级到5.3.26后,再执行memcache.sh安装,没有问题。
2.如果升级到5.4.16后,再执行memcache.sh安装。出现问题:
重新启动/root/lnmp restart 后:PHP Warning:PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525

我对比了下0.9跟1.0中memcache.sh文件,其中多了:
echo "Install memcache php extension..."
wget -c http://soft.vpser.net/web/memcache/memcache-3.0.6.tgz
tar zxvf memcache-3.0.6.tgz
cd memcache-3.0.6/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd ../

cur_php_version=`/usr/local/php/bin/php -v`

if echo "$cur_php_version" | grep -q "5.2."
then
sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\n#' /usr/local/php/etc/php.ini
elif echo "$cur_php_version" | grep -q "5.3."
then
sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"\nextension = "memcache.so"\n#' /usr/local/php/etc/php.ini
elif echo "$cur_php_version" | grep -q "5.4."
then
sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"\nextension = "memcache.so"\n#' /usr/local/php/etc/php.ini
fi

那么问题肯定是出在这里。
至于怎么改需要军哥你指点了。

bmjp007 发表于 2013-7-3 14:30:43

已经解决问题了
目前升级到5.4.16后再安装memcache.sh

bmjp007 发表于 2013-7-3 14:32:12

3.0.7 - Fixed bug #62589 - missing "$" in memcache.php
- Fix php_stream_cast() usage.
- fixes for windows build and php 5.4 compat

也就说memcache3.0.7起才支持php5.4.x
页: [1]
查看完整版本: 关于升级php到5.4.16后,memcache重新安装后启动出错!