【发布时间】:2017-01-25 07:28:01
【问题描述】:
我在 Synology 服务器上来自 PuTTY 的 php 脚本返回:
PHP 致命错误:调用未定义函数 mysqli_connect()`。
Mysqli 安装在服务器上,之前已通过浏览器在脚本中多次使用。我不明白为什么 mysqli_connect() 应该是未定义的。我该如何解决这个问题?
【问题讨论】:
我在 Synology 服务器上来自 PuTTY 的 php 脚本返回:
PHP 致命错误:调用未定义函数 mysqli_connect()`。
Mysqli 安装在服务器上,之前已通过浏览器在脚本中多次使用。我不明白为什么 mysqli_connect() 应该是未定义的。我该如何解决这个问题?
【问题讨论】:
通过 CLI(从 Putty)运行它:php70 --ini
我打印了 PHP 使用的 ini 文件列表。
我发现,该网络服务器正在使用/usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini
而 CLI 不使用该文件。它只使用/usr/local/etc/php70/php.ini
所以,我不得不在该文件中添加几行:sudo vi /usr/local/etc/php70/php.ini
以下是要添加的行:
extension = mysqli.so
extension = pdo_mysql.so
【讨论】:
Call to undefined function mysqli_connect() 在 php.ini 中添加这些行的位置
创建一个php文件并有代码 检查 mysqli 部分是否显示。它应该以 HTML 表格格式显示以下字符串。
mysqli
MysqlI 支持已启用
如果 mysqli 不可用,那么您需要在 php.ini / 中启用它,同时使用 apachee 进行配置。
【讨论】:
Web 版本和 CLI 版本使用不同的 php.ini 文件。
你可以通过下面的命令找出使用了哪个ini文件
php -i | grep php.ini
然后配置这个php.ini,让它支持mysqli。
【讨论】: