我使用配置命令从源代码构建 PHP
'./configure' '--prefix=/usr/local/php-5.2.8' '--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-mysql=/usr/local/mysql/' '--with-zlib'
我安装了 php memcache 扩展:
wget http://pecl.php.net/get/memcache
tar -zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure --enable-memcache
make
make install
我添加到我的 /usr/local/lib/php.in
extension=memcache.so
重新启动我的 apache 并运行 php-m 但 php 似乎没有加载 memcache 扩展我从这个站点 http://www.howtoforge.com/forums/showthread.php?t=26554遵循了这个解决方案
我添加了完整路径
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so
重新启动 apache 但它没有加载 memcache 扩展!我用谷歌搜索,但同样的问题!我怎样才能加载这个扩展_ _”
首先运行你的php二进制文件
它应该抱怨你的 php.ini 想要加载无法加载的模块......
如果它没有抱怨,运行
这应该为您提供 php.ini 的位置(以防您编辑错误:D)
这有帮助吗?
问题是......,在这一点上:
wget http://pecl.php.net/get/memcache
而不是tar -zxvf memcache-2.2.5.tgz
,你应该这样做tar -zxvf memcache
(这是来自 wget 的文件名)。提取文件后,您将获得最新版本的 memcache,在我执行此操作时,我获得文件夹memcache-3.0.8。
因此,接下来的步骤将是:
最后,不要忘记将这一行添加到您的 php.ini 中:
并重新启动 Apache。
您确定 memcached 安装在正确的位置吗?如果你运行,你会得到什么:
locate memcache.so
是否安装了 memcached(二进制文件)?它是否需要任何额外的库(libmemcache)?
添加一个
extension_dir
指令来告诉 PHP 从哪里加载扩展并从extension
指令中删除路径。帮助我的一件事是使用
另一件事(这仅适用于相当旧的 php 版本): http: //www.hollub.at/phpmanual/ref.memcache.html说:
这是因为您的 /var/tmp 以 noexec 权限安装
在临时删除 /var/tmp 符号链接并创建新的 /var/tmp 文件夹后,您可以尝试使用 fuenfundachtzig 命令重新编译 memcache。(此设置可能与您的服务器不同)
然后保护您的临时文件夹
在此处阅读有关保护 tmp的更多信息
以及如何在使用 noexec 安装 tmp 的情况下使用 PECL
如果您编译了 PHP,请尝试从php.ini中删除extension_dir。