【问题标题】:Enable mysqli in my in-webserver copy of php在我的 php 的网络服务器副本中启用 mysqli
【发布时间】:2015-07-21 09:25:39
【问题描述】:

正如这里所讨论的: mysqli works when run directly but not when via js-ajax

我可能需要在我的网络服务器 php 副本中启用 mysqli。 它已经在命令行中启用了。

如何确定是否在特定的 php 副本中启用了 mysqli, 如果不是,我该如何安装?

我的网络服务器运行的是 Ubuntu 14.04.2 LTS。

我现在尝试在我的 php.ini 文件中添加以下扩展名:

extension=mysqli.so
extension=pdo_mysql.so
extension=php_mysqli.so

我试过单独运行它们,重新启动 mysql 和 apache,运行 sudo php5enmod mysqli 然后我再次运行该页面,但同样的错误不断在 /var/log/apache/error.log 中弹出:

PHP Fatal error:  Class 'mysqli' not found in /var/www/html/..

除非我从服务器端运行 insert.php,否则不会将任何内容添加到 sql 表中。

当我在 php.ini 文件中包含所有三个扩展名时,我得到以下错误很好:

Failed loading /usr/lib64/php/modules/ioncube_loader_lin.so:  /usr/lib64/php/modules/ioncube_loader_lin.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib64/php/modules/ixed.lin:  /usr/lib64/php/modules/ixed.lin: cannot open shared object file: No such file or directory
Failed loading /usr/lib64/php/modules/ZendOptimizer.so:  /usr/lib64/php/modules/ZendOptimizer.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib64/php/modules/opcache.so:  /usr/lib64/php/modules/opcache.so: cannot open shared object file: No such file or directory

【问题讨论】:

  • 什么是webserver php 副本
  • 我认为它是从服务器调用 php 时实现的 php 语言的副本。
  • :) 检查 php.ini .. .with phpinfo() 你可以看到哪个 php.ini 文件用于 cli 和 webserver php copy
  • grep extension /etc/php5/apache2/php.ini 的输出是什么?
  • 文件/usr/lib64/php/modules/mysqli.so是否存在?

标签: php mysqli webserver


【解决方案1】:

从您的 cmets 看来,您的 extension_dir 已设置为 /usr/lib64/php/modules,但您的系统上不存在此文件夹。

在您的系统上,mysqli.so 模块实际上是在/usr/lib/php5/20121212/mysqli.so 中找到的

要解决此问题,您可以将extension_dir 设置为/usr/lib/php5/20121212,以便extension=mysqli.so 行能够找到共享对象。

【讨论】:

    【解决方案2】:

    您需要重新编译您的 PHP 并将代码 --enable-all 添加到末尾。 (我认为这个命令是对的。如果不是这个概念)你的共享对象没有安装。

    【讨论】:

    • 我该如何重新编译 php?
    • 你最初是如何编译它的?基本上删掉了,重新编译一下。
    • 我从来没有编译过它,它只是在安装时就在那里。
    【解决方案3】:

    你需要从apache服务器打开mysqli服务,然后重启apache服务器

    【讨论】:

    • 如何从apache服务器打开mysqli服务?
    【解决方案4】:

    按照本指南进行操作。

    https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04.

    跳过关于 apache web srver 的第一步。 请注意,php cli(命令行界面)的配置与您的网络服务器使用的 php 配置位于不同的文件中。 如果需要为apache配置php,UBUNTU 14.02默认路径为/etc/php5/apache2/php.ini

    如果您继续遇到 ioncude 问题,请点击此链接 https://www.digitalocean.com/community/tutorials/how-to-install-ioncube-loader

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多