【Ubuntu】如何轻松在Apache服务器上部署Laravel博客系统

Laravel 是一个 PHP 框架,和 Angular 以及 Symfony 类似,它能让你快速且高效地搭建出功能强大的网站。在这篇文章里,我将手把手教你如何在 Ubuntu 系统上使用 Apache 和 MySQL 部署 Laravel 应用。

步骤 1:更新系统

首先,咱们得把系统的软件包列表更新一下,并把所有过时的包升级到最新版本。这就好比给你的电脑来一次大扫除,确保一切都能顺畅运行。

$ sudo apt update
$ sudo apt upgrade -y

步骤 2:安装必要的软件包

要让 Laravel 能正常工作,你需要先安装一些基本的软件包,比如 Apache、MySQL、PHP 以及一些 PHP 扩展模块。这些就像为 Laravel 准备的食材,缺一不可。

$ sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-xml php-mbstring php-mcrypt php-curl php-zip

步骤 3:配置 MySQL

现在咱们已经把需要的软件都装好了,接下来就是配置 MySQL 来配合 Laravel 使用。我们会通过运行一个 MySQL 脚本来调整几个安全相关的设置,这个过程就像是给 MySQL 加一把锁,让它更安全。

$ sudo mysql_secure_installation

执行上面的命令后,你会被问到一系列问题,按照下面的回答来:

  • 要不要设置 VALIDATE PASSWORD 组件?N
  • 删除匿名用户?Y
  • 禁止 root 用户远程登录?Y
  • 删除测试数据库及其访问权限?Y
  • 现在重新加载权限表?Y

是时候为 Laravel 创建一个数据库和一个新的用户了。让我们先进入 MySQL 控制台吧。

$ sudo mysql -u root

接着,你可以创建一个名为 laravel_app 的示例数据库和一个名为 laravel_user 的示例用户。当然,你可以根据自己的喜好更改数据库名和用户名,但一定要记得设置一个更安全的密码哦。

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

步骤 4:安装 Composer

到了这一步,我们该安装 Composer 了,它是用来创建 Laravel 应用的好帮手。跟着下面的脚本走就对了。

$ curl -sS https://getcomposer.org/installer | php

之后,我们需要把 “composer.phar” 文件移到 “/bin” 目录下,并赋予它可执行权限,这样就可以直接用 composer 命令啦。

$ sudo mv composer.phar /usr/local/bin/composer
$ sudo chmod +x /usr/local/bin/composer

步骤 5:安装 Laravel

终于可以创建 Laravel 项目了!我们就把它命名为 “laravel_proj” 吧。

$ composer create-project --prefer-dist laravel/laravel laravel_proj

然后进入项目目录并编辑 “.env” 文件,这是 Laravel 的环境配置文件,相当于它的身份证。

$ cd laravel_proj
$ vim .env

在文件中找到以下几行,去掉 # 号以取消注释,并确保它们的值是你刚才设置的数据库名、用户名和密码(如果你用了默认的名字和密码的话)。

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

保存并关闭文件,然后运行下面的命令,利用 “database/migrations” 目录下的迁移文件快速创建数据库表结构,同时实现数据库版本控制。

$ php artisan migrate

步骤 6:本地开发

现在你已经可以在本地系统上访问 Laravel 应用了。只需运行以下命令,应用就会在 localhost 的 80 端口上运行。

$ sudo php artisan serve --host=localhost --port=80

打开浏览器,输入 “http://localhost/” 就能看到你的 Laravel 应用了。

步骤 7:部署 Laravel 应用

为了把应用部署到服务器上,你需要把 Laravel 目录(我们叫它 “laravel_proj”)移动到 “/var/www/html” 目录下。虽然这不是硬性规定,但这是最传统的方法,我们就这么办吧。

$ cd ..
$ sudo mv laravel_proj/ /var/www/html/

接下来,我们递归地把 “www-data” 设置为目录的所有者,并授予 “storage” 目录必要的权限,以便 Laravel 应用能够顺利写入数据。

$ sudo chgrp -R www-data /var/www/html/laravel_proj/
$ sudo chmod -R 775 /var/www/html/laravel_proj/storage/

下一步是为 Laravel 应用创建一个 Apache 配置文件。使用下面的命令创建一个 “laravel.conf” 文件。

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

把下面这段代码粘贴进去:

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

<Directory /var/www/html/laravel_proj>  Options Indexes FollowSymLinks  AllowOverride All  Require all granted  
</Directory>  ErrorLog ${APACHE_LOG_DIR}/error.log  
CustomLog ${APACHE_LOG_DIR}/access.log combined  

保存并关闭文件,别忘了禁用默认的 Apache 配置文件。

$ sudo a2dissite 000-default.conf

之后,激活我们为 Laravel 应用创建的配置文件。

$ sudo a2ensite laravel.conf

最后,启用 Apache 的 rewrite 模块并重启 Apache 服务,让所有更改生效。

$ sudo a2enmod rewrite
$ sudo systemctl restart apache2

步骤 8:允许防火墙

UFW(Uncomplicated Firewall)是预装在 Ubuntu 上的防火墙工具,如果你正在用它管理防火墙规则,记得要开启 Apache 所需的端口,这样才能保证外部可以访问你的网站。

$ sudo ufw allow “Apache Full”

结语

好啦,到这里你就完成了 Laravel 应用的部署!你可以通过 IP 地址或域名来访问你的 Laravel 应用了。如果在过程中遇到任何问题,欢迎在评论区留言,我会尽力帮你解决。祝你玩得开心!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/496862.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV-Python实战(6)——图相运算

一、加法运算 1.1 cv2.add() res cv2.add(img1,img2,dstNone,maskNone,dtypeNone) img1、img2&#xff1a;要 add 的图像对象。&#xff08;shape必须相同&#xff09; mask&#xff1a;图像掩膜。灰度图&#xff08;维度为2&#xff09;。 dtype&#xff1a;图像数据类型…

41 stack类与queue类

目录 一、简介 &#xff08;一&#xff09;stack类 &#xff08;二&#xff09;queue类 二、使用与模拟实现 &#xff08;一&#xff09;stack类 1、使用 2、OJ题 &#xff08;1&#xff09;最小栈 &#xff08;2&#xff09;栈的弹出压入序列 &#xff08;3&#xf…

运行StableDiffusionInpaintPipeline的Example时报错:OSError: Cannot load model runwayml/stable-diffusion-...

项目地址&#xff1a; https://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/inpainthttps://huggingface.co/docs/diffusers/api/pipelines/stable_diffusion/inpaint在云服务器端运行下面给出的Example的时候出现报错&#xff1a; (myconda) rootwnyrpE:…

JDK高频面试题(包重点)

一、什么是JDK JDK&#xff08;Java Development Kit&#xff09;即 Java 开发工具包&#xff0c;是 Java 编程的基础与核心&#xff0c;由 Sun Microsystems&#xff08;现归属于 Oracle 公司 &#xff09;开发&#xff0c;主要作用如下&#xff1a; 1、提供编译环境 它包含了…

pikachu靶场搭建详细步骤

一、靶场下载 点我去下载 二、靶场安装 需要的环境&#xff1a; mysqlApaches&#xff08;直接使用小皮面板Phpstudy&#xff1a;https://www.xp.cn/&#xff09;&#xff0c;启动他们 设置网站&#xff0c;把靶场的路径对应过来 对应数据库的信息 由于没有核对数据库的信…

第P4周:猴痘病识别

目录 前言一、我的环境二、代码实现1. 前期准备1.1 设置GPU1.2 导入数据1.3 划分数据集 2. 构建简单的CNN网络3. 训练模型3.1 设置超参数3.2 编写训练函数3.3 编写测试函数3.4 正式训练 4. 结果可视化4.1 Loss与Accuracy图4.2 指定图片进行预测 5. 保存并加载模型 三、学习体会…

ElasticSearch - 深入解析 Elasticsearch Composite Aggregation 的分页与去重机制

文章目录 Pre概述什么是 composite aggregation&#xff1f;基本结构after 参数的作用问题背景&#xff1a;传统分页的重复问题after 的设计理念响应示例 after 如何确保数据不重复核心机制Example步骤 1: 创建测试数据创建索引插入测试数据 步骤 2: 查询第一页结果查询第一页返…

如何用WPS AI提高工作效率

对于每位职场人而言&#xff0c;与Word、Excel和PPT打交道几乎成为日常工作中不可或缺的一部分。在办公软件的选择上&#xff0c;国外以Office为代表&#xff0c;而在国内&#xff0c;WPS则是不可忽视的一大选择。当年一代天才程序员求伯君创造了WPS&#xff0c;后面雷军把它装…

深度学习中的并行策略概述:1 单GPU优化

深度学习中的并行策略概述&#xff1a;1 单GPU优化 1 Training Larger Models on a Single GPU 在讨论模型的“扩展”时&#xff0c;往往会想到在多个GPU或多台机器上进行模型训练。不过&#xff0c;即便是在单个GPU上&#xff0c;也存在多种方法来训练更大规模的模型并提升…

Go+chromedp实现Web UI自动化测试

1.为什么使用go进行UI自动化测试&#xff1f; 速度&#xff1a;Go速度很快&#xff0c;这在运行包含数百个UI测试的测试套件时是一个巨大的优势 并发性&#xff1a;可以利用Go的内置并发性(goroutines)来并行化测试执行 简单&#xff1a;Go的简约语法允许您编写可读且可维护…

2、C#基于.net framework的应用开发实战编程 - 设计(二、三) - 编程手把手系列文章...

二、设计&#xff1b; 二&#xff0e;三、构建数据库&#xff1b; 此例子使用的是SQLite数据库&#xff0c;所以数据库工具用的SQLiteStudio x64&#xff0c;这个是SQLite专用的数据库设计管理工具&#xff0c;其它的数据库管理工具比如DBeaver的使用请见实战工具系列文章。 1、…

2011-2020年各省城镇职工基本医疗保险年末参保人数数据

2011-2020年各省城镇职工基本医疗保险年末参保人数数据 1、时间&#xff1a;2011-2020年 2、来源&#xff1a;国家统计局 3、指标&#xff1a;省份、时间、城镇职工基本医疗保险年末参保人数 4、范围&#xff1a;31省 5、指标解释&#xff1a;参保人数指报告期末按国家有关…

Github优质项目推荐(第九期)

文章目录 Github优质项目推荐&#xff08;第九期&#xff09;一、【tldraw】&#xff0c;37.1k stars - 在 React 中创建无限画布体验的库二、【zapret】&#xff0c;9.1k stars - 独立&#xff08;无需第三方服务器&#xff09;DPI 规避工具三、【uBlock】&#xff0c;48.3k s…

Web安全攻防入门教程——hvv行动详解

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中&#xff0c;保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现&#xff0c;还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻防…

KOI技术-事件驱动编程(前端)

1 “你日渐平庸&#xff0c;甘于平庸&#xff0c;将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的&#xff0c;那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人&#xff0c;和他们斗了那么久&#xff0c;最终却要变得和他们一样&#xff0c;…

嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目

此项目是基于人脸识别的考勤系统开发&#xff0c;包括如下模块&#xff1a; 1、人脸识别考勤系统GUI界面设计&#xff0c;包括&#xff1a; &#xff08;1&#xff09;Qt环境(window环境/linux环境) &#xff1b; &#xff08;2&#xff09;Qt工程创建分析&#xff1b; &am…

UGUI简单动画制作

一、最终效果 UI简单动画制作 二、制作过程 1、打开动画制作窗口 2、新建一个动画 3、给一个对象制作动画 4、创建动画控制器进行不同动画变换控制 5、书写脚本&#xff0c;通过按钮来进行不同动画切换 using System.Collections; using System.Collections.Generic; using U…

Windows Powershell实战指南(未完成)

目前只作简单了解&#xff0c;开始吧。 一、初识Powershell 目标 初步认识 Powershell和其集成环境 Ise&#xff0c;学会基本设置 实验 我们从简单的例子开始&#xff1a;希望你能从控制台和ISE的配置中实现相同的结果。然后按照下面五步进行。 &#xff08;1&#xff09;选…

PyQt实战——实现可视化音频播放器(十三)

系类往期文章&#xff1a; PyQt5实战——多脚本集合包&#xff0c;前言与环境配置&#xff08;一&#xff09; PyQt5实战——多脚本集合包&#xff0c;UI以及工程布局&#xff08;二&#xff09; PyQt5实战——多脚本集合包&#xff0c;程序入口QMainWindow&#xff08;三&…

Java日志框架:log4j、log4j2、logback

文章目录 配置文件相关1. properties测试 2. XMl使用Dom4j解析XML Log4j与Log4j2日志门面 一、Log4j1.1 Logges1.2 Appenders1.3 Layouts1.4 使用1.5 配置文件详解1.5.1 配置根目录1.5.2 配置日志信息输出目的地Appender1.5.3 输出格式设置 二、Log4j22.1 XML配置文件解析2.2 使…