인디노트

CentOS 8 PHP 설치에러 Call to undefined function mysql_connect() 본문

개발 플랫폼 및 언어/네트워크 기술

CentOS 8 PHP 설치에러 Call to undefined function mysql_connect()

인디개발자 2021. 4. 14. 18:03

info.php

<?php phpinfo();?>

위의 코드는 잘 된다.

dbtest.php

<?php
$link = mysql_connect('192.168.0.99', 'wordpress', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

이 코드를 실행하면 php 로그에 다음의 내용이 찍힌다.

Call to undefined function mysql_connect()

 

다음 명령을 실행 해 보았다.

# yum list php-mysql
Last metadata expiration check: 1:22:33 ago on Wed 14 Apr 2021 12:25:56 AM PDT.
Error: No matching Packages to list

패키지가 없단다. 그래서, 설치했다.

PHP 설치는 sudo dnf install php php-fpm php-gd php-mysqlnd 를 이용하여 설치 했었다.

참고 : tecadmin.net/install-apache-php-fpm-centos-8/

 

How to Install Apache with PHP-FPM on CentOS 8 – TecAdmin

PHP FPM is the FastCGI Process Manager. This tutorial will help you to configure PHP-FPM with Apache on CentOS 8 and RHEL 8 Linux system.

tecadmin.net

아무래도 php-mysql 이 빠진것 같다.

# yum install php-mysql

이제 다음과 같은 에러 메시지가 WEB 화면과 PHP 로그에 남겨진다.

Could not connect: Permission denied

음...

DB 서버 말고 PHP 가 설치되어 있는 서버에서

# setsebool httpd_can_network_connect_db=1

를 하니 Connected successfully 가 된다.

뜻을 해석하면 httpd 가 network 로 db 를 연결하는것을 1 (참) 으로 해라 정도인것 같다.

1 대신 on 을 사용해되 된다.

하지만 위의 명령으로는 임시적인 것이다.

이것을 영구적인 설정으로 바꾸기 위해서는 다음과 같이 한다.

# setsebool -P httpd_can_network_connect on

여기서 -P 옵션은 Permanent 의 뜻이다.

반응형
Comments