0

在 F25 上玩弄了我的 FreePBX 安装后,我似乎已经破坏了它,并且无法加载 pdo_mysql:

[root@freepbx-localdomain freepbx] # /usr/bin/env php -m | grep -i pdo
PDO
pdo_sqlite

FreePBX 的./install错误正确显示:

Checking if Asterisk is running and we can talk to it as the 'asterisk' user...Done
Preliminary checks done. Starting FreePBX Installation
Checking if this is a new install...Yes (No /etc/amportal.conf file detected)
Database Root installation checking credentials and permissions..Error!
Invalid Database Permissions. The error was: could not find driver

最后,pdo_mysql 位于 /etc/php.d 目录中:

[root@freepbx-localdomain php.d] # ls *pdo_mysql*
30-pdo_mysql.ini

我在这里苦苦挣扎,即将进行干净的 CentOS 安装(而不是在 Fedora Workstation 上运行它,这不是最好的主意)。想法?

编辑:虽然据说 php.ini 不再用于加载扩展,但我还是尝试了,添加:

extension="pdo.so"
extension="pdo_mysql.so"

现在...

[root@freepbx-localdomain freepbx] # /usr/bin/env php -m | grep -i pdo
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo.so: undefined symbol: zend_new_interned_string in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0
PDO
pdo_sqlite
4

2 回答 2

8

我一直在玩弄这个问题,我想我通过以下方式解决了这个问题:

在终端中使用此命令安装 php mysql:

dnf install  php-mysqlnd

然后使用以下内容重新启动apache:

service httpd restart
于 2017-01-09T16:02:32.107 回答
0

对我来说,删除 php 然后再次安装就可以了。

在此之前,我尝试安装 php-pdo,但没有成功。重新安装php后,我删除了php-pdo和php-mysqlnd;它仍然有效。疯狂的!

每次安装/删除后,重新启动 httpd。

浪费了一个多小时和心情!

sudo dnf -y remove php
sudo dnf -y install php
于 2018-04-01T18:40:15.743 回答