Laravel
Laravel 是一个 Web 应用框架, 有着表现力强、语法优雅的特点。Laravel 致力于提供出色的开发体验,同时提供强大的特性,例如完全的依赖注入,富有表现力的数据库抽象层,队列和计划任务,单元和集成测试等等。
本指南介绍如何通过多种方式在腾讯云托管上部署 Laravel 应用程序:
- 1、从 Dockerfile 部署(#从 Dockerfile 部署)
创建一个 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"]
3、部署代码
打开腾讯云托管, 点击新建按钮 -> 选择从空白创建 -> 填写服务名称 -> 部署方式选择上传代码包 -> 代码包类型选择文件夹 -> 选择 cloudrun-laravel 目录进行上传 -> 端口填写 80 -> 点击>创建并等待创建完成即可。