如何在Ubuntu服务器上安装PHP并连接MySQL?

在Ubuntu服务器上安装PHP并连接MySQL,可以按照以下步骤操作:

一、安装PHP和MySQL扩展

1. 更新系统包列表

sudo apt update
sudo apt upgrade -y

2. 安装PHP(以PHP 8.1为例)

# 添加PHP仓库(如果需要最新版本)
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

# 安装PHP及相关扩展
sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip

3. 安装MySQL服务器

# 安装MySQL服务器
sudo apt install mysql-server

# 安全配置MySQL
sudo mysql_secure_installation

二、配置PHP连接MySQL

1. 创建MySQL数据库和用户

# 登录MySQL
sudo mysql

# 在MySQL命令行中执行:
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. 测试PHP连接MySQL

创建测试文件 /var/www/html/test.php

<?php
$host = 'localhost';
$dbname = 'mydatabase';
$username = 'myuser';
$password = 'your_password';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接MySQL成功!";

    // 测试查询
    $stmt = $pdo->query("SELECT VERSION()");
    $version = $stmt->fetch();
    echo "<br>MySQL版本: " . $version[0];

} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

3. 使用mysqli扩展连接(备选方案)

<?php
$servername = "localhost";
$username = "myuser";
$password = "your_password";
$dbname = "mydatabase";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";

$conn->close();
?>

三、配置Web服务器(可选)

对于Apache:

sudo apt install apache2 libapache2-mod-php8.1
sudo systemctl restart apache2

对于Nginx:

sudo apt install nginx
sudo systemctl restart nginx

四、安全配置建议

  1. 修改PHP配置文件

    sudo nano /etc/php/8.1/fpm/php.ini

    调整以下参数:

    display_errors = Off
    log_errors = On
    upload_max_filesize = 2M
    post_max_size = 8M
  2. MySQL远程访问限制

    -- 只允许本地连接(默认)
    -- 如需远程连接,谨慎配置:
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'strong_password';
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';

五、验证安装

  1. 检查PHP版本:

    php -v
  2. 检查MySQL状态:

    sudo systemctl status mysql
  3. 检查PHP扩展:

    php -m | grep mysql

常见问题解决

  1. 连接被拒绝

    • 检查MySQL用户权限
    • 确认MySQL服务正在运行:sudo systemctl status mysql
  2. 找不到PDO驱动

    • 安装PDO扩展:sudo apt install php8.1-mysql
  3. 权限问题

    • 确保Web服务器用户有权限访问PHP文件

这样你就完成了在Ubuntu服务器上安装PHP并连接MySQL的完整流程。根据你的具体需求,可能还需要安装其他PHP扩展或进行额外的安全配置。

云服务器