>laravel部署到生产环境时,需执行一些命令,来优化及有效运行 ### 上传项目到 服务器 在本地开发环境测试没问题后,使用 git 上传到 github,然后在服务器端 对应项目目录下执行: `git clone`, 以后每次开发环境提交东西后,只需要在服务器下执行 `git pull` 即可。 ### 修改配置文件 项目上传后,需要手动将 `.env` 文件上传到网站根目录,并修改对应配置信息: 数据库、redis、邮件 等等。 注: 若查看不到 `.env` 使用命令 `ls -a` 查看。 ### 执行初始化 先执行 `composer install` 顺序执行如下命令: - 错误日志:`config/app.php` debug 和 `.env` APP_DEBUG 本地环境是true,生产环境是false - 创建 `public/storage` 文件夹,并执行 `php artisan storage:link` - 修改权限 `chown -R 755 bootstrap/cache` - 修改权限 `chown -R 755 storage` - `php artisan view:clear` //清理 所有在 storage/framework/views/ 下的文件. - `php artisan config:clear` //清除缓存,清除 `php artisan config:clear` 命令生成的缓存文件. - `php artisan config:cache` //配置信息缓存,把所有配置文件打包到一个文件 bootstrap/cache/config.php 中, 避免配置文件加载多次. 命令在生成新的配置文件前会清理掉旧的配置文件. - `php artisan route:cache` //路由缓存,以上命令会生成 bootstrap/cache/routes.php 文件,需要注意的是,路由缓存不支持路由匿名函数编写逻辑. - `php artisan route:clear` //清除路由缓存 - `php artisan optimize --force`//类映射加载优化,把常用加载的类合并到一个文件里,通过减少文件的加载,来提高运行效率,会生成 bootstrap/cache/compiled.php 和 bootstrap/cache/services.json 两个文件;在 production 环境中,参数 --force 不需要指定,文件就会自动生成;注意:此命令要运行在 php artisan config:cache 后,因为 optimize 命令是根据配置信息(如:config/app.php 文件的 providers 数组)来生成文件的。 - `php artisan clear-compiled` //清除类映射加载优化,此命令会删除上面 optimize 生成的两个文件。 - `composer dump-autoload --optimize` //此命令不止针对于 Laravel 程序,适用于所有使用 composer 来构建的程序。此命令会把 PSR-0 和 PSR-4 转换为一个类映射表,来提高类的加载速度。注意:php artisan optimize --force 命令里已经做了这个操作。 - `php artisan key:generate` 在.env文件中自动生成密钥 ### 问题解决 当我访问项目时,发现网站无法访问,于是我执行 `php artisan env` 发现错误信息如下: 1、`Fatal error: Class 'Illuminate\Foundation\Application' not found` 2、`Warning: require(/webserver/program/laravel/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in` 解决方法:在项目根目录执行 composer dump-autoload composer install --no-scripts composer update 刷新页面,成功。但是接下来我无法访问网站后台,和其他静态化页面,排查原因发现是静态化的问题。 因为我使用的 LNMP一键安装包 ,查找配置文件如下:`/usr/local/nginx/conf/vhost/域名.conf` 在这行代码: root /home/wwwroot/www.test.com/public; 添加代码: try_files $uri $uri/ /index.php?$query_string; 保存,重启nginx,刷新成功。