Laravel框架有少量的系统要求,当然,Laravel Homestead 虚拟机满足所有这些要求:
Laravel使用Composer管理依赖,因此,使用Laravel之前,确保机器上已经安装Composer。
首先,通过Composer安装Laravel安装器:
composer global require "laravel/installer=~1.1"
确保~/.composer/vendor/bin
在系统路径PATH中,否则不能调用laravel
命令。
安装完成后,通过简单的laravel new
命令将会在当前目录下创建一个新的Laravel应用,例如,laravel new blog
将会创建一个名为blog
的Laravel安装目录,该目录中已经包含了所有Laravel依赖。该安装方法比通过Composer安装要快很多:
laravel new blog
你还可以在终端中通过Composer的create-project
目录来安装Laravel:
composer create-project laravel/laravel --prefer-dist
该命令会在当前目录中创建一个名为laravel的Laravel安装,如果想要指定安装目录名,可通过如下命令:
composer create-project laravel/laravel blog --prefer-dist
该命令会在当前目录中创建一个名为blog的Laravel安装。
扩展阅读 —— 实例教程:在 Windows 中安装 Laravel 5.1.X
Laravel框架的所有配置文件都存放在config
目录中,每一个选项都是文档化(有良好注释)的,所以随便浏览所有配置文件去熟悉这些配置选项。
安装完Laravel后,需要配置一些权限。storage
和bootstrap/cache
目录应该是可写的,如果你在使用Homestead虚拟机,这些权限已经被设置好了。
接下来要做的事情就是将应用key设置为一个随机字符串,如果你是通过Composer或者Laravel安装器安装的话,该key的值已经通过key:generate
命令生成好了。通常,该字符串应该是32位长,该key被配置在.env
环境文件中(APP_KEY),如果你还没有将.env.example
文件重命名为.env
,现在立即这样做。如果应用key没有被设置,用户sessions和其它加密数据将会有安全隐患!
Laravel几乎不再需要其它任何配置就可以使用了,你可以自由地开始开发了!但是,你最好再看看config/app.php
文件和它的文档,其中包含了一些基于你的应用可能需要进行改变的配置,比如timezone
和locale
。
你可能还想要配置Laravel的一些其它组件,比如:
Laravel安装完成后,你还应该配置自己的本地环境,如数据库驱动、邮箱服务器、缓存驱动等。
框架中自带的public/.htaccess
文件支持URL中隐藏index.php
,如过你的Laravel应用使用Apache作为服务器,需要先确保Apache启用了mod_rewrite
模块以支持.htaccess解析。
如果Laravel自带的.htaccess
文件不起作用,试试将其中内容做如下替换:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
在Nginx中,使用如下站点配置指令就可以支持URL美化:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
当然,使用Homestead的话,以上配置已经为你配置好以支持URL美化。
基于应用运行环境拥有不同配置值能够给我们开发带来极大的方便,比如,我们想在本地和线上环境配置不同的缓存驱动,在Laravel中这很容易实现。
Laravel中使用了Vance Lucas开发的PHP库DotEnv来实现这一目的,在新安装的Laravel中,根目录下有一个.env.example
文件,如果Laravel是通过Composer安装的,那么该文件已经被重命名为.env
,否则的话你要自己手动重命名该文件。
在每次应用接受请求时,.env
中列出的所有变量都会被载入到PHP超全局变量$_ENV
中,然后你就可以在应用中通过帮助函数env
来获取这些变量值。实际上,如果你去查看Laravel的配置文件,就会发现很多选项已经在使用这些帮助函数了。
你可以尽情的按你所需对本地服务器上的环境变量进行修改,线上环境也是一样。但不要把.env
文件提交到源码控制(svn或git等)中,因为每个使用你的应用的不同开发者或服务器可能要求不同的环境配置。
如果你是在一个团队中进行开发,你可能需要将.env.example
文件随你的应用一起提交到源码控制中,通过将一些配置值以占位符的方式放置在.env.example
文件中,其他开发者可以很清楚明了的知道运行你的应用需要配置哪些环境变量。
当前应用环境由.env
文件中的APP_ENV
变量决定,你可以通过App
门面的environment
方法来访问其值:
$environment = App::environment();
你也可以向environment
方法中传递参数来判断当前环境是否匹配给定值,如果需要的话你甚至可以传递多个值:
if (App::environment('local')) {
// The environment is local
}
if (App::environment('local', 'staging')) {
// The environment is either local OR staging...
}
应用实例也可以通过帮助函数app
来访问:
$environment = app()->environment();
为了给应用加速,你可以使用Artisan命令config:cache
将所有配置文件合并到单个文件里,这将会将所有配置选项合并到单个文件从而可以被框架快速加载。
你应该将config:cache
作为日常部署的一部分。
你可以使用全局的帮助函数config
来访问配置值,配置值可以通过”.”来分隔配置文件和配置选项,如果配置选项不存在的话则会返回默认值:
$value = config('app.timezone');
如果要在运行时设置配置值,传递一个数组到config
帮助函数:
config(['app.timezone' => 'America/Chicago']);
安装完成Laravel之后,你可能想要命名你的应用,默认情况下,app目录处于命名空间App之下,然后Composer使用PSR-4自动载入标准来自动载入该目录,你可以使用Artisan命令app:name
来改变该命名空间以匹配你的应用名称。
比如,如果你的应用名称是“Horsefly”,你可以在安装根目录下运行如下命令:
php artisan app:name Horsefly
来重命名应用的命名空间,当然你也可以继续使用App作为命名空间不变。
当你的站点处于维护模式时,所有对站点的请求都会返回同一个自定义视图。当你在对站点进行升级或者维护时,这使得“关闭”站点变得轻而易举,对维护模式的判断代码位于默认的中间件栈中,如果应用处于维护模式,则状态码为503的HttpException
将会被抛出。
想要开启维护模式,只需执行Artisan命令down
即可:
php artisan down
关闭维护模式,对应的Artisan命令是up
:
php artisan up
默认的维护模式响应模板位于resources/views/errors/503.blade.php
当你的站点处于维护模式中时,所有的队列任务都不会执行;当应用退出维护模式这些任务才会被继续正常处理。