”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 在 Ubuntu 上轻松部署 Laravel:LEMP Stack 初学者指南

在 Ubuntu 上轻松部署 Laravel:LEMP Stack 初学者指南

发布于2024-11-01
浏览:639

Easy Laravel Deployment on Ubuntu: A Beginner

使用 LEMP 堆栈(Linux、Nginx、MySQL、PHP)在 Ubuntu 上部署 Laravel 应用程序似乎令人畏惧,但逐步分解使其易于管理。本指南将引导您完成从服务器设置到部署 Laravel 应用程序的过程。

先决条件:

  • 您应该有一个Ubuntu 服务器(本地或云,例如 AWS、DigitalOcean)。
  • 对终端有基本的熟悉。
  • A 域名(可选,但推荐)。

第 1 部分:设置 LEMP 堆栈

第 1 步:更新系统

首先确保您的服务器是最新的。

sudo apt update && sudo apt upgrade -y

第2步:安装Nginx

Nginx 将为您的应用程序提供服务。

sudo apt install nginx -y

安装后,您可以启动并启用 Nginx 开机运行:

sudo systemctl start nginx
sudo systemctl enable nginx

您可以通过在浏览器中访问服务器的 IP 地址来验证 Nginx 是否正在运行。

第三步:安装MySQL

接下来,我们将安装MySQL数据库服务器。

sudo apt install mysql-server -y

保护 MySQL 安装:

sudo mysql_secure_installation

这将提示您设置 root 密码并删除不安全的默认值。

第四步:安装PHP

Laravel 需要 PHP,所以让我们安装它以及一些必要的扩展:

sudo apt install php-fpm php-mysql php-cli php-xml php-mbstring php-curl php-zip -y

验证 PHP 安装:

php -v

您应该看到类似以下内容:

PHP 7.x.x (cli) (built: ...)

第 2 部分:为 Laravel 配置 MySQL

第1步:登录MySQL

以root用户登录MySQL控制台:

sudo mysql

第 2 步:创建数据库

为 Laravel 应用程序创建新的数据库和用户:

CREATE DATABASE laravel_app;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

第 3 步:测试数据库

确保新的数据库用户可以连接:

mysql -u laravel_user -p

系统将提示您输入密码,然后输入:

SHOW DATABASES;

您应该在列表中看到 laravel_app。


第 3 部分:安装 Laravel

第 1 步:安装 Composer

Laravel 使用 Composer 作为其依赖管理器。安装作曲家:

sudo apt install composer -y

第 2 步:创建 Laravel 项目

导航到要安装 Laravel 的目录(例如 /var/www/):

cd /var/www/
composer create-project --prefer-dist laravel/laravel laravel_app

步骤3:设置目录权限

Laravel 要求 Web 服务器可写某些目录:

sudo chown -R www-data:www-data /var/www/laravel_app
sudo chmod -R 775 /var/www/laravel_app/storage
sudo chmod -R 775 /var/www/laravel_app/bootstrap/cache

步骤 4:配置 .env 文件

在 Laravel 项目根目录中,打开 .env 文件并配置数据库设置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_app
DB_USERNAME=laravel_user
DB_PASSWORD=strong_password

第 4 部分:为 Laravel 配置 Nginx

第 1 步:创建新的 Nginx 服务器块

我们将为 Laravel 项目创建一个 Nginx 配置文件。

sudo nano /etc/nginx/sites-available/laravel_app

在文件中添加以下配置:

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/laravel_app/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.x-fpm.sock; # Change this to the correct PHP version.
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

将your_domain_or_ip替换为您的实际域名或服务器IP地址。

第2步:启用Nginx配置

通过创建指向启用站点的符号链接来启用新的 Nginx 配置:

sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/

第 3 步:测试并重新加载 Nginx

测试 Nginx 配置以确保没有语法错误:

sudo nginx -t

如果一切正常,重启Nginx:

sudo systemctl reload nginx

第 5 部分:最后步骤

第 1 步:运行 Laravel 迁移

运行 Laravel 迁移来设置数据库:

cd /var/www/laravel_app
php artisan migrate

第 2 步:访问应用程序

您现在应该能够通过在浏览器中导航到服务器的 IP 或域来访问 Laravel 应用程序。您将看到默认的 Laravel 欢迎页面。

步骤 3:启用 HTTPS(可选但推荐)

如果您有域名,请使用 Let's Encrypt 保护您的网站:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain

按照说明安装 SSL 证书。 Certbot 将自动配置 Nginx 将 HTTP 流量重定向到 HTTPS。


第 6 部分:可选:设置 Laravel 队列和调度程序

Laravel 队列:

队列处理诸如发送电子邮件或在后台处理作业等任务。

  1. 设置队列驱动程序(例如,Redis 或数据库)。
  2. 运行 Laravel 队列工作程序:
   php artisan queue:work

Laravel 调度程序:

使用 Laravel 的任务调度功能来执行清除缓存、发送每日电子邮件等任务。

  1. 将 Laravel cron 条目添加到您的 crontab 中:
   sudo crontab -e

添加以下行:

   * * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1

结论:

您已使用 LEMP 堆栈在 Ubuntu 服务器上成功部署了 Laravel 应用程序。从这里,您可以继续开发您的应用程序、保护它并监控它的性能。

如果遇到任何问题,请检查位于 /var/log/nginx/error.log 的 Nginx 错误日志或位于 /var/www/laravel_app/storage/logs/laravel.log 的 Laravel 日志。

通过这些步骤,您已经完成了完整的 Laravel 实际部署!

版本声明 本文转载于:https://dev.to/mdarifulhaque/easy-laravel-deployment-on-ubuntu-a-beginners-guide-with-lemp-stack-155a?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3