无法从站点的子目录加载MYSQL驱动程序,可以从main加载

时间:2018-04-06 21:50:31

标签: php mysql

首先,对于PHP来说,我完全是个新手。

客户购买了一个脚本,安装脚本无法正常工作。我根据安装程序中的编写方式手动汇编了配置文件。

前端工作正常,加载驱动程序,连接到数据库。

访问管理员,我得到" Error: Could not load database driver type mysql!"。 admin配置文件看起来像这样(前端的配置非常相似)

// HTTP;
define('HTTP_SERVER', 'http://...');
define('HTTP_CATALOG', 'http://...');
define('HTTP_IMAGE', 'http://...');
define('HTTP_ADMIN', 'http://...');

// HTTPS;
## truncated for Stack's's sake, similar to above

// DIR;
define('DIR_APPLICATION', 'admin/');
define('DIR_SYSTEM', 'system/');
define('DIR_DATABASE', 'system/database/');
## the above line is exactly the same as the frontend's config.php, as are most.
define('DIR_LANGUAGE', 'admin/language/');
define('DIR_TEMPLATE', 'admin/template/');
define('DIR_CONFIG', 'system/config/');
define('DIR_IMAGE', 'image/');
define('DIR_CACHE', 'system/cache/');
define('DIR_DOWNLOAD', 'download/');
define('DIR_LOGS', 'system/logs/');
define('DIR_CATALOG', 'catalog');

// DB;
define('DB_DRIVER', 'mysql');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', '...');
define('DB_PASSWORD', '...');
define('DB_DATABASE', '...');
define('DB_PREFIX', '...');

上面的大多数行与前端的配置文件完全相同,当然包括数据库凭据。

但是一旦此代码尝试触发,我就会收到错误

$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);

凭据是正确的,前端配置中存在完全相同的行。

index.phpadmin/index.php的开头非常类似,后者缺少三个要求可能并不重要。我将它们添加到管理部分并仍然得到相同的错误。

我尝试更改路径以/../开头,但仍然会出现同样的错误。

2 个答案:

答案 0 :(得分:1)

您可以使用__DIR__获取当前目录,然后导航到需要的位置,例如define('DIR_DATABASE', __DIR__ . '/system/database/');或类似define('DIR_DATABASE', __DIR__ . '/../system/database/');

之类的内容

答案 1 :(得分:0)

出现此错误是因为您没有安装软件包php-mysql。 例如,如果您使用Ubuntu,则可以安装正在执行的程序包

sudo apt install php-mysql

在终端。 然后,确认您要继续安装。

现在你应该让mysql for php工作正常。如果需要,最好重新启动您的网络服务器。

对于apache:

sudo service apache2 restart

对于Nginx:

sudo service nginx restart && sudo service php-fpm restart

如果你有php7。*,请使用

sudo service nginx restart && sudo service php7.0-fpm restart

编辑" 0"根据您的需要(如果您有7.1,7.2等)。