호스팅 플랫폼을 cPanel에서 Plesk로 바꿀 때 어떤 문제가있는 것 같습니다. 내 사이트 중 하나에 스크립트가 있습니다. 메인 사이트는 Joomla의 최신 버전에서 실행되며 오류없이 데이터베이스 연결을합니다. 하지만 외부 스크립트는 cron 작업에서 실행되지만 연결되지 않은 것 같습니다. 내가 여기에 게시 할 수 있도록 내 연결 클래스를 함께 할 수 있다고 가정해야mysqli :: __ construct() : (HY000/1045) : 'lfc_site'@ 'localhost'에 대한 액세스가 거부되었습니다 (패스워드 사용 : YES)
mysqli::__construct(): (HY000/1045): Access denied for user 'lfc_site'@'localhost' (using password: YES)
: :이 오류가
나는 DB 로그인을 포함하는 cofig.ini이 신임장.
[데이터베이스] 사용자 이름 = DATABASE_USER 암호 = ****** DBNAME = 데이터베이스 _
다음 내 연결 클래스는 이것이다 :
<?php
//Database connection class
class Db {
protected static $connection;
public function connect() {
if(!isset(self::$connection)) {
global $config;
self::$connection = new mysqli('localhost:3306',$config['username'],$config['password'],$config['dbname']);
}
if(self::$connection === false) {
return false;
}
return self::$connection;
}
public function query($query) {
$connection = $this -> connect();
$result = $connection -> query($query);
return $result;
}
public function select($query) {
$rows = array();
$result = $this -> query($query);
if($result === false) {
return false;
}
while ($row = $result -> fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
public function error() {
$connection = $this -> connect();
return $connection -> error;
}
public function quote($value) {
$connection = $this -> connect();
return "'" . $connection -> real_escape_string($value) . "'";
}
}
?>
다음 마지막으로 내 스크립트 쿼리를 이와 같이 실행합니다 ....
<?php
require_once('/var/www/vhosts/user/httpdocs/db.php');
$config = parse_ini_file('/var/www/vhosts/user/httpdocs/config.ini');
$db = new Db();
$rows = $db -> select('
SELECT *
FROM milestones
WHERE status != "arrived"
AND departure_time BETWEEN (NOW() - INTERVAL 12 HOUR)
AND (NOW() + INTERVAL 12 HOUR)
AND type = "4"
');
?>
아마도 제가 말했듯이, Joomla 스크립트가 똑같은 자격 증명을 사용하여 문제없이 연결할 수있는 것처럼이 스크립트가 제대로 연결되지 못하도록 설정되어있는 모듈이 없다고 추측하고 있습니다.