# 安装
- [安装](#installation)
- [服务器要求](#server-requirements)
- [安装 Laravel](#installing-laravel)
- [配置](#configuration)
- [Web 服务器配置](#web-server-configuration)
- [优雅链接](#pretty-urls)
## 安装
### 服务器要求
Laravel 对系统有一些要求。当然,所有这些要求 [Laravel Homestead](/docs/{{version}}/homestead) 虚拟机都能满足,因此强烈推荐你使用 Homestead 做为你的开发环境。
当然,假如你不使用 Homestead,请确保你的服务器满足以下要求:
- PHP >= 7.2.5
- BCMath PHP 拓展
- Ctype PHP 拓展
- JSON PHP 拓展
- Mbstring PHP 拓展
- OpenSSL PHP 拓展
- PDO PHP 拓展
- Tokenizer PHP 拓展
- XML PHP 拓展
### 安装 Laravel
Laravel 使用 [Composer](https://getcomposer.org) 来管理项目依赖。因此,在使用 Laravel 之前,请确保你的机器已经安装了 Composer。
#### 通过 Laravel 安装器
首先,通过使用 Composer 安装 Laravel 安装器:
composer global require laravel/installer
确保将 Composer's system-wide vendor 目录放置在你的系统环境变量 `$PATH` 中,以便系统可以找到 Laravel 的可执行文件。该目录根据你的操作系统存在不同的位置中;一些常见的配置包括 :
- macOS and GNU / Linux 发行版: `$HOME/.config/composer/vendor/bin`
- Windows: `%USERPROFILE%\AppData\Roaming\Composer\vendor\bin`
安装完成后, `laravel new` 命令会在你指定的目录创建一个全新的 Laravel 项目。例如, `laravel new blog` 将会创建一个名为 `blog` 的目录,并已安装好 Laravel 所有的依赖项:
laravel new blog
#### 通过 Composer 创建项目
或者,你也可以在终端中运行 `create-project` 命令来安装 Laravel:
composer create-project --prefer-dist laravel/laravel blog "6.*"
#### 本地开发环境
如果你在本地安装了 PHP, 并且你想使用 PHP 内置的服务器来为你的应用程序提供服务,则可以使用 Artisan 命令 `serve` 。该命令会在 `http://localhost:8000`上启动开发服务器:
php artisan serve
当然,最好还是选择 [Homestead](/docs/{{version}}/homestead) 和 [Valet](/docs/{{version}}/valet)。
### 配置
#### 公共路径
安装完 Laravel 之后,你应该配置你的 web 服务的文档目录指向 `public` 路径。该路径下的 `index.php` 文件作为进入应用的所有 HTTP 请求的前端控制器。
#### 配置文件
Laravel 框架的所有配置文件存放在 `config` 目录下。每个选项都有文档标注,便于通过文件查看并熟悉对你有用的选项。
#### 目录权限
在安装 Laravel 后,你可能需要配置一些权限。 `storage` 和 `bootstrap/cache` 目录在你的 web 服务下应该是可写的权限,否则 Laravel 将无法运行。如果你用的是 [Homestead](/docs/{{version}}/homestead) 虚拟机,这些权限应该已经设置好了。
#### 应用密钥
安装好 Laravel 之后的下一步是设置你的应用密钥为随机字符串。如果你通过 Composer 或者 Laravel 安装器安装的,这个密钥已经通过 `php artisan key:generate` 命令为你设置好了。
通常,这个字符串应该是 32 个字符长度。这个密钥将会设置在环境变量文件 `.env` 中。如果你还没有将 `.env.example` 文件重命名为 `.env` 那么你现在应当把此文件重命名。 **如果应用密钥还没有设置,你的用户会话和其他的加密数据将会不安全**
#### 其他配置
Laravel 几乎不需要除上面所说的其他什么配置了。你可以随心所欲的开始开发了!然而,你可能会想要再次查看 `config/app.php` 文件和它的注释说明。它包含一些你希望根据你应用来更改的选项,诸如: `timezone` 和 `locale` 。
你还可能想要配置 Laravel 的其他的一些组件,例如:
- [缓存](/docs/{{version}}/cache#configuration)
- [数据库](/docs/{{version}}/database#configuration)
- [会话控制](/docs/{{version}}/session#configuration)
## Web 服务器配置
### 优雅链接
#### Apache
Laravel 中包含了一个 `public/.htaccess` 文件,通常用于在资源路径中隐藏 `index.php` 的前端控制器。在用 Apache 为 Laravel 提供服务之前,确保启用了 `mod_rewrite` 模块,这样 `.htaccess` 文件才能被服务器解析。
如果 Laravel 附带的 `.htaccess` 文件不起作用,尝试下面的方法替代:
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;
}
当你使用 [Homestead](/docs/{{version}}/homestead) 或 [Valet](/docs/{{version}}/valet) 时,优雅链接将会自动配置好。