如何正确的下载安装使用别人的laravel项目?

laravel 作为最流行的 php 框架;
自然少不了很多基于 laravel 开发的项目;
不过很多项目因为还处于开发中;
或者其他原因并没有写安装文档;
举个反面栗子;
比如说我的 laravel-bjyadmin ;
这种一般就是面向 laravel 开发者的;
需要有 laravel 的基础才能顺利的安装使用;

还有很多已经比较成熟的项目;
一般都是有比较详细的安装文档的;
举个正面的栗子;
比如说我的 laravel-bjyblog ;
直接按照安装文档基本都能成功;
但是可能总有这样那样的问题;
也可能甚至对 laravel 更甚至对 php 都不是很了解;
就是单纯的想使用某个项目;
最近就有做 Android 开发的童鞋;
历经了千辛万苦才顺利的搞定了我开源的博客程序;
于是我决定写个稍微详细通用点的 laravel 项目的下载安装使用说明;

先说准备工作;
首先是需要有 php 的环境;
windows 本地我之前已经写过相关的文章可以直接参考;
phpstudy配置虚拟主机及开启扩展 ;
linux 下的针对小白用户我计划下篇文章也详细的写下;
然后需要 composer ;
这个我也写过文章 composer的初级使用 ;
最后还需要 git ;
这个我暂时没有写基础使用文章;
可以参考前辈 廖雪峰 老师的基础教程 Git教程
不过 git bash 的使用还是有的 插播一篇windows下git bash命令行使用的文章

当我们想用某个项目的时候;
我们首先就要下载它了;
下面都以我的博客项目 laravel-bjyblog 作为示例讲解;

我们可以通过两种方式下载;
可以直接 Download ZIP 下载 zip 压缩包;
这种方式是只下载项目文件比较快;
或者使用命令行把项目 clone 到本地;

git clone https://github.com/baijunyao/laravel-bjyblog.git

这种方式可以将项目的历史开发记录也都 clone 下来;
以后也可以方便的使用 git pull 拉取最新的代码;

不管使用哪种方式;
把一个 laravel 下载下来后目录结构基本都这样;

刚下载下来的 laravel 跟正常使用的相比差个 .env 文件和 vendor 文件夹 ;
我们需要复制跟目录下的 .env.example 文件并重命名为 .env
这个是项目的示例配置文件;
我们需要改成自己的实际配置;

APP_NAME 就是自己的项目名称比如我的白俊遥博客;
APP_URL 就是我们的项目链接比如说我的 https://baijunyao.com
本地的话就是我们配置的虚拟主机自定义的本地域名;
DB_DATABASE 就是我们的数据库名比如说 test;
DB_USERNAME 数据库用户名比如说 root ;
DB_PASSWORD 数据库密码比如说 123456 ;

vendor 目录则不用我们手动创建;
我们在根目录下执行 composer install 命令;
然后界面一阵滚动最后就完了;
我们会发现 根目录下多了个 vendor ;
另外使用 composer update 也会生成 vendor ;
同时会改变 composer.lock 文件;
这里简单的讲解下 install 和 update 这两个方法;
项目的开发者在开发的时候会生成 composer.lock 文件;
它记录了开发者开发的时候使用的各扩展包的版本号;
比如说某个扩展包开发者使用的是 1.0.1 版本;
我们使用 composer install 就是安装跟开发者一样版本的扩展包;
而 composer update 则是更新各扩展包;
这样的话可能我们某个扩展包 update 到了1.0.2 ;
但是因为开发者还没测过 1.0.2 的兼容而产生错误;
而且因为改变了 composer.lock 文件我们在 git pull 拉取新代码的时候也会冲突;
简单点说个原则就是;
如果我们是开发者我们是需要经常 composer update 更新各扩展包;
如果我们是使用者则使用 composer install 即可;
另外很多童鞋可能并不能顺利的 install 完;
大多是缺少某个 php 扩展;
出门左转再回顾下我上面给过的 phpstudy 文章链接;
里面说了需要开启的扩展;
还有一些是因为 php 的版本比较低;
install 的时候报错的话看下报错的提示;
实在不行百度翻译再搜索下也都能找到原因了;

接着我们需要执行下 php artisan key:generate ;
这个是生成 APP_KEY 并自动写入到 .env 文件中的;
它是 laravel 用来加密 cookie 等的;

再接着我们需要执行 php artisan migrate ;
这个是生成数据表的;
关于表迁移可以参考文章 最适合入门的Laravel初级教程(七)表迁移Migrations ;
这时候我们查看数据库会发现创建了一大堆表;
如果报错的话;
大多是因为 .env 中的数据库账号密码配置的有问题;
使用客户端或者其他项目连下数据库检查下;

数据库表有了;
但是表都是空的;
这时候我们需要执行 php artisan db:seed ;
这个是用来生成测试数据或者其他的一些基础数据的;
一般到这就没啥错误了;

至此就可以愉快的访问项目了;
浏览器访问 APP_URL 链接;
一般项目首页起码是不会空的;
如果首页并不能访问;
我们可以查看 routes/web.php 文件里面定义的路由;
如果需要登录;
一般可以通过查看填充文件 database/seeds/UsersTableSeeder.php ;

查看初始账号密码;
————2018.4.22的分割线—————
linux 服务器的环境搭建文章已经完成
宝塔搭建laravel所需要的lnmp环境linux-nginx-mysql-php-composer-git

白俊遥博客
请先登录后发表评论
  • latest comments
  • 总共48条评论
白俊遥博客

缘风梦岩 :你好,我想问一下,上传文章时,封面图怎么上传成功,但是实际对应目录没有这个图片。这是怎么怎么回事

2020-07-18 17:30:14 回复

白俊遥博客 白俊遥博客

云淡风晴 :使用了软连接; 文件在 storage/app/public/uploads 目录下;

2020-07-22 20:53:08 回复

白俊遥博客

肥 吴 :肥 吴:老哥,git和composer有什么区别呢?为什么laravel创建新项目的时候要通过composer里的laravel命令,可以直接git拉取下来呀,而且多个人开发同一项目时代码更新同步也用git比较好呀,刚学laravel,不太懂这个,能解答下吗白俊遥博客

2019-12-18 22:00:36 回复

白俊遥博客

麦志健 :一个是依赖管理工具  一个是版本控制系统  不能混为一谈白俊遥博客

2020-05-13 15:40:08 回复

白俊遥博客

肥 吴 :老哥,git和composer有什么区别呢?为什么laravel创建新项目的时候要通过composer里的laravel命令,可以直接git拉取下来呀,而且多个人开发同一项目时代码更新同步也用git比较好呀,刚学laravel,不太懂这个,能解答下吗白俊遥博客

2019-12-18 21:55:24 回复

白俊遥博客 白俊遥博客

云淡风晴 :Git 拉取的 Laravel 项目是带历史记录的; 新开发一个产品不需要 Laravel 的历史记录;  使用 composer 创建项目后; 再使用 Git 进行管理; 

2020-07-22 20:56:11 回复

白俊遥博客

:白神。laravel的博客 在后台执行 清缓存 路径是这个/admin/config/clear 。会报错 Internal Server Error。还有 在设置 seo 里面 执行提交 路径是这个/admin/config/update. 也会 有 Internal Server Error。报错。求教白神!

2019-09-06 16:26:48 回复

白俊遥博客

一见之如平生欢 :修改APP_URL 就是我们的项目链接比如说我的 https://baijunyao.com;这里要注意的是 比如你第三方QQ登录的回调地址是根据这个的   要改成一样

2019-08-29 16:51:29 回复

白俊遥博客

小雨的叶香伦 :根目录下运行composer installComposer could not find a composer.json file in D:\1phpstudy\bjyblogTo initialize a project, please create a composer.json file as described in the请问下这个是什么原因?

2019-07-09 14:21:45 回复

白俊遥博客

小雨的叶香伦 :php版本是7.2 ,配置也是根据phpstudy中要求配置的白俊遥博客

2019-07-09 14:29:16 回复

白俊遥博客

kiweiliuyi :HyperDown,项目中这个markdown转html是怎么做的?composer.lock这个文件能自己改吗?

2018-11-30 15:51:41 回复

白俊遥博客

kiweiliuyi :packagist中的命令安装提示invalid argument exception

2018-11-30 16:23:06 回复

白俊遥博客 白俊遥博客

云淡风晴 :不需要自己手动改; 都是通过 composer 命令自动改的;

2019-06-08 10:14:38 回复

白俊遥博客

Fate :楼主你这项目有问题啊

2018-10-24 09:02:12 回复

白俊遥博客

Fate :In Connection.php line 664:  SQLSTATE[HY000]: General error: PDO::ATTR_STATEMENT_CLASS requires format array(classname, array(ctor_args)); the classname must be a string specif  ying an existing class (SQL: select * from information_schema.tables where table_schema = blog and table_name = bjy_migrations)In PDOConnection.php line 50:  SQLSTATE[HY000]: General error: PDO::ATTR_STATEMENT_CLASS requires format array(classname, array(ctor_args)); the classname must be a string specif  ying an existing classIn PDOConnection.php line 47:  SQLSTATE[HY000]: General error: PDO::ATTR_STATEMENT_CLASS requires format array(classname, array(ctor_args)); the classname must be a string specif  ying an existing classIn PDOStatement.php line 40:  syntax error, unexpected const (T_CONST), expecting variable (T_VARIABLE)

2018-10-24 08:56:30 回复

白俊遥博客

Fate :问题解决了,php版本换成7.2

2018-10-24 09:23:36 回复

白俊遥博客

阿毛 :安装的是 laravel-bjyblog这个项目   之前别的东西都没有碰到过这种情况

2018-09-27 17:11:56 回复

白俊遥博客

阿毛 :为什么我安装完项目之后  运行任何artisan命令都会报错  SQLSTATE[42S02]: Base table or view not found: 1146 Table 'newblog.wtz_configs' doesn't exist (SQL: select `value`,   `name` from `wtz_configs` where `id` > 100 and `wtz_configs`.`deleted_at` is null)所有的artisan命令都会报这个错  实在是不知道该怎么解决了   没办法生成数据表

2018-09-27 17:10:10 回复

白俊遥博客 白俊遥博客

云淡风晴 :可能是缓存的原因; 最近几次更新优化了缓存;现在拉取新版本应该不会再有这个问题了;

2018-10-20 21:56:41 回复

白俊遥博客

YixingLiuGh :我是卡在 提示数据库不存在那一步了,不知道为啥SQLSTATE[HY000] [1049] Unknown database 'froge'

2018-09-26 23:08:14 回复

白俊遥博客

呼儿嘿哟 :按照文档的操作,最后打开网站提示cgi/fastcgi 停止工作

2018-08-31 13:26:13 回复

白俊遥博客 白俊遥博客

云淡风晴 :目测可能环境没装好;

2018-09-02 22:34:28 回复

白俊遥博客

AI了个瓜 :大大,这是啥原因呢

2018-08-22 14:40:50 回复

白俊遥博客 白俊遥博客

云淡风晴 :什么问题?

2018-09-02 22:33:02 回复

白俊遥博客

AI了个瓜 :感谢回复,本身遇到了一个问题,后来发现是php版本较低,现在解决了

2018-09-04 16:49:31 回复

白俊遥博客

辉太狼 :没有闲言碎语和开源项目的栏目吗?

2018-08-14 13:59:05 回复

白俊遥博客 白俊遥博客

云淡风晴 :参考 https://baijunyao.com/docs/laravel-bjyblog/更新记录.html   ;运行 php artisan db:seed --class=NavsTableSeeder 命令会生成这2个菜单;

2018-09-02 22:32:39 回复

白俊遥博客

yefangyong :你好,我安装好了你的项目,后台编辑文字的时候报错,说什么sql驱动不支持,是不是因为我没有安装elasticsearch这个软件,没有配置呢

2018-07-23 23:19:17 回复

白俊遥博客 白俊遥博客

云淡风晴 :多谢反馈;是我设置的默认值有问题;已修复;拉取最新代码安装即可;

2018-07-24 00:25:39 回复

白俊遥博客

微末凡尘 :为什么编辑文章上传图片的时候会出现404呢

2018-07-24 10:42:30 回复

白俊遥博客 白俊遥博客

云淡风晴 :f12 看下具体的报错信息;

2018-08-05 16:33:29 回复

白俊遥博客

=͟͟͞͞若=͟͟͞͞水 :这个回复做的真好

2018-08-23 16:45:48 回复

白俊遥博客

星空下丶伴奏 :lnmp php 7.2 运行 报错 Call to a member function get() on null

2018-07-05 18:00:53 回复

白俊遥博客

wubuwei :我遇到了一样的问题,请问你解决了吗白俊遥博客

2018-07-22 19:20:21 回复

白俊遥博客

wubuwei :原来是忘了填充假数据,落下了 `php artisan db:seed` 这步操作。

2018-07-22 19:43:50 回复

白俊遥博客

rebirthway :这挺好的

2018-06-09 14:42:30 回复

白俊遥博客

大海 :很好

2018-05-29 15:05:40 回复

白俊遥博客

nc­-kevin yu :有个问题想请教一下博主,按照博主教程使用laravel的第三方登录Socialite按照流程使用返回github页面,服务器响应404 Not Found,控制台报Uncaught TypeError: Cannot read property 'setAttribute' of null    at XMLHttpRequest.xhr.onload,是什么原因呢

2018-05-15 12:17:33 回复

白俊遥博客

J :大神用过Searchy扩展包吗

2018-05-11 17:52:27 回复

白俊遥博客

不忘初心 :跟着你的小白教程学习了laravel的基础知识,然后我按照你的这个文档来部署你的blog却不行(phpstudy切换php7以上的版本还是不行),运行composer install的时候报错(30个):F:\myProject\laravel\hyfblog>composer installLoading composer repositories with package informationInstalling dependencies (including require-dev) from lock fileYour requirements could not be resolved to an installable set of packages.  Problem 1    - This package requires php >=7.0.0 but your PHP version (5.6.27) does not satisfy that requirement.  Problem 2    - Installation request for doctrine/annotations v1.6.0 -> satisfiable by doctrine/annotations[v1.6.0].    - doctrine/annotations v1.6.0 requires php ^7.1 -> your PHP version (5.6.27) does not satisfy that requirement.  Problem 3    - Installation request for doctrine/cache v1.7.1 -> satisfiable by doctrine/cache[v1.7.1].    - doctrine/cache v1.7.1 requires php ~7.1 -> your PHP version (5.6.27) does not satisfy that requirement.一个刚学习laravel框架的小白,希望可以得到你的回复,谢谢!

2018-05-07 12:53:26 回复

白俊遥博客

Just one :Illuminate \ Database \ QueryException (HY000)SQLSTATE[HY000]: General error: PDO::ATTR_STATEMENT_CLASS requires format array(classname, array(ctor_args)); the classname must be a string specifying an existing class (SQL: select count(*) as aggregate from `bjy_articles` where `bjy_articles`.`deleted_at` is null)是怎么回事呢?

2018-05-02 18:58:40 回复

白俊遥博客 白俊遥博客

云淡风晴 :升级到 PHP7.2

2018-06-30 10:31:45 回复

白俊遥博客

Fate :好了吗,我也报类似错误

2018-10-24 09:16:19 回复

白俊遥博客

天青色等烟雨 :顶!

2018-04-24 23:14:55 回复

白俊遥博客

承接网站定制|seo优化 :大神如果自己也修改了,应该怎么更新呢。

2018-04-19 15:30:41 回复

白俊遥博客 白俊遥博客

云淡风晴 :这就是 git 的知识了;百度补充下;

2018-04-22 21:30:04 回复

白俊遥博客

恒创网络 白俊遥博客

2018-04-22 21:50:12 回复

白俊遥博客

岁月清浅 安之若素 :很详细,白老大ICP备案链接,是不是该加一下了

2018-04-17 23:17:40 回复