温馨提示×

ubuntu php怎么连接

小樊
42
2026-09-16 13:22:06
栏目: 编程语言

你问的“Ubuntu PHP 怎么连接”,通常指 PHP 在 Ubuntu 上连接数据库(如 MySQL),也可能指连接其他服务。下面我先以最常见的情况:Ubuntu + PHP + MySQL 为例说明,如果你指的是别的(如 Redis、SQL Server、MongoDB),可以再告诉我。


一、Ubuntu 上 PHP 连接 MySQL(最常用)

1. 安装 PHP 和 MySQL 扩展

sudo apt update
sudo apt install php php-mysql mysql-server -y

安装完成后重启 Web 服务(Apache 或 Nginx + PHP-FPM):

Apache:

sudo systemctl restart apache2

Nginx(PHP-FPM):

sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

2. 确认扩展已启用

php -m | grep mysqli
php -m | grep pdo_mysql

有输出说明扩展已安装。


3. PHP 连接 MySQL 示例

方法一:mysqli(面向过程)

<?php
$host = "localhost";
$user = "root";
$pass = "你的密码";
$db   = "test";

$conn = mysqli_connect($host, $user, $pass, $db);
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
?>

方法二:PDO(推荐)

<?php
try {
    $pdo = new PDO(
        "mysql:host=localhost;dbname=test;charset=utf8mb4",
        "root",
        "你的密码"
    );
    echo "连接成功";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

二、常见问题排查

1. 连接被拒绝

  • MySQL 没启动:
sudo systemctl status mysql
  • 用户无权限或密码错误
  • 使用了 localhost 但 MySQL 只允许 127.0.0.1

可改为:

$host = "127.0.0.1";

2. 远程连接 MySQL

MySQL 默认只允许本地:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

注释或改为:

bind-address = 0.0.0.0

然后授权用户:

GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;

三、如果是连接其他服务

你可以告诉我你具体想连什么:

  • ✅ MySQL / MariaDB
  • ✅ Redis
  • ✅ PostgreSQL
  • ✅ SQL Server
  • ✅ 外部 API
  • ✅ 本地 Socket

我可以给你针对性的 Ubuntu + PHP 配置教程

0