如何正确的下载安装使用别人的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

白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共12条评论
白俊遥博客

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

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

白俊遥博客

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

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

白俊遥博客
  • 云淡风晴 回复 yefangyong:多谢反馈;是我设置的默认值有问题;已修复;拉取最新代码安装即可;
  • 2018-07-24 00:25:39 回复
白俊遥博客
  • 微末凡尘 回复 云淡风晴:为什么编辑文章上传图片的时候会出现404呢
  • 2018-07-24 10:42:30 回复
白俊遥博客
  • 云淡风晴 回复 微末凡尘:f12 看下具体的报错信息;
  • 2018-08-05 16:33:29 回复
白俊遥博客

星空下丶伴奏: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 回复

白俊遥博客
  • 云淡风晴 回复 Just one:升级到 PHP7.2
  • 2018-06-30 10:31:45 回复
白俊遥博客

天青色等烟雨:顶!

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

白俊遥博客

✈️✈️✈️✈️:大神如果自己也修改了,应该怎么更新呢。

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 回复