Laravel 安装
需求
Laravel框架有一些系统要求。 Laravel Homestead虚拟机可以满足所有这些要求,因此强烈建议您将Homestead用作本地Laravel开发环境。
但是,如果您不使用Homestead,则需要确保服务器满足以下要求:
- PHP >= 7.2.5
- BCMath PHP 扩展
- Ctype PHP 扩展
- Fileinfo PHP 扩展
- JSON PHP 扩展
- Mbstring PHP 扩展
- OpenSSL PHP 扩展
- PDO PHP 扩展
- Tokenizer PHP 扩展
- XML PHP 扩展
- Composer
以上是保证Laravel框架本身的运行对于PHP的要求。
安装
Laravel 使用 Composer来管理它的应用包,所以我们还要保证我们的机器上有 Composer。
一、通过Laravel安装程序安装
首先,我们需要用composer来获取Laravel的安装器
$ composer global require laravel/installer
确保将Composer的vendor bin目录放在系统目录中($PATH)中,以便系统可以找到laravel可执行文件。 不同的操作系统,该目录存在于不同的位置。 但是,一些常见的位置包括:
- macOS:
$HOME/.composer/vendor/bin
- Windows:
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
- GNU / Linux Distributions:
$HOME/.config/composer/vendor/bin or $HOME/.composer/vendor/bin
我们可以通过运行 composer global about
命令来查找Composer的全局安装目录。第一行显示的既是我们要找的目录
安装完成后,laravel new
命令将在指定的目录中创建一个全新的Laravel项目。 例如,laravel new blog
将创建一个名为blog的目录,其中包含一个全新的Laravel项目,并且里面已经安装了所有Laravel的依赖项:
$ laravel new blog
二、 通过 Composer Create-Project
安装
另外,我们也可以通过在终端中使用Composer create-project
命令来安装Laravel:
$ compser create-project --prefer-dist laravel/laravel:^7.0 blog
以上命令将创建一个名为blog的Laravel项目。
内置服务
项目安装成功之后,接下来我们要验证一下是否能正常的运行。这时候如果再通过Nginx或者Apache开启web服务,可能比较麻烦。如果我们在本地安装了PHP,并且想使用PHP的内置开发服务器来服务我们的应用程序,则可以使用Artisan命令 serve
。
$ php artisan serve
上面命令执行之后就会开启一个web服务,默认端口是8000,可以通过地址 http://localhost:8000
进行访问。
项目配置
Public 目录
安装Laravel之后,我们应该将Web服务器的文档或者是Web根目录配置为public
目录。此目录中的index.php为所有HTTP请求的入口文件。
配置文件目录
Laravel框架的所有配置文件都存储在config目录中。每个选项都有文档说明,因此可以随时浏览文件并熟悉可用的配置项。
目录权限
安装Laravel之后,您可能需要配置一些权限。 Web服务器上的storage
目录和 bootstrap
目录或者 cache
目录应该是可写的,否则Laravel将无法运行。如果使用的是Homestead虚拟机,默认应该已经设置了这些权限。
应用程序密钥
在安装Laravel之后,我们要做的下一件事是将应用程序密钥设置为随机字符串。如果我们是通过Composer或Laravel安装程序安装了Laravel,则程序在安装的最后会自动设置了此密钥。如果是使用其他的方式安装的,或者没有这个密钥,则需要我们再使用下面的命令设置此密钥
$ php artisan key:generate
通常,此字符串应为32个字符长。可以在.env环境文件中设置密钥。如果尚未将.env.example文件复制到名为.env的新文件中,则应立即执行此操作。如果未设置应用程序密钥,则用户会话和其他加密数据将不安全!
其他配置项
Laravel几乎不需要其他任何配置。我们现在就可以自由地开始开发了!但是,我们可能希望查看config/app.php
文件及其文档。它包含多个选项,例如时区和区域设置。我们可能希望根据应用程序进行更改。
我们可能还需要配置Laravel的一些其他组件,例如:
- Cache
- Database
- Session
Web 服务器的配置
配置访问目录
通常情况下,Laravel应用不会放在为Web应用服务指定的Web 目录
的根目录中,我们不应尝试从“ Web目录”的子目录中服务Laravel应用程序。 尝试这样做可能会暴露应用程序内存在的敏感文件。
网址伪静态
Apache
Laravel包含一个public/.htaccess
文件,该文件用于提供伪静态的,所谓伪静态就是我们输入的请求网址中不带.php
,但是这种形式我们的Laravel是找不到路由的,所以需要使用.htaccess 文件中配置相应的规则,将请求路径转换成类似于 /index.php?params
的形式,这样Laravel是可以找到路由的。同时在前端显示的还是我们输入的地址的形式,而不是转换之后的形式。 在将Laravel与Apache一起使用之前,请确保启用mod_rewrite模块,以便服务器可以使用.htaccess文件。
如果Laravel自带的.htaccess文件不适用于我们安装的Apache,请尝试以下替代方法:
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Nginx
如果我们使用的是Nginx,则以下配置内容会将所有请求定向到index.php前端控制器:
location / {
try_files $uri $uri/ /index.php?$query_string;
}