商城首页欢迎来到中国正版软件门户

您的位置:首页 >Ubuntu LAMP如何部署PHP应用

Ubuntu LAMP如何部署PHP应用

  发布于2026-04-30 阅读(0)

扫一扫,手机访问

Ubuntu LAMP部署PHP应用实操指南

Ubuntu LAMP如何部署PHP应用

一 环境准备与安装

万事开头先打基础。部署的第一步,是把LAMP这套“组合拳”给装好。下面以Ubuntu 20.04或22.04为例,带你走一遍标准流程。需要留意的是,系统仓库里的PHP版本可能随发行版不同而有差异,示例命令里包含了常用的扩展,你可以根据自己项目的实际需要来增减。

  • 更新索引并安装组件

    打开终端,依次执行以下命令。这组命令会一次性安装Apache、MariaDB、PHP以及一系列常用的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
  • 数据库安全加固

    对于刚安装的MariaDB,强烈建议运行一下安全配置向导。这个交互式脚本会引导你设置root密码、移除匿名用户、禁止远程root登录等,是提升安全性的第一步。

    sudo mysql_secure_installation
  • 验证PHP模块与版本

    为了让Apache正确解析PHP,需要启用对应的PHP模块,并重启服务使其生效。最后,用php -v看一眼版本,确认PHP已就位。

    a2enmod php$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
    sudo systemctl restart apache2
    php -v

走完这几步,一个可用的LAMP基础环境就已经搭建完成了,PHP也能正常工作了。

二 数据库创建与导入

环境好了,接下来得给应用准备一个“专属数据库”。原则是:为每个应用创建独立的数据库和用户,避免使用root账户直接操作,这样更安全。

  • 创建数据库和用户

    首先,用root身份登录MariaDB。然后,在MySQL提示符下执行以下命令。记得把命令里的your_app_dbyour_app_userStrongPassword!替换成你自己设定的数据库名、用户名和强密码。

    sudo mysql -u root -p
    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;
  • 导入初始数据(可选)

    如果你的项目附带一个SQL备份文件(比如dump.sql),现在就可以把它导入到新建的数据库里了。

    mysql -u your_app_user -p your_app_db < /path/to/dump.sql

至此,数据库层面的准备工作就全部完成了,应用已经可以安全地连接数据库并进行数据初始化。

三 部署应用与目录权限

代码放哪里、权限怎么设,这两件事直接关系到应用能否正常运行和安全。一个常见的做法是把代码放在/var/www/目录下。

  • 部署应用代码

    你可以直接复制代码,或者使用Git克隆仓库。这里以创建/var/www/your_app目录为例。

    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
  • 设置所有权与权限

    关键点来了:在Ubuntu上,Apache通常以www-data用户和组运行。因此,我们需要把项目目录的所有权交给它。同时,遵循“最小权限原则”:文件644(读写-只读-只读),目录755(读写执行-只读执行-只读执行)。

    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依赖(如需要)

    如果你的PHP项目使用Composer管理依赖,那么还需要在项目根目录下运行安装命令。生产环境记得加上--no-dev选项来跳过开发依赖。

    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 与虚拟主机

现在,我们需要告诉Apache:“有一个新的网站要托管,这是它的地址和家在哪里。”这就是配置虚拟主机。

  • 启用重写模块

    绝大多数现代PHP框架(如Lara vel、Symfony)都依赖URL重写来提供友好的路由。所以第一步是启用Apache的rewrite模块。

    sudo a2enmod rewrite
  • 创建虚拟主机配置文件

    /etc/apache2/sites-a vailable/目录下,为你的应用创建一个新的配置文件,例如your_app.conf。将下面的配置粘贴进去,并替换your_domain.com为你的实际域名,确认DocumentRoot指向你应用的公共目录(通常是public文件夹)。

    
        ServerAdmin webmaster@localhost
        ServerName your_domain.com
        DocumentRoot /var/www/your_app/public
        # 多数框架使用 public 作为根目录
        
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        
        ErrorLog ${APACHE_LOG_DIR}/your_app_error.log
        CustomLog ${APACHE_LOG_DIR}/your_app_access.log combined
    
  • 启用站点并重启Apache

    启用新站点配置,并禁用默认站点(如果不需要的话,避免端口冲突)。最后,重新加载Apache配置使改动生效。

    sudo a2ensite your_app.conf
    sudo a2dissite 000-default.conf # 如使用默认站点,建议禁用避免冲突
    sudo systemctl reload apache2

经过这番配置,你的应用就已经通过一个独立的域名(或IP)在Apache上安家了,并且支持了URL重写功能。

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

最后一步,把各个环节串联起来,并做好上线前的检查和加固。

  • 配置应用连接信息

    打开你项目的配置文件(例如Lara vel的.env文件),填入之前创建的数据库信息:数据库名(DB_DATABASE)、用户名(DB_USERNAME)、密码(DB_PASSWORD)等。务必确保这里的信息和第二步创建数据库时完全一致。

  • 基础测试
    • 打开浏览器,访问 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等工具免费获取SSL证书,并配置强制全站HTTPS,这是现代网站的标配。
    • 关闭生产环境错误显示:在php.ini中,设置display_errors = Off,同时确保log_errors = On。这样既能防止敏感信息泄露给用户,又能让错误记录到日志中供你排查。
    • 调整PHP关键参数:根据应用需求,适当调整memory_limit(内存限制)、upload_max_filesize(上传文件大小)和post_max_size(POST数据大小)等参数。
    • 保持系统更新:定期运行sudo apt update && sudo apt upgrade,保持系统和软件包处于最新状态,修复已知漏洞。
    • 数据库管理(可选):如果需要图形化管理数据库,可以安装phpMyAdmin,但务必将其访问来源限制在可信IP范围内,并设置强密码。

完成以上所有步骤,你的PHP应用就已经在Ubuntu LAMP环境中完成了从部署、配置到基础加固的全过程,可以准备迎接用户访问了。

本文转载于:https://www.yisu.com/ask/2592747.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注