当前位置: 首页 > article >正文

如何在 Ubuntu 系统上部署 Laravel 项目 ?

How to Deploy Laravel on Ubuntu

到目前为止,Laravel 是 PHP 开发人员构建 api 和 web 应用程序的首选。如果你是新手的话,将 Laravel 应用程序部署到线上服务器上可能有点棘手。

在本指南中,我们将向您展示在 Ubuntu 系统中部署 Laravel 应用程序的全过程。

Step 1: Update Your Server

首先,确保当前的系统包是最新的。

sudo apt update
sudo apt upgrade -y

Step 2: Install Required Software

Laravel 是用 PHP 编程语言编写的,要在 web 上提供服务,您需要像 Apache 这样的 web 服务器。为了永久存储数据,您需要像 MySQL 这样的数据库。总之,您需要安装一些运行 Laravel 应用程序所需的软件。这包括 Apache、MySQL、PHP 和其他一些工具。

(1) 安装 Apache

sudo apt install apache2 -y

(2) 安装 MySQL

sudo apt install mysql-server -y

(3) 安装PHP和相关扩展

sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-mcrypt php-curl php-zip -y

Step 3: Configuring MySQL

首次安装 MySQL 服务器后,需要执行以下命令启动 MySQL 安装向导

sudo mysql_secure_installation

按照说明来确保安装的安全,然后登录到 MySQL,为您的 Laravel 应用程序创建一个数据库。

sudo mysql -u root -p

在 MySQL shell 中,运行以下命令来创建数据库和用户。

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

Step 4: Set Up Apache Server

我们需要配置 Apache 来服务我们的 Laravel 应用程序。首先,启用 mod 重写模块。

sudo a2enmod rewrite

然后,为您的 Laravel 站点创建一个新的 Apache 配置文件。

sudo nano /etc/apache2/sites-available/laravel.conf

将以下内容添加到创建的配置文件中

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/laravel/public

    <Directory /var/www/laravel>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

保存并关闭该文件。然后,启用新站点并重新启动 Apache

sudo a2ensite laravel.conf
sudo systemctl restart apache2

Step 5: Deploy Your Laravel Application

把 Laravel 项目上传到 /var/www/laravel 目录

切换到项目目录,并安装所需的依赖项。

cd /var/www/laravel
composer install

接下来,为存储和缓存目录设置正确的权限。

sudo chown -R www-data:www-data storage
sudo chown -R www-data:www-data bootstrap/cache

Step 6: Configure Environment Variables

Laravel 使用 .env 文件来存储配置设置,更新其中的数据库相关设置。

DB_DATABASE=laravel_app
DB_USERNAME=laravel_user
DB_PASSWORD=your_password

Step 7: Generate Application Key

最后,为 Laravel 应用程序生成一个应用程序密钥。

php artisan key:generate

Step 8: Set Up SSL Certificate

为了保护您的 Laravel 应用程序,您可以使用 Let ’ s Encrypt 来设置一个免费的 SSL 证书。

安装 Certbot

sudo apt install certbot python3-certbot-apache -y

获取并安装 SSL 证书

sudo certbot --apache

按照屏幕上的说明操作,Certbot 将自动为您的站点配置 SSL,并在需要时更新证书。

测试证书续订过程

sudo certbot renew --dry-run

我的开源项目

酷瓜云课堂-在线教育解决方案

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)

http://www.kler.cn/news/307325.html

相关文章:

  • 基于JavaWeb开发的Java+SpringMvc+vue+element实现上海汽车博物馆平台
  • [NSSRound#4 SWPU]hide_and_seek-用gdb调试
  • 美团图床设置教程
  • 基于深度学习的自动化农场管理
  • leetcode14.最长公共前缀
  • 鸿蒙 ArkUI组件二
  • 鹏哥C语言36-37---循环/分支语句练习(折半查找算法)
  • RNN股票预测(Pytorch版)
  • 大模型参数高效微调技术原理综述(八)-MAM Adapter、UniPELT
  • Redhat 8,9系(复刻系列) 一键部署Oracle23ai rpm
  • 模型训练的过程中对学习不好的样本怎么处理更合适
  • Qt4Qt5Qt6版本下载(在线和离线)
  • C++ | Leetcode C++题解之第405题数字转换为十六进制数
  • 文本分类实战项目:如何使用NLP构建情感分析模型
  • Element-ui el-table 全局表格排序
  • 腾讯云软件工程师面试问题收集记录-数据库
  • redis简单使用与安装
  • Java并发:互斥锁,读写锁,Condition,StampedLock
  • shopify主题开发之template模板解析
  • C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(3)
  • 蓝桥杯-基于STM32G432RBT6的LCD进阶(LCD界面切换以及高亮显示界面)
  • 【AIGC】CFG:基于扩散模型分类器差异引导
  • JavaScript 函数 function
  • 用 nextjs 创建 Node+React Demo
  • WebGL入门(048):OES_draw_buffers_indexed 简介、使用方法、示例代码
  • Python---爬虫
  • Leetcode-轮转数组
  • 复现OpenVLA:开源的视觉-语言-动作模型及原理详解
  • 【Go开发】Go语言结构体,与java类不一样的定义方式
  • 推荐|基于springBoot智能推荐的卫生健康系统设计与实现(源码+论文+数据库)