我正在编译php扩展(memcached和xdebug),当我运行make时,它们一直被安装到/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626.中。所以有几个问题:
发布于 2012-06-15 22:58:49
“非调试-非ZTS-20090626”意味着它是在没有调试标志的情况下构建的,而没有使用ZTS,这是PHP用来表示内部线程安全的缩略语。日期标记用于标识内部API版本。我非常肯定的是,它可以识别PHP5.3。
而不是自己编译这些问题,从而导致这些问题需要答案,您可能希望真正寻找这些模块的预编译版本,由您的操作系统发行版或可信的第三方。Memcached和xdebug是非常常见的扩展,而且它们很可能已经很容易被您使用了。
否则,您可能希望使用pecl工具为您下载、编译和安装这些文件。这些工具的存在是有充分理由的。
发布于 2012-06-20 23:34:06
最后,我没有自定义配置模块的位置,而是创建了扩展名.ini文件,每个文件都使用完整模块uri加载扩展名:
; memcached.ini
extension=/path/to/php/lib/php/extensions/no-debug-non-zts-20090626/memcached.so这样,当我做make install时,我不需要做任何符号连接等等。
如果我没有在自定义的.ini文件中使用完整的模块uri,那么PHP就找不到这个模块,这很奇怪,因为如果我将以下内容添加到php.ini中,它会运行得很好:
; php.ini
extension=memcached.so不管怎样,让它起作用了。
发布于 2017-07-25 20:39:43
检查是否找到库:
ldd /usr/lib/php/extensions/no-debug-non-zts-xxxxxxxx/memcached.so外围建筑:
yum -y install gcc make automake autoconf gcc-c++ flex bison
yum remove libmemcached
/usr/bin/pecl uninstall memcached
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -xvzf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure
make && make install
/usr/bin/pecl install memcached-2.2.0
echo "extension=memcached.so" >/etc/php.d/memcached.ini
service httpd restart
/usr/bin/php -i | grep memcached
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php检查日志:
tail -f /var/log/httpd/error_loghttps://serverfault.com/questions/399310
复制相似问题