温馨提示×

Ubuntu PHP配置与数据库连接

小樊
47
2025-11-24 20:02:38
栏目: 编程语言

Ubuntu 下 PHP 与 MySQL 数据库连接实操指南

一 环境准备与安装

  • 更新索引并安装所需组件(以 Apache + PHP + MySQL 为例,如使用 Nginx 则将 apache2 替换为 nginx):
    • 安装命令:
      • sudo apt update
      • sudo apt install apache2 php php-mysql mysql-server
  • 启动并启用数据库服务:
    • sudo systemctl start mysql
    • sudo systemctl enable mysql
  • 运行安全初始化向导,设置 root 密码及安全项:
    • sudo mysql_secure_installation
  • 验证服务状态:
    • sudo systemctl status mysql 以上步骤完成后,系统具备 PHP 与 MySQL 的基础运行环境。

二 数据库与用户创建

  • 登录数据库:
    • sudo mysql -u root -p
  • 在 MySQL Shell 中执行(请替换示例中的数据库名、用户名与密码):
    • CREATE DATABASE mydatabase;
    • CREATE USER ‘myuser’@‘localhost’ IDENTIFIED BY ‘mypassword’;
    • GRANT ALL PRIVILEGES ON mydatabase.* TO ‘myuser’@‘localhost’;
    • FLUSH PRIVILEGES;
    • EXIT; 上述操作为应用创建最小权限的专用账户与数据库,提升安全性。

三 PHP 连接 MySQL 的两种常用方式

  • 使用 PDO(推荐,支持预处理、可移植性更好):
    • 示例代码(config.php):
      • setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>
  • 使用 mysqli(面向对象):
    • 示例代码(connect.php):
      • connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; ?>
  • 将文件放入 /var/www/html/,通过浏览器访问:
    • http://your_server_ip/connect.php 或 http://your_server_ip/config.php 若页面输出“Connected successfully”,说明 PHP 与数据库连通正常。

四 Web 服务器与 PHP-FPM 配置要点

  • 使用 Nginx + PHP-FPM 时,确保站点配置中 fastcgi_pass 指向正确的 PHP-FPM socket,示例:
    • location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 请按实际 PHP 版本调整 }
  • 修改后重启服务:
    • sudo systemctl restart nginx
    • 如使用 Apache,确保启用 PHP 模块或正确代理到 PHP-FPM。 以上配置确保 Web 服务器能正确解析并执行 PHP 脚本。

五 常见问题排查与安全建议

  • 排查要点
    • 确认 PHP 已安装并启用 MySQL 扩展:sudo apt install php-mysql;必要时重启 Apache/NginxPHP-FPM
    • 检查数据库服务是否运行:sudo systemctl status mysql;无法登录时,用 sudo mysql -u root -p 验证凭据与权限。
    • 远程连接失败:确保数据库监听正确地址、系统防火墙放行端口(如 3306),并为应用创建允许远程的来源主机用户(例如 ‘myuser’@‘your_web_ip’)。
  • 安全建议
    • 不在代码中硬编码数据库凭据,使用环境变量或受保护的配置文件,并限制文件权限。
    • 为应用创建最小权限数据库用户,避免使用 root
    • 始终使用预处理语句(PDO/mysqli)防止 SQL 注入
    • 保持 PHP、MySQL、操作系统 与安全组件更新,及时修补漏洞。 以上做法可显著提升连接成功率与系统安全性。

0