0

0

阿里云 ECS 上部署 Laravel 项目教程(含伪静态配置)

碧海醫心

碧海醫心

发布时间:2025-08-02 16:11:01

|

804人浏览过

|

来源于php中文网

原创

购买并配置阿里云ecs,选择靠近用户的地域和centos/ubuntu系统,配置安全组开放80、443、22及3306端口;2. 通过ssh连接服务器,安装nginx或apache、php及扩展、composermysql/mariadb;3. 使用ftp或scp上传laravel项目至/var/www/html目录,或通过git clone拉取代码;4. 配置nginx或apache的虚拟主机,指向项目public目录并设置伪静态规则;5. 进入项目目录执行composer install、复制.env文件、生成app_key、配置数据库信息并运行php artisan migrate;6. 设置storage和bootstrap/cache目录权限为www-data:www-data(ubuntu)或apache:apache(centos);7. 重启web服务使配置生效,浏览器访问域名或ip验证部署结果;8. 若nginx伪静态不生效,检查配置语法、root路径、try_files指令、php-fpm socket及文件权限;9. 使用supervisor管理队列,安装后创建配置文件指定artisan queue:work命令、运行用户、进程数和日志路径,再通过supervisorctl加载并启动进程;10. 配置https需申请ssl证书,修改nginx或apache配置启用ssl,设置证书路径并重定向http到https;11. 安全加固包括及时更新系统、使用强密码、禁用非必要服务、配置防火墙、启用fail2ban、使用ssh密钥登录并限制登录ip、安装ids及定期备份数据;所有步骤完成后即可成功部署laravel项目并保障基本安全与功能稳定。

阿里云 ECS 上部署 Laravel 项目教程(含伪静态配置)

阿里云 ECS 上部署 Laravel 项目,核心在于服务器环境配置、项目上传和伪静态设置。简单来说,就是搭好房子、搬进去、再把门牌号弄对。

解决方案

  1. 购买并配置阿里云 ECS

    • 选择合适的地域和可用区,靠近你的用户可以降低延迟。
    • 操作系统推荐选择 CentOS 或 Ubuntu,这两个系统社区支持完善,遇到问题容易找到解决方案。
    • 配置安全组规则,开放 80 和 443 端口(HTTP 和 HTTPS),以及 22 端口(SSH)。如果需要连接数据库,还需要开放 3306 端口(MySQL)。注意安全,不要开放不必要的端口。
    • 通过 SSH 连接到你的 ECS 服务器。推荐使用工具如 Xshell、SecureCRT 或者直接使用阿里云提供的 Web Terminal。
  2. 安装必要的软件

    • 安装 Web 服务器 (Nginx 或 Apache)

      • Nginx (推荐):

        sudo yum update  # CentOS
        sudo apt update  # Ubuntu
        sudo yum install nginx  # CentOS
        sudo apt install nginx  # Ubuntu
        sudo systemctl start nginx
        sudo systemctl enable nginx
      • Apache:

        sudo yum update  # CentOS
        sudo apt update  # Ubuntu
        sudo yum install httpd  # CentOS
        sudo apt install apache2  # Ubuntu
        sudo systemctl start httpd
        sudo systemctl enable httpd
    • 安装 PHP 和必要的扩展

      sudo yum install php php-fpm php-mysqlnd php-gd php-xml php-mbstring  # CentOS 7
      sudo apt install php php-fpm php-mysql php-gd php-xml php-mbstring  # Ubuntu

      根据 Laravel 的要求,可能还需要安装其他的 PHP 扩展,例如

      php-zip
      php-curl
      等。

    • 安装 Composer

      curl -sS https://getcomposer.org/installer | php
      sudo mv composer.phar /usr/local/bin/composer
    • 安装 MySQL 或 MariaDB

      • MySQL:

        sudo yum install mysql-server  # CentOS 7
        sudo apt install mysql-server  # Ubuntu
        sudo systemctl start mysqld
        sudo systemctl enable mysqld
        sudo mysql_secure_installation  # 安全配置
      • MariaDB:

        sudo yum install mariadb-server  # CentOS 7
        sudo apt install mariadb-server  # Ubuntu
        sudo systemctl start mariadb
        sudo systemctl enable mariadb
        sudo mysql_secure_installation  # 安全配置
  3. 上传 Laravel 项目

    • 使用 FTP 工具 (例如 FileZilla) 或 SCP 命令将你的 Laravel 项目上传到服务器。通常上传到
      /var/www/html
      目录下。
    • 如果项目使用了 Git 进行版本控制,也可以直接在服务器上
      git clone
      项目。
  4. 配置 Web 服务器

    • Nginx 配置 (推荐):

      • 创建 Nginx 配置文件

        /etc/nginx/conf.d/laravel.conf
        (文件名可以自定义)。

        server {
            listen 80;
            server_name your_domain.com; # 替换为你的域名或服务器 IP
        
            root /var/www/html/your_project/public; # 替换为你的项目 public 目录
        
            index index.php;
        
            location / {
                try_files $uri $uri/ /index.php?$query_string;
            }
        
            location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根据你的 PHP 版本修改
            }
        
            location ~ /\.ht {
                deny all;
            }
        }
      • 重启 Nginx 服务:

        sudo systemctl restart nginx

    • Apache 配置:

      • 修改 Apache 配置文件

        /etc/httpd/conf/httpd.conf
        (CentOS) 或
        /etc/apache2/apache2.conf
        (Ubuntu)。

      • 确保

        AllowOverride All
        指令在
        <Directory /var/www/html>
        <Directory /var/www/html/your_project>
        块中启用。

      • 在项目根目录下创建或修改

        .htaccess
        文件,内容如下:

        <IfModule mod_rewrite.c>
            <IfModule mod_negotiation.c>
                Options -MultiViews -Indexes
            </IfModule>
        
            RewriteEngine On
        
            # Redirect Trailing Slashes If Not A Folder...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)/$ /$1 [L,R=301]
        
            # Handle Front Controller...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]
        
            # Handle Authorization Header
            <IfModule mod_headers.c>
                RewriteEngine On
                RewriteCond %{HTTP:Authorization} .
                RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
            </IfModule>
        </IfModule>
      • 重启 Apache 服务:

        sudo systemctl restart httpd
        (CentOS) 或
        sudo systemctl restart apache2
        (Ubuntu)

  5. 配置 Laravel 项目

    • 进入项目目录:
      cd /var/www/html/your_project
    • 安装依赖:
      composer install
    • 复制
      .env.example
      文件并重命名为
      .env
      cp .env.example .env
    • 生成 APP_KEY:
      php artisan key:generate
    • 配置数据库连接信息,修改
      .env
      文件中的
      DB_HOST
      DB_DATABASE
      DB_USERNAME
      DB_PASSWORD
    • 运行数据库迁移:
      php artisan migrate
    • 设置文件存储权限:
      sudo chown -R www-data:www-data storage bootstrap/cache
      (Ubuntu) 或
      sudo chown -R apache:apache storage bootstrap/cache
      (CentOS)
  6. 配置伪静态

    ChatMind
    ChatMind

    ChatMind是一款AI生成思维导图的效率工具,可以通过AI对话生成和编辑思维导图。

    下载

    伪静态的配置已经在 Web 服务器配置中完成,Nginx 和 Apache 的配置文件都包含了伪静态规则。

  7. 访问你的网站

    在浏览器中输入你的域名或服务器 IP 地址,如果一切配置正确,你应该能看到你的 Laravel 项目。

Nginx 伪静态配置不生效怎么办?

首先,确认 Nginx 配置文件中的

root
指令指向的是 Laravel 项目的
public
目录。其次,检查
try_files
指令是否正确配置。如果仍然有问题,可以尝试以下方法:

  • 检查 Nginx 配置文件语法错误: 使用
    sudo nginx -t
    命令检查配置文件是否存在语法错误。
  • 检查 PHP-FPM 配置: 确保
    fastcgi_pass
    指令指向正确的 PHP-FPM socket 文件。
  • 检查文件权限: 确保 Nginx 用户 (通常是
    www-data
    nginx
    ) 对 Laravel 项目的
    storage
    bootstrap/cache
    目录具有读写权限。
  • 清理浏览器缓存: 有时候浏览器缓存会导致页面显示不正确。

如何使用 Supervisor 管理 Laravel 的队列?

Supervisor 是一个进程管理工具,可以用来监控和管理 Laravel 的队列进程。

  1. 安装 Supervisor:

    sudo yum install supervisor  # CentOS
    sudo apt install supervisor  # Ubuntu
  2. 创建 Supervisor 配置文件:

    /etc/supervisor/conf.d/
    目录下创建一个配置文件,例如
    laravel-queue.conf

    [program:laravel-queue]
    process_name=%(program_name)s_%(process_num)02d
    command=php /var/www/html/your_project/artisan queue:work --sleep=3 --tries=3
    autostart=true
    autorestart=true
    user=www-data  ; Ubuntu
    ;user=apache   ; CentOS
    numprocs=8
    redirect_stderr=true
    stdout_logfile=/var/www/html/your_project/storage/logs/queue.log
    stopwaitsecs=3600
    • command
      指令指定了 Laravel 队列的启动命令。
    • user
      指令指定了运行队列进程的用户。
    • numprocs
      指令指定了启动的队列进程数量。
    • stdout_logfile
      指令指定了队列进程的日志文件。
  3. 更新 Supervisor 配置并启动队列进程:

    sudo supervisorctl reread
    sudo supervisorctl update
    sudo supervisorctl start laravel-queue:*
  4. 检查队列进程状态:

    sudo supervisorctl status

如何配置 HTTPS?

配置 HTTPS 需要申请 SSL 证书,并配置 Web 服务器使用该证书。

  1. 申请 SSL 证书:

    • 可以从阿里云、腾讯云等云服务商购买 SSL 证书。
    • 也可以使用 Let's Encrypt 申请免费的 SSL 证书。
  2. 配置 Nginx 或 Apache 使用 SSL 证书:

    • Nginx:

      修改 Nginx 配置文件,添加 HTTPS 的配置。

      server {
          listen 80;
          server_name your_domain.com;
          return 301 https://$server_name$request_uri; # 将 HTTP 请求重定向到 HTTPS
      }
      
      server {
          listen 443 ssl;
          server_name your_domain.com;
      
          ssl_certificate /path/to/your/ssl_certificate.pem; # 替换为你的 SSL 证书路径
          ssl_certificate_key /path/to/your/ssl_certificate_key.key; # 替换为你的 SSL 证书密钥路径
      
          root /var/www/html/your_project/public;
          index index.php;
      
          location / {
              try_files $uri $uri/ /index.php?$query_string;
          }
      
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/run/php/php7.4-fpm.sock;
          }
      
          location ~ /\.ht {
              deny all;
          }
      }
    • Apache:

      修改 Apache 配置文件,启用 SSL 模块并配置 SSL 证书。

      <VirtualHost *:443>
          ServerName your_domain.com
          DocumentRoot /var/www/html/your_project/public
      
          SSLEngine on
          SSLCertificateFile /path/to/your/ssl_certificate.crt # 替换为你的 SSL 证书路径
          SSLCertificateKeyFile /path/to/your/ssl_certificate_key.key # 替换为你的 SSL 证书密钥路径
      
          <Directory /var/www/html/your_project>
              AllowOverride All
          </Directory>
      </VirtualHost>
  3. 重启 Web 服务器:

    重启 Nginx 或 Apache 服务,使配置生效。

如何进行服务器安全加固?

服务器安全加固是一个持续的过程,需要不断地更新和调整。以下是一些常见的安全加固措施:

  • 更新系统和软件: 及时更新操作系统和软件,修复安全漏洞。
  • 使用强密码: 使用强密码,并定期更换密码。
  • 禁用不必要的服务: 禁用不必要的服务,减少攻击面。
  • 配置防火墙: 使用防火墙限制网络访问,只允许必要的端口开放。
  • 安装入侵检测系统 (IDS): 安装入侵检测系统,监控服务器的安全事件。
  • 定期备份数据: 定期备份数据,防止数据丢失。
  • 使用 SSH 密钥登录: 使用 SSH 密钥登录,禁用密码登录。
  • 限制 SSH 登录 IP: 限制 SSH 登录 IP,只允许特定的 IP 地址登录。
  • 配置 Fail2ban: 使用 Fail2ban 防止暴力破解。

部署 Laravel 项目到阿里云 ECS 上可能遇到的问题很多,但只要耐心排查,总能找到解决方案。 记住,遇到问题多查资料,多尝试,不要轻易放弃。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

339

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

293

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

771

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

384

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

140

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

85

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

79

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

348

2026.03.04

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 13万人学习

ASP 教程
ASP 教程

共34课时 | 5.8万人学习

Python 教程
Python 教程

共137课时 | 11.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号