首先,对于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.php
和admin/index.php
的开头非常类似,后者缺少三个要求可能并不重要。我将它们添加到管理部分并仍然得到相同的错误。
我尝试更改路径以/
和../
开头,但仍然会出现同样的错误。
答案 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等)。