Laravel
Laravel 是一个 Web 应用框架, 有着表现力强、语法优雅的特点。Laravel 致力于提供出色的开发体验,同时提供强大的特性,例如完全的依赖注入,富有表现力的数据库抽象层,队列和计划任务,单元和集成测试等等。
本指南介绍如何通过多种方式在腾讯云托管上部署 Laravel 应用程序:
创建一个 Laravel 应用
Note: 如果你已经有一个 Laravel 应用,且确保 Dockerfile 文件在根目录下,可跳过这个步骤。
创建一个 Laravel 应用,请确保本地已安装 PHP 和 Composer。
安装好 PHP 和 Composer 后,可以通过 Composer 的 create-project
命令创建一个新的 Laravel 项目:
composer create-project laravel/laravel cloudrun-laravel
启动 php 服务
执行 php-fpm
启动 php cgi 服务, 服务访问地址为 127.0.0.1:9000
。
配置 Nginx default.conf
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
}
将 default.conf 放到 nginc conf.d
目录下,执行 nginx -s reload
, 启动 nginx 服务,即可通过 http://127.0.0.1
访问 php 服务。
从 Dockerfile 部署
1、在 cloudrun-laravel
项目下创建 nginx 目录,在 nginx 目录下分别添加 default.conf
和 supervisord.conf
文件,内容如下:
default.conf
server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
}
supervisord.conf
[supervisord]
nodaemon=true
[program:php-fpm]
command=/usr/local/sbin/php-fpm
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
2、在 cloudrun-laravel
项目下创建 Dockerfile, 内容如下:
# 1. 构建阶段,安装依赖,composer install
FROM php:8.2-fpm-alpine AS build
# 安装系统依赖和 PHP 扩展
RUN apk add --no-cache \
bash \
git \
unzip \
libzip-dev \
oniguruma-dev \
curl \
&& docker-php-ext-install pdo_mysql mbstring zip bcmath
# 安装 composer
COPY /usr/bin/composer /usr/bin/composer
WORKDIR /var/www/html
# 复制项目代码
COPY . .
RUN composer install --no-dev --optimize-autoloader --no-interaction
# 生成优化的自动加载文件
RUN composer dump-autoload -o
# 2. 运行阶段,PHP-FPM 镜像
FROM php:8.2-fpm-alpine
# 安装 PHP 扩展
RUN apk add --no-cache libzip oniguruma-dev libpng libjpeg-turbo libwebp freetype \
&& apk add --no-cache --virtual .build-deps $PHPIZE_DEPS libzip-dev oniguruma-dev \
&& docker-php-ext-configure zip \
&& docker-php-ext-install pdo_mysql mbstring zip bcmath gd \
&& apk del .build-deps
WORKDIR /var/www/html
# 复制 build 阶段的代码和依赖
COPY /var/www/html /var/www/html
# 设置权限(根据需要调整)
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
# 3. 安装并配置 supervisord 以同时启动 php-fpm 和 nginx
RUN apk add --no-cache supervisor nginx
# 复制 nginx 配置
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
# 复制 supervisord 配置
COPY nginx/supervisord.conf /etc/supervisord.conf
# 暴露端口
EXPOSE 80
# 启动 supervisord,管理 php-fpm 和 nginx
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
通过上面更改,你的 laravel 程序将可以部署到腾讯云托管了!
部署到云托管
云托管提供了多种部署方式来部署你的应用:
控制台部署
打开腾讯云托管, 点击通过本地代码部署
-> 填写服务名称 -> 部署方式选择上传代码包
-> 代码包类型选择文件夹
-> 选择 cloudrun-laravel 目录进行上传 -> 端口填写 8080 -> 点击创建并等待创建完成即可。
通过 cli 部署
如果您已经安装了 CloudBase CLI,可以在项目目录下使用以下命令将应用部署到 CloudBase 云托管:
tcb cloudrun deploy
输入环境和服务名称后,CLI 会自动打包应用像并部署到云托管。
除了手动部署外,你也可以一键安装上述应用: