저는 Linux 시스템에서 php(7.3)와 mysql을 사용하고 있습니다. 하지만 Fatal error: Uncaught Error: Class 'mysqli' not found in /var/www/html/
apache2 log file() 에서 PHP 오류가 발생합니다 /var/log/error.log
. 여러 가지 답변을 확인했습니다.치명적인 오류: 'MySQLi' 클래스를 찾을 수 없습니다.. 그러나 성공하지 못했습니다.
양식 handler.php
<?php
$conn = new mysqli("localhost", "root", "root", "Users");
// Check connection
if ($conn->connect_errno) {
die("Connection failed: " . $conn->connect_error);
}
else
echo "Connected successfully";
$username = $_POST["username"];
$password = $_POST["password"];
$query = "SELECT * FROM Users WHERE username = " . $username . " AND password =" . $password;
$re = mysqli_query($query);
if (mysqli_num_rows($re) == 0)
{ echo 'Not Logged In'; }
else
{ echo 'Logged In'; }
?>
편집 1
다음 명령이 실행되었습니다.
apt install php-mysql
apt-get install php-mysqlnd
편집 2
다음 코드를 사용하여 새 PHP 파일을 만들었습니다.
<?php
phpinfo(INFO_MODULES);
?>
그리고추가 기능 모듈에 mysqli가 표시되지 않습니다.하지만 실행하면 apt install php-mysql
php-mysql이 이미최신 버전(2:7.3+69)..
답변1
어떤 운영 체제를 사용하고 있는지 알려주지 않았습니다. 하지만 당신이 언급했으므로 apt-get
우분투나 데비안과 같은 것을 사용하고 있다고 가정합니다. 구성 설정이 비교적 유사합니다.
확인 1
패키지는 php-mysql
다음에 의존 php7.2-mysql
하거나 유사해야 하므로 먼저 패키지가 설치되어 있는지 확인하십시오. 예를 들면 다음과 같습니다.
dpkg --list | grep 'php.*mysql'
ii php-mysql 2:7.2+69ubuntu1 all MySQL module for PHP [default]
ii php7.2-mysql 7.2.19-0ubuntu0.19.04.1 amd64 MySQL module for PHP
설치한 버전을 기록해 두십시오. 내 설정과 같은 7.2가 아닌 경우 버전에 맞게 향후 검사를 변경해야 합니다.
확인 2
방금 Ubuntu 19.04 설정을 살펴보았는데 mysqli에는 현재 php7.2-mysql
./usr/lib/php/20170718/mysqli.so
find /usr/lib/php -name mysqli.so
확인 3
PHP가 이 모듈을 사용하려면 이를 로드하도록 지시해야 합니다. PHP를 실행하도록 설정하는 방법에 따라 다른 위치를 살펴봐야 할 수도 있습니다. 하지만 phpfpm에서 PHP 7.2를 실행하는 경우 mysqli를 로드하는 방법은 다음과 같습니다 /etc/php/7.2/fpm/conf.d/20-mysqli.ini
.
모듈을 로드했는지 확인하십시오.
grep mysqli.so /etc/php/7.2/*/conf.d/*
/etc/php/7.2/cli/conf.d/20-mysqli.ini:extension=mysqli.so
/etc/php/7.2/fpm/conf.d/20-mysqli.ini:extension=mysqli.so
PHP`를 사용하는 방식이 모듈을 로드하도록 구성되어 있는지 확인하세요. 이 작업을 수행하도록 구성되지 않은 경우 구성에 다시 추가할 수 있습니다.
cd /etc/php/7.2/fpm/conf.d
ln -s ../../mods-available/mysqli.ini 20-mysqli.ini
제공하신 증거에 따르면 확인 3이 원인일 가능성이 가장 높지만 오류가 발생하기 쉬운 항목이기도 합니다.
답변2
PHP 설치에 mysql 모듈이 누락된 것 같습니다. php -i
쉘에 설치되어 있는지 확인할 수 있습니다 . 그렇지 않은 경우 설치해 보십시오.
우분투의 경우:
apt install php-mysql
CentOS의 경우:
yum install php-mysql
답변3
MySQL 버전이 PHP 버전과 호환되는지 확인하세요.
세부 사항:-
먼저, phpinfo 페이지에 mysqli 설치 정보가 있는지 확인하세요. 그렇지 않다면...
, 컴퓨터에 설치되어 있다고 생각하지만 실행되지 않는 경우 설치하세요.
그런 다음 MySQL 버전이 PHP 버전과 호환되는지 확인하세요.
먼저 이 쌍을 MySQL과 PHP에 사용했습니다.
- php:7.4-apache & mysql:5.7 (하지만 작동하지 않고 'mysqli' 클래스를 찾을 수 없다는 오류가 표시됩니다)
그 후 나는 설치했다.
- php:7.2-apache 및 mysql:5.7그리고이건 나한테는 괜찮아