php - Opencart 新版本无法在本地主机上运行

标签 php mysql opencart

我获得了一个位于实时服务器上的 Opencart 网站,因此我可以在本地主机(xampp)上运行。

最初,我将两个配置文件更改为:

<?php
// HTTP
define('HTTP_SERVER', 'http://safetyelite.co.za/');
define('HTTP_IMAGE', 'http://safetyelite.co.za/image/');
define('HTTP_ADMIN', 'http://safetyelite.co.za/admin/');

// HTTPS
define('HTTPS_SERVER', 'http://safetyelite.co.za/');
define('HTTPS_IMAGE', 'http://safetyelite.co.za/image/');

// DIR
define('DIR_APPLICATION', 'C:/xampp/htdocs/safetyelite');
define('DIR_SYSTEM', 'C:/xampp/htdocs/safetyelite/system/');
define('DIR_DATABASE', 'C:/xampp/htdocs/safetyelite/system/database/');
define('DIR_LANGUAGE', 'C:/xampp/htdocs/safetyelite/admin/language/');
define('DIR_TEMPLATE', 'C:/xampp/htdocs/safetyelite/admin/view/template/');
define('DIR_CONFIG', 'C:/xampp/htdocs/safetyelite/system/config/');
define('DIR_IMAGE', 'C:/xampp/htdocs/safetyelite/image/');
define('DIR_CACHE', 'C:/xampp/htdocs/safetyelite/system/cache/');
define('DIR_DOWNLOAD', 'C:/xampp/htdocs/safetyelite/download/');
define('DIR_LOGS', 'C:/xampp/htdocs/safetyelite/system/logs/');
define('DIR_CATALOG', 'C:/xampp/htdocs/safetyelite/catalog/');

// DB
define('DB_DRIVER', 'mysql');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'safetyelite');
define('DB_PREFIX', '');
?>

然后在我的index.php中我更改了网站目录:

if (!defined('DIR_APPLICATION')) {
    header('Location: /http://localhost/safetyelite/install/index.php');
    exit;
}

// VirtualQMOD
require_once('vqmod/vqmod.php');
$vqmod = new VQMod();

当我刷新页面时,出现以下错误:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\safetyelite\system\database\mysql.php on line 6

My config files and index.php look like this now and I don't know what else to do so I hope you can help:

然后我将 vqmod 文件夹升级到最新的。

在我的配置文件中我更改了 define('DB_DRIVER', 'mysql');

为此: define('DB_DRIVER', 'mmysqli');

mysqli 文件如下所示:

<?php
final class mMySQLi {
    private $mysqli;

    public function __construct($hostname, $username, $password, $database) {
        $this->mysqli = new mysqli($hostname, $username, $password, $database);

        if ($this->mysqli->connect_error) {
            trigger_error('Error: Could not make a database link (' . $this->mysqli->connect_errno . ') ' . $this->mysqli->connect_error);
        }

        $this->mysqli->set_charset('utf8');
    }

    public function query($sql) {
        $query = $this->mysqli->query($sql);

        if ($this->mysqli->errno) {
            trigger_error('Error: ' . $this->mysqli->error . '<br />Error No: ' . $this->mysqli->errno . '<br />' . $sql);
            exit();
        }

        if ($query) {
            if (isset($query->num_rows)) {
                $result = new stdClass();
                $data = array();

                while ($row = $query->fetch_assoc()) {
                    $data[] = $row;
                }

                $result->row = isset($data[0]) ? $data[0] : array();
                $result->rows = $data;
                $result->num_rows = $query->num_rows;

                $query->close();

                unset($data);

                return $result;
            } else {
                // When MySQLi returns boolean true instead of a result object
                // http://www.php.net/manual/en/mysqli.query.php
                $result = new stdClass();
                $result->row = array();
                $result->rows = array();
                $result->num_rows = 0;

                return $result;
            }
        } else {
            trigger_error('Error: ' . $this->mysqli->error . '<br />Error No: ' . $this->mysqli->errno . '<br />' . $sql);
            exit();
        }
    }

    public function escape($value) {
        return $this->mysqli->real_escape_string($value);
    }

    public function countAffected() {
        return $this->mysqli->affected_rows;
    }

    public function getLastId() {
        return $this->mysqli->insert_id;
    }

    public function __destruct() {
        $this->mysqli->close();
    }
}
?>

当我刷新页面时,我没有看到更多错误,但一切都是空白。我和检查员检查过,一切都是空白。 我可能遗漏了什么吗?

希望能帮到你。

最佳答案

如果您使用的是 linux (ubuntu),您可以检查错误日志以获取线索。

在终端类型:

sudo tail -f /var/log/apache2/error.log

请参阅下面的快照

enter image description here

使用这个你会得到一些线索。我认为您有 PHP 版本 7.* ,其中不推荐使用 Mysql 旧函数。

关于php - Opencart 新版本无法在本地主机上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45297105/

相关文章:

javascript - 客户端未收到页面发送的电子邮件

javascript - 从静态 html 页面发送电子邮件

MySQL 错误 1045 (28000) : Access denied for user 'bill' @'localhost' (using password: YES)

javascript - 最新产品上的 opencart jcarousel

css - 更改选项文本框大小产品页面 Opencart

javascript - 如何在 Opencart 3.0 中按 sku 或按型号将产品添加到购物车

php - 在 PHP 中定义多个常量的代码风格

php - 为什么不显示行内元素? Bootstrap

c# - 字段名没有默认值

mysql - OS Maverick 破坏了 MySQL?