由于创建一个新的 Laravel 项目后,输入网址报错 “No input file specified”,所以记录创建Laravel项目流程,目的是新建Laravel项目成功,网页不再报错。
一、创建Laravel项目
重点:安装目录为Code文件夹
需要开启vagrant ssh后,到Code文件夹中进行安装
安装语句:composer create-project laravel/laravel blog57 5.7.* --prefer-dist
创建项目 laravel项目 项目名称 安装版本为5.7 压缩模式
一、设置composer中国镜像
修改 composer 的全局配置文件(推荐方式)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
二、项目中再执行composer install
然后执行composer创建项目命令:composer create-project laravel/laravel blog 5.?.* --prefer-dist
正如官方文档所言,有两种方式可以创建一个新的 Laravel 项目,这两种创建方式都是从命令行执行的:第一种是通过全局的 Laravel 安装器,另一种是通过 Composer 的 create-project
命令。
执行这两种方式之前,都需要系统已经安装过 PHP 和 Composer(如果使用 Valet 或 Laragon 的话,则应该已经安装过了,如果使用的是 Homestead 或 Laradock 的话,宿主环境也要安装下,便于后续操作,如果未曾安装,请参考 Valet 和 Laragon 安装教程)。
第一种方式,使用 Laravel 安装器安装
安装 Laravel 安装器很简单,在命令行执行以下命令即可(如果已经安装过,会自动进行更新):
composer global require laravel/installer
安装完成后,后续就可以通过 laravel new [项目名称]
来创建新的 Laravel 项目了:
laravel new blog
该命令会在当前目录下创建一个新的名为 blog
的应用:
使用 Composer create-project 命令安装
除此之外,还可以通过 Composer 自带的 create-project
命令来安装新应用:
composer create-project laravel/laravel blog --prefer-dist
效果和上面使用安装器安装的一样,使用这个方式安装的一个好处是可以安装旧版本的 Laravel 项目,比如要安装 5.6 版本的项目 blog56
,可以这么做:
composer create-project laravel/laravel blog56 5.6.* --prefer-dist
由于需要创建稳定Laravel5.5版本,所以在定位到指定创建文件夹(Code文件夹,不用登录vagrant中也可创建)中,采用命令行:
composer create-project laravel/laravel blog 5.5.* --prefer-dist
创建laravel 5.5版本,等待自动安装
如创建不了,需要文件夹.ssh,文件路径在~目录中.ssh文件夹,拷贝至code文件夹中
二、创建后需要在Homestead中配置站点:
打开Homestead.yaml文件
sites:
- map: homestead.app
to: /home/vagrant/code/Laravel/public
sites下方添加新站点
databases:
- homestead
在Homestead中新建数据库,并加入到databases下方
在C:\Windows\System32\drivers\etc 中找到hosts文件,
在最下方添加 192.168.10.10 xxxxx.test 保存
三、关键一步,重新加载Homestead.yaml文件
1、未退出虚拟机 Vagrant:
cd ~/Homestead && vagrant provision && vagrant reload
此处前提是: 未退出 虚拟机 Vagrant。
2、若已退出虚拟机, 则操作应如下:
- 打开虚拟机:
cd ~/Homestead && vagrant up
- 重新加载 Homestead.yaml 配置:
vagrant provision
此时可以看到,修改后的 Homestead.yaml 配置在不断的重新加载。
3、可对第 (二) 项 进行简化操作如下:
cd ~/Homestead && vagrant up --provision
'--provision' 与 'vagrant provision' 相同
vagrant provision 是命令 Vagrant 重新加载 Homestead.yaml 配置;
vagrant reload 是重启虚拟机使更改生效。
四、查看站点是否配置成功
$ vagrant up 启动虚拟机后
$ vagrant ssh 免密登录vagrant虚拟机
$ cd /etc/nginx/sites-available 查看nginx配置文件(/etc/nginx/sites-available/)
$ ls 执行命令,此时会显示已经配置的站点
再次在google 输入自己设定的网址,显示Laravel欢迎界面,即创建成功,可进行网站开发和API开发
五、发现的问题及解决办法
1、google浏览器输入网址时,报错:
Warning: require(/home/vagrant/code/blog57/public/../vendor/autoload.php......
Fatal error: require(): Failed opening required '/home/vagrant/code/blog57/public/../vendor/autoload.php' (include_path='.:/usr/share/php')
解决方法:使用composer install进行安装(没有安装过的情况下,以前安装过的话使用:composer update)
参考网址:https://www.e-learn.cn/index.php/content/wangluowenzhang/20347
2、新建Laravel 项目 .env中没有app-key
解决方法:在项目根目录,执行php artisan key:generate
3、报错:Unable to boot ApiServiceProvider, configure an API domain or prefix.
定位代码:
protected function registerConfig()
{
$this->mergeConfigFrom(realpath(__DIR__.'/../../config/api.php'), 'api');
if (! $this->app->runningInConsole() && empty($this->config('prefix')) && empty($this->config('domain'))) {
throw new RuntimeException('Unable to boot ApiServiceProvider, configure an API domain or prefix.');
}
}
解决方式:
在 .env 中,添加:
API_PREFIX=null
API_DOMAIN=api