轻松部署 Laravel 应用 | 《01. 宝塔面板》

:clap: 本系列持续更新中,欢迎关注:https://github.com/wi1dcard/laravel-deployment

由于课程上下文关联比较紧密,在开始前请先阅读 本文

你的支持是我写作的动力;关注我的客官们,请在右上角点个赞,将会让文章在首页展示,帮助更多人。

感谢 :clap: !

和许多国内 PHP 程序员一样,最早接触服务器部署就是依靠 一键 Web 管理面板

常见 Web 面板

目前市面上流行的面板很多,例如:

前前后后几年开发过程中,以上四款面板我均有过深度使用,个人比较喜欢 AMH 和 AppNode。

宝塔是这个圈子里的后起之秀,16 年才开始做面板。不过凭借着相对美观的 UI,以及长期免费、简单易用等优势,抢占了不少零基础用户。

安装宝塔

注意:由于兼容性原因,建议需要使用宝塔面板的用户采用 CentOS 7 系统。本小节将基于该系统进行部署。

登录服务器,执行以下命令即可:

$ wget -O install.sh http://download.bt.cn/install/install.sh
$ bash install.sh

其中,第一条命令是下载一键安装脚本;第二条命令则是执行脚本。

稍等片刻,出现以下提示:

Do you want to install Bt-Panel to the /www directory now?(y/n):

意为询问你是否现在安装宝塔面板到 /www 目录?请输入 y 继续。

随后大概需要 2 分钟左右安装,会有一大堆输出,我们不必关注。

注意:安装过程中,请保证优良的网络环境,若 SSH 连接断开则需要重新来过。

若安装成功,你将会看到如下输出:

==================================================================
Congratulations! Installed successfully!
==================================================================
Bt-Panel: [管理面板 URL]
username: [宝塔面板用户名]
password: [宝塔面板密码]
Warning:
If you cannot access the panel,
release the following port (8888|888|80|443|20|21) in the security group

请记住此处的面板 URL、用户名和密码,稍后我们会用到。

注意:这里的用户名是宝塔面板的专用用户名,并非 root;密码也与 SSH 连接服务器时使用的密码不同,请勿混淆。

注意:若出现无法安装、报错等问题,请到宝塔官方论坛进行提问,或联系其官方寻求技术支持。由于闭源,我无法提供任何帮助。

安全组

为了能够打开 Web 面板的管理页面,需在云服务商管理页面配置安全组,放行 8888 端口,这里有几篇来自宝塔的官方说明可供参考:

你也可以查看云服务商的帮助文档,或是寻求技术支持。

登录管理页

好了,现在你可以打开先前安装成功后展示的面板 URL(通常为 http://<服务器公网IP>:8888),输入用户名、密码并登录。

安装运行环境

登录成功后,将出现默认提示:

这类似于国产安卓机首次打开应用市场时推荐的「装机必备」,你可以根据需要快速选择需要安装的组件。作为演示,我采用 LNMP,并安装以下组件的指定版本:

LNMP = Linux + Nginx + MySQL + PHP

确认无误后,点击 一键安装 即可。

可以看到,宝塔面板已开始自动调度并在后台执行安装任务了:

你可能会发现 CPU 使用率、系统负载迅速飙高,不必担心,这是正常现象。

由于安装过程是完全后台的,所以可以随意关闭这个窗口甚至浏览器,断网也没关系。重新登录后,点击左上角的数字(例如 3⃣️)即可回到安装进度:

安装耗时可能在数分钟到数小时不等,以日常经验来看,喝杯咖啡是足够的。

当你发现左上角的橙底数字变为 0⃣️,或是看到类似下图的页面:

即说明运行环境已经安装完成了。

配置运行环境

首先,请在宝塔管理页面单击左侧菜单内的 网站

点击 添加站点

输入域名等信息,若没有域名可使用服务器公网 IP 代替:

注意:如果你的服务器位于国内,则必须备案后才可通过域名访问;详情请自行搜索「网站备案」。

确认无误后点击 提交,站点即可创建成功:

接下来,请在浏览器内输入服务器的公网 IP(或域名)并打开:

出现类似以上页面,说明运行环境配置成功,接下来可以上传代码、部署项目了。

部署项目

我们首先来尝试最直接的方式 —— 将代码打包成压缩包并上传至服务器解压。

注意:在生产环境中这样做很危险!请关注后续章节。

在开始之前,请在你本地的系统中将示例 Laravel 应用打包为 .zip 压缩包。

随后,在刚刚的列表内,点击新站点的对应目录:

跳转至文件管理后,请点击左上角的 上传 按钮:

选择刚刚打包的 Zip 文件,上传;稍等片刻即可上传成功:

回到文件列表,找到该压缩包并解压:

在弹出窗口内点击 解压 即可。解压成功后,点击解压后的文件夹,全选文件并点击右上角的 剪切

回到上层目录点击右上角的 粘贴所有,将所有文件移动到网站根目录。

最后,我们还需要进行一些特殊配置,点击左侧菜单内的 网站,找到我们的站点,点击右侧的 设置 按钮。

选择设置窗口左侧的 网站目录,运行目录一项请选择 /public 并保存:

伪静态 内,选择 Laravel 5 并保存:

最终效果

在浏览器内刷新运行环境配置成功的页面,你将会看到 Laravel 应用的默认主页:

恭喜你,部署成功。

为什么是宝塔?

上文说到,我个人并不十分喜欢宝塔。相比它,AMH 和 AppNode 代码更加规范可靠,扩展性也更好。但使用一键 Web 面板就是图个简单易用,后续文章介绍的方案将会比 AMH 具有更大的优势,如果你觉得宝塔不够好,说明 Web 面板已经不适合你了,请继续阅读吧。

我感谢自己平凡,敢爱敢恨没负担。
我感谢自己不凡,可爱可恨都包揽。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5

哈哈 你这个可以
是不是下一步 oneinstack :joy:

1周前

@LittleAngel 下一篇就是说的一键脚本:https://learnku.com/articles/24918,不过这两种方式都不是特别推荐。

1周前

@Wi1dcard 嗯 是的 自己动手安装,修改起来也比较顺手

1周前

宝塔的redis端口6379建议修改,很容易被攻击然后用来挖矿

5天前

@人厶八夂 你redis不会设置密码吗

4天前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
未填写
文章
32
粉丝
146
喜欢
431
收藏
259
排名:88
访问:2.25 万+
私信
Ta 的博客首页