繁体   English   中英

Mac OS上的PHP 7.2 memcached扩展

[英]PHP 7.2 memcached extension on Mac OS

我想在mac OS High Sierra上设置php memcached扩展。 我正在运行php 7.2

php -v的输出:

PHP 7.2.6 (cli) (built: May 25 2018 06:18:43) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.6, Copyright (c) 1999-2018, by Zend Technologies

我通过pecl安装了memcached而没有任何错误:

pecl install memcached

它在php.ini文件中启用:

extension="memcached.so"

当我在我的Apache服务器上运行<?php echo phpinfo();?>时。 我可以看到配置的会话:

session.save_handler    memcached   memcached

我的symfony应用程序仍然给我这个错误:

(1/1) ClassNotFoundException
Attempted to load class "Memcached" from the global namespace.
Did you forget a "use" statement?

编辑:

我的apache正在运行不同版本的php(PHP版本7.1.16)我不知道为什么,但我认为这不是问题。

在info文件中我可以在CORE部分看到php扩展dir是"/usr/local/lib/php/pecl/20170718" 当我打开该目录时,有memcached.so文件。 路径是正确的。

编辑2:

在我的apache日志中,我看到警告:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/pecl/20170718/memcached.so' - dlopen(/usr/local/lib/php/pecl/20170718/memcached.so, 9): Symbol not found: _zend_empty_string\n  Referenced from: /usr/local/lib/php/pecl/20170718/memcached.so\n  Expected in: flat namespace\n in /usr/local/lib/php/pecl/20170718/memcached.so in Unknown on line 0

所以。 Apache和SLI php版本使用不同的php.ini文件。 对于我的Debian 9上的例子,它使用/etc/php/7.2/apache2/php.ini和/etc/php/7.2/cli/php.ini

我相信你的问题是你使用的是不同版本的PHP。

试试下面的命令:

$sudo a2dismod php7.1
$sudo a2enmod php7.2
$sudo service apache2 restart

如果你仍然得到相同的错误尝试在www root dir thich conteint下一个代码中创建info.php:

<?php
phpinfo();

并检查Memcache是​​否已加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM