在 CentOS 上配置 PHP 连接数据库,通常需要以下几个步骤:
以下是详细步骤:
首先,确保已经安装了 Apache 或 Nginx 以及 PHP。可以使用以下命令安装:
sudo yum install httpd php php-mysqlnd
如果使用的是 Nginx,还需要安装 PHP-FPM:
sudo yum install php-fpm
这里以 MySQL 为例,使用以下命令安装 MySQL:
sudo yum install mysql-server
启动 MySQL 服务并设置开机自启:
sudo systemctl start mysqld
sudo systemctl enable mysqld
运行安全设置脚本,设置 root 密码并删除匿名用户:
sudo mysql_secure_installation
登录到 MySQL 控制台:
mysql -u root -p
创建一个新的数据库和用户,并授权:
CREATE DATABASE my_database;
CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON my_database.* TO 'my_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
根据使用的数据库类型,安装相应的 PHP 扩展。对于 MySQL,已经安装了 php-mysqlnd
。如果使用其他数据库,例如 PostgreSQL,可以安装 php-pgsql
:
sudo yum install php-pgsql
编辑 PHP 文件,使用 PDO 或 mysqli 扩展连接到数据库。以下是使用 PDO 的示例:
<?php
$servername = "localhost";
$username = "my_user";
$password = "my_password";
$dbname = "my_database";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
保存文件并重启 Web 服务器:
对于 Apache:
sudo systemctl restart httpd
对于 Nginx:
sudo systemctl restart nginx
现在,PHP 应用程序应该能够成功连接到数据库。