ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 部署 ## 介绍 当你准备好将 Laravel 应用部署到生产环境时,你可以执行一些操作来确保应用程序尽可能高效地运行。在本文档中,我们将介绍一些确保 Laravel 应用被正确部署。 ## 服务器配置 ### Nginx 如果你将应用程序部署到运行 Nginx 的服务器,可以使用下面的内容来配置 Web 服务器。这个文件可能需要根据你的服务器配置进行自定义。你可以考虑使用 「[Laravel Forge](https://forge.laravel.com/)」等服务协助管理你的服务器: ~~~php server { listen 80; server_name example.com; root /example.com/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } } ~~~ ## 优化 ### 优化自动加载 部署项目到生产环境时,请确保你优化了 Composer 类的自动加载映射,以便 Composer 可以快速找到正确文件为给定类加载: ~~~php composer install --optimize-autoloader --no-dev ~~~ > {tip} 除了优化自动加载之外,还应该确保项目的源代码管理库中包含了`composer.lock`文件。因为当`composer.lock`文件存在时,项目的依赖项可以被更快地安装。 ### 优化配置加载 当你将应用部署到生产环境时,请确保在部署过程中运行 Artisan 命令: ~~~php php artisan config:cache ~~~ 这个命令可以将所有 Laravel 的配置文件合并到单个文件中缓存,此举能大大减少框架在加载配置值时必须执行的系统文件的数量。 > {note} 如果你在部署过程中执行了`config:cache`命令,那么你应该确保仅在配置文件中调用了`env`函数,一旦配置被缓存了,将不会加载`.env`文件,(除配置文件外)对`env`函数的所有调用都将返回`null`。 ### 优化路由加载 如果你构建的是具有许多路由的大型应用程序,那你应该在部署过程中运行 Artisan 命令`route:cache`: ~~~php php artisan route:cache ~~~ 这个命令可以将所有路由注册减少为缓存文件中的单个方法调用,以达到当应用程序在注册数百条路由时,提高路由注册的性能。 > {note} 由于此功能使用 PHP 序列化,而 PHP 无法序列化闭包,因此只能缓存应用程序中基于控制器的路由。 ## Forge 部署 如果你还没有准备好管理自己的服务器配置,或者你的服务器没有配置 Laravel 应用程序所需的各种服务,「[Laravel Forge](https://forge.laravel.com/)」是一个不错的选择。 Laravel Forge 可以在各种基础设施提供商(如 DigitalOcean、Linode、AWS 等)上创建服务器。此外,Forge 还能安装和管理构建 Laravel 应用程序所需的所有工具,如 Nginx、MySQL、Redis、Memcached、Beanstalk 等。