Laravel 框架对系统有些要求。而 Laravel Homestead 虚拟机满足所有这些要求,因此强烈建议您用 Homestead 作为本地 Laravel 开发环境。
如果不使用 Homestead,请确保服务器满足以下要求:
PHP >= 7.1.3
OpenSSL PHP 扩展
PDO PHP 扩展
Mbstring PHP 扩展
Tokenizer PHP 扩展
XML PHP 扩展
Ctype PHP 扩展
JSON PHP 扩展
Laravel 利用 Composer 管理其依赖。因此,在使用 Laravel 之前,请确保您的计算机上安装了 Composer。
首先,使用 Composer 下载 Laravel 安装程序:
composer global require "laravel/installer"
并确保将 Composer 的运行目录添加到了环境变量 $PATH
,以便系统能找到 laravel
可执行文件。该目录根据使用的操作系统存在于不同的位置;不过,一些常见的位置如下:
macOS:$HOME/.composer/vendor/bin
GNU / Linux 发行版:$HOME/.config/composer/vendor/bin
安装完成后,使用 laravel new
命令即可在指定目录创建新的 Laravel 项目。例如,laravel new blog
命令会创建一个名为 blog
的目录,里面包含新安装的 Laravel 并已安装 Laravel 的所有依赖:
laravel new blog
或者,也可以在终端中运行 create-project
命令安装 Laravel:
composer create-project --prefer-dist laravel/laravel blog
如果您在本地安装了 PHP,并且想使用 PHP 内置的开发服务器为应用提供服务,可以使用 Artisan 命令 serve
。此命令会在 http://localhost:8000
上启动开发服务器:
php artisan serve
当然,更好的选择还是通过 Homestead 和 Valet。
安装 Laravel 之后,应该将 Web 服务器的根目录指向 public
目录。该目录下的 index.php
文件将作为所有传入应用的 HTTP 请求的前端控制器。
Laravel 框架的所有配置文件都存储在 config
目录中。每个选项都有注释,方便您随时查看文件并熟悉可用的选项。
安装 Laravel 之后,您可能需要配置一些权限。Web 服务器应该拥有 storage
和 bootstrap/cache
目录的写入权限,否则 Laravel 将无法运行。当然,如果您使用的是 Homestead 虚拟机,这些权限都已经为您设置好了。
下一件要做的事,是将应用的密钥设置为随机字符串。如果您使用 Composer 或 Laravel 安装器安装的 Laravel,该密钥已经通过 php artisan key:generate
命令为您设置好了。
通常来说,这个字符串长度是 32 个字符。密钥可以在 .env
环境配置文件中设置。如果您还没有将 .env.example
文件重命名为 .env
,请先重命名。如果应用密钥未设置,就不能确保会话和其它加密数据的安全!
除了以上配置,Laravel 几乎就不需要再配置什么了。您随时可以进行开发!不过,还是希望您查看 config/app.php
文件和里面的注释。其中包含几个可能要根据应用进行更改的选项,比如 timezone
和 locale
。
可能还想配置 Laravel 的一些其它组件,例如:
Laravel 使用 public/.htaccess
文件隐藏前端控制器 index.php
以提供优雅链接。在使用 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,可以在站点配置中加入以下内容,用于将所有请求重定向到 index.php
前端控制器:
location / {
try_files $uri $uri/ /index.php?$query_string;
}