Laravel 框架对PHP版本和扩展有一定要求,不过这些要求 Laravel Homestead 都已经满足了,不过如果你没有使用 Homestead 的话(那真是一件很遗憾的事情),有必要了解下这些以便确认自己的环境满足要求:
- PHP >= 7.1.3
- PHP OpenSSL 扩展
- PHP PDO 扩展
- PHP Mbstring 扩展
- PHP Tokenizer 扩展
- PHP XML 扩展
- PHP Ctype 扩展
- PHP JSON 扩展
满足以上需求之后,就可以开始安装 Laravel 了。
安装 Laravel
Laravel 使用 Composer 管理依赖,所以,安装之前确保已经在机器上安装了 Composer(如果尚未安装的话参考这份文档去安装吧)。
通过 Laravel 安装器
首先,通过 Composer 安装 Laravel 安装器:
composer global require "laravel/installer"
确保 $HOME/.composer/vendor/bin
在系统路径中(Mac中对应路径是 ~/.composer/vendor/bin
,Windows对应路径是 ~/AppData/Roaming/Composer/vendor/bin
,其中 ~
表示当前用户家目录),否则不能在命令行任意路径下调用 laravel
命令。
安装完成后,通过简单的 laravel new
命令即可在当前目录下创建一个新的 Laravel 应用,例如,laravel new blog
将会创建一个名为 blog
的新应用,且包含所有 Laravel 依赖。该安装方法比通过 Composer 安装要快很多:
laravel new blog
如果之前已经安装过旧版本的 Laravel 安装器,需要更新后才能安装最新的 Laravel 5.7 框架应用:
composer global update
通过 Composer Create-Project
你还可以在终端中通过 Composer 的 create-project
命令来安装 Laravel 应用:
composer create-project --prefer-dist laravel/laravel blog
如果要下载安装 Laravel 其他版本应用,比如 5.6 版本,可以使用这个命令:
composer create-project --prefer-dist laravel/laravel blog 5.6.*。
本地开发服务器
如果你在本地安装了 PHP,并且想要使用 PHP 内置的开发环境服务器为应用提供服务,可以使用 Artisan 命令 serve
:注:必须要laravel的要目录下才能执行的,artisan 是 Laravel 项目下的指令文件,在Laravel 项目的根目录下可以看到artisan文件
php artisan serve
该命令将会在本地启动开发环境服务器,这样在浏览器中通过 http://localhost:8000
即可访问应用
如果Laravel 报错 file_put_contents(): failed to open stream
问题解决方法
-
执行命令
php artisan cache:clear
并赋予/storage
文件夹读写权限:chmod -R 777 storage
; -
若在执行
php artisan cache:clear
时出现错误:Uncaught UnexpectedValueException: The stream or file "/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:87
,需要赋予/storage/log
读写权限:chmod -R 777 storage/logs
; -
此时再执行
php artisan cache:clear
,若继续出错:[ErrorException] file_put_contents(/bootstrap/cache/services.php): failed to open stream: Permission denied
,需要赋予bootstrap/cache
读写权限:chmod -R 777 bootstrap/cache
; -
再执行
php artisan cache:clear
,若仍然出错:[PDOException] SQLSTATE[HY000] [1045] Access denied for user 'xxx'@'127.0.0.1' (using password: YES)
,则需要查看 laravel 的数据库配置是否正确。