温馨提示×

Ubuntu LAMP如何部署PHP应用

小樊
42
2025-11-22 14:46:35
栏目: 编程语言

Ubuntu LAMP部署PHP应用实操指南

一 环境准备与安装

  • 更新索引并安装组件(Apache、MariaDB、PHP 及常用扩展)。以下以 Ubuntu 20.04/22.04 为例,PHP 版本请以系统仓库为准(示例命令包含常见扩展,可按需增减):
    • 安装命令:
      sudo apt update
      sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql \
           php-cli php-curl php-json php-mbstring php-xml php-zip
      
    • 启动并设为开机自启:
      sudo systemctl start apache2 mariadb
      sudo systemctl enable apache2 mariadb
      
    • 建议运行安全配置向导,设置 root 密码并加固:
      sudo mysql_secure_installation
      
    • 验证 PHP 模块与版本:
      a2enmod php$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
      sudo systemctl restart apache2
      php -v
      
    以上步骤完成 LAMP 基础环境搭建与 PHP 可用性验证。

二 数据库创建与导入

  • 登录数据库并创建应用专用库与用户(请替换占位符):
    sudo mysql -u root -p
    
    在 MySQL 提示符下执行:
    CREATE DATABASE your_app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'your_app_user'@'localhost' IDENTIFIED BY 'StrongPassword!';
    GRANT ALL PRIVILEGES ON your_app_db.* TO 'your_app_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    
  • 导入项目初始数据(如有):
    mysql -u your_app_user -p your_app_db < /path/to/dump.sql
    
    以上完成数据库与权限配置,便于应用安全连接与数据初始化。

三 部署应用与目录权限

  • 部署代码(示例放置于 /var/www/your_app;也可使用 Git 克隆):
    sudo mkdir -p /var/www/your_app
    sudo cp -r /path/to/your_app/. /var/www/your_app/
    # 或使用 Git
    # sudo git clone https://your-repo.git /var/www/your_app
    
  • 设置所有权与权限(Web 服务运行用户为 www-data):
    sudo chown -R www-data:www-data /var/www/your_app
    sudo find /var/www/your_app -type f -exec chmod 644 {} \;
    sudo find /var/www/your_app -type d -exec chmod 755 {} \;
    # 若应用需要写入(如上传、缓存、日志),仅对相应目录放宽写权限,例如:
    # sudo chmod -R 775 /var/www/your_app/storage /var/www/your_app/public/uploads
    
  • 如项目使用 Composer,安装依赖:
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    cd /var/www/your_app && composer install --optimize-autoloader --no-dev
    
    以上确保代码就位、权限正确、依赖可用。

四 配置 Apache 与虚拟主机

  • 启用重写模块(多数框架需要):
    sudo a2enmod rewrite
    
  • 创建虚拟主机配置(示例:/etc/apache2/sites-available/your_app.conf):
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName your_domain.com
        DocumentRoot /var/www/your_app/public  # 多数框架使用 public 作为根目录
    
        <Directory /var/www/your_app/public>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/your_app_error.log
        CustomLog ${APACHE_LOG_DIR}/your_app_access.log combined
    </VirtualHost>
    
  • 启用站点并重启 Apache:
    sudo a2ensite your_app.conf
    sudo a2dissite 000-default.conf   # 如使用默认站点,建议禁用避免冲突
    sudo systemctl reload apache2
    
    以上完成基于域名的站点隔离与 URL 重写支持。

五 应用配置 测试与安全加固

  • 配置应用连接信息:在应用配置(如 .env 或配置文件中)填入数据库 DB_DATABASE=your_app_dbDB_USERNAME=your_app_userDB_PASSWORD=StrongPassword! 等;确保与前述数据库创建保持一致。
  • 基础测试:
    • 访问 http://your_domain/ 检查首页与路由是否正常。
    • 查看日志定位问题:
      sudo tail -f /var/log/apache2/your_app_error.log
      sudo tail -f /var/log/apache2/your_app_access.log
      
  • 安全与优化建议:
    • 启用 HTTPS(如 Let’s Encrypt/certbot),强制全站 HTTPS。
    • 关闭生产环境错误显示(在 php.inidisplay_errors = Offlog_errors = On)。
    • 调整 PHP 关键参数(如 memory_limitupload_max_filesizepost_max_size)以匹配应用需求。
    • 保持系统与软件包更新(sudo apt update && sudo apt upgrade)。
    • 如需数据库管理,可部署 phpMyAdmin 并限制访问来源。 以上完成应用上线前的关键配置与加固步骤。

0