1. 云栖社区>
  2. PHP教程>
  3. 正文

Laravel Web Installer : 让 Laravel 应用像 WordPress 一样通过浏览器进行安装升级

作者:用户 来源:互联网 时间:2017-12-01 13:43:18

升级应用浏览器

Laravel Web Installer : 让 Laravel 应用像 WordPress 一样通过浏览器进行安装升级 - 摘要: 本文讲的是Laravel Web Installer : 让 Laravel 应用像 WordPress 一样通过浏览器进行安装升级,1、概述 你是否想让自己开发的Laravel 应用可以像 WordPress、Discuz 或者其他 CMS 一样通过浏览器进行 安装 。 Laravel Web Installer 这个第三方扩展包我们带来了福音,通过该扩展包,不再

1、概述

你是否想让自己开发的Laravel 应用可以像 WordPress、Discuz 或者其他 CMS 一样通过浏览器进行 安装 。 Laravel Web Installer 这个第三方扩展包我们带来了福音,通过该扩展包,不再需要使用 Composer、SSH 这些命令行工具,你完全可以在浏览器中按照向导一步步实现应用的安装和升级工作。

注:需要指出的是这里安装指的不是 Laravel 的安装,即通过 laravel new project 或者 composer create-project 这些命令实现的操作,而是基于 Laravel 开发的电商、博客、CMS 这些具体应用的安装和升级操作。

该扩展包我们提供了以下功能:

检查服务器是否满足要求 检查项目文件权限 设置数据库信息 更新已存在的应用 迁移数据库 填充数据表 2、安装

在 Laravel 项目根目录下,使用 Composer 安装依赖包:

composer require rachidlaasri/laravel-installer ~1.3

安装完成后,需要在 config/app.php 中如下注册服务提供者:

RachidLaasri/LaravelInstaller/Providers/LaravelInstallerServiceProvider::class, 3、使用

在使用该扩展包之前还需要运行如下 Artisan 命令发布配置文件及前端资源:

php artisan vendor:publish

该命令执行后项目中新增一些文件及文件件:

config/installer.php – 该文件即为本扩展包的配置文件,用于配置数据库迁移及填充文件、项目需要的 PHP 扩展以及目录权限的配置。 public/installer/css/main.css – 该文件定义了安装界面默认的 CSS 样式 resources/views/vendor/installer – 该目录下包含了安装界面所需的视图文件 resources/lang/en/messages.php – 该文件定义了安装页面的提示文字,如果需要的话可以定义本地化消息,比如对应的中文翻译版本。

应用安装

下面我们在浏览器中访问 http://dev.laravel.app/install ,页面显示如下:

Laravel Web Installer : 让 Laravel 应用像 WordPress 一样通过浏览器进行安装升级

然后我们既可以按照向导一步步执行下去,直到安装完成,安装成功后会在 storage 目录下生成 installed 文件,下次再访问 http://dev.laravel.app/install ,LaravelWeb Installer会根据中间件 canInstall 判断是否该目录下是否包含 installed ,如果包含会认为已经安装,页面直接重定向到 http://dev.laravel.app ,不再执行安装操作。

应用升级

要升级应用,需要修改 config/installer.php 文件中 last_version 配置值,将其修改为大于之前的版本号即可,比如之前为 1.0,现在改成 1.1,然后在浏览器中访问 http://dev.laravel.app/upgrade ,页面显示如下:

Laravel Web Installer : 让 Laravel 应用像 WordPress 一样通过浏览器进行安装升级

同样按照升级向导一步步操作,直到升级成功,升级成功后会更新 storage/installed 文件中的版本号,这样,如果不修改 config/installer.php 文件中的 last_version 配置值,或者修改后的值小于之前版本的话,都不会执行升级操作。

小问题

当前版本 Laravel Web Installer 似乎有点小问题,按照其数据库迁移实现逻辑一次只能执行一个迁移,如果想要执行所有迁移需要对源码做改动。

将配置文件 config/installer.php 中的 migrates 设置为 true (或者其他任意字符串,不要为空即可):

'migrations' => 'true'

然后修改扩展包源码 vendor/rachidlaasri/laravel-installer/src/Helpers/UpgradeManager.php 的第29行代码如下:

Artisan::call('migrate');

这样在安装/升级的时候才能一次运行所有未执行的迁移。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索升级 , 应用 浏览器 ,以便于您获取更多的相关知识。