Joo*_*zty 5 php memcached symfony macos-sierra
我想在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
Run Code Online (Sandbox Code Playgroud)
我安装了memcached,pecl没有任何错误:
pecl install memcached
Run Code Online (Sandbox Code Playgroud)
它在php.ini文件中启用:
extension="memcached.so"
Run Code Online (Sandbox Code Playgroud)
当我<?php echo phpinfo();?>在我的Apache服务器上运行时.我可以看到配置的会话:
session.save_handler memcached memcached
Run Code Online (Sandbox Code Playgroud)
我的symfony应用程序仍然给我这个错误:
(1/1) ClassNotFoundException
Attempted to load class "Memcached" from the global namespace.
Did you forget a "use" statement?
Run Code Online (Sandbox Code Playgroud)
编辑:
我的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
Run Code Online (Sandbox Code Playgroud)
所以。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
Run Code Online (Sandbox Code Playgroud)
如果您仍然遇到相同的错误,请尝试在您的 www 根目录中创建 info.php,其中包含下一个代码:
<?php
phpinfo();
Run Code Online (Sandbox Code Playgroud)
并检查 Memcache 是否已加载。
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |