在开发完一个 Laravel 项目后,将应用部署到生产环境是开发流程中不可或缺的一环,万网作为国内知名的虚拟主机提供商,为开发者提供了丰富的托管服务,本文将详细介绍如何将 Laravel 项目部署到万网的虚拟主机上,帮助开发者顺利完成部署过程。
云服之家,国内最专业的云服务器虚拟主机域名商家信息平台
环境准备
在开始部署之前,请确保你已经具备以下环境和工具:
- 万网虚拟主机:确保你已经购买并拥有一个万网的虚拟主机。
- 域名:如果还没有域名,可以在万网或其他域名注册商处购买。
- SSH 访问权限:确保你的虚拟主机支持 SSH 访问。
- FTP 访问权限:用于上传文件。
- PHP 和 Composer:本地安装 PHP 和 Composer,用于构建和测试项目。
- Laravel 项目:确保你的 Laravel 项目已经开发完成,并且可以在本地运行。
准备 Laravel 项目
- 配置环境变量:在本地修改
.env
文件,设置数据库连接信息、邮件服务等配置,确保这些信息符合生产环境的要求。 - 优化应用:运行以下命令优化 Laravel 应用,包括编译视图、清除缓存等。
php artisan config:cache php artisan cache:clear php artisan view:clear
- 生成优化文件:运行以下命令生成优化文件,以便在生产环境中快速启动。
php artisan optimize
- 打包项目:使用
zip
命令将项目打包成一个压缩文件,便于上传到服务器。zip -r project_name.zip .
上传项目到万网虚拟主机
- 使用 FTP 上传:通过 FTP 客户端(如 FileZilla、WinSCP)将
project_name.zip
上传到虚拟主机的根目录或指定目录。 - 解压项目:通过 SSH 登录到服务器,在命令行中解压项目文件。
unzip project_name.zip -d /path/to/your/webroot/
注意:
/path/to/your/webroot/
是你的网站根目录,具体路径可能因服务器配置而异。
配置 Web 服务器(Nginx/Apache)
Nginx 配置示例:
-
编辑 Nginx 配置文件:通常位于
/etc/nginx/sites-available/default
或/etc/nginx/nginx.conf
。server { listen 80; server_name your_domain.com; # 替换为你的域名 root /path/to/your/webroot/public; # 替换为你的项目根目录的 public 目录路径 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据 PHP 版本调整路径 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
-
重新加载 Nginx 配置:保存配置文件后,重新加载 Nginx 配置以应用更改。
sudo systemctl reload nginx
Apache 配置示例:
-
编辑 Apache 配置文件:通常位于
/etc/httpd/conf/httpd.conf
或/etc/apache2/sites-available/000-default.conf
。<VirtualHost *:80> ServerAdmin webmaster@yourdomain.com # 替换为你的管理员邮箱地址 DocumentRoot "/path/to/your/webroot/public" # 替换为你的项目根目录的 public 目录路径 ServerName your_domain.com # 替换为你的域名或服务器 IP 地址 ErrorLog ${APACHE_LOG_DIR}/error.log # 错误日志文件路径,根据具体情况调整路径和文件名 CustomLog ${APACHE_LOG_DIR}/access.log combined # 访问日志文件路径,根据具体情况调整路径和文件名 <Directory "/path/to/your/webroot/public"> # 替换为你的项目根目录的 public 目录路径,并添加以下配置行以启用 Laravel 的路由和重写规则,如果使用的是 Apache 2.4 或更高版本,请确保 `mod_rewrite` 已启用,如果未启用,请使用 `a2enmod rewrite` 命令启用它,然后重新启动 Apache 服务以应用更改,如果使用的是其他版本的 Apache,请确保已安装并启用了 `mod_rewrite` 模块,请确保已安装并启用了 `mod_headers` 模块以处理 HTTP 头信息,如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块,请使用 `a2enmod headers` 命令启用它们并重新启动 Apache 服务以应用更改,然后添加以下配置行以启用 Laravel 的路由和重写规则:如果未启用这些模块