本文以PHP开发的Demo应用程序为例,采用ZIP包部署方式,介绍如何将应用部署到Serverless应用引擎SAE(Serverless App Engine),并通过绑定公网SLB,让您的应用可以被公网访问。

背景信息

本文的Demo应用为SAE欢迎网页程序,支持多种PHP框架。本文将演示PHP原生代码与部分框架的部署。

获取Demo

您可以按需选择以下Demo。

PHP原生

下载hello-sae-php.zip。解压后,可获得Nginx与PHP代码文件。具体说明,请参见PHP ZIP打包说明

解压后的目录结构如下。
.
├── nginx
│   ├── default.conf
│   ├── fastcgi_params
│   └── root.dir
└── php
│   ├── index.php
│   └── phpinfo.php

Laravel 8.x

  • 下载hello-sae-php-laravel.zip。解压后,可获得Nginx与PHP代码文件。

    PHP运行环境的具体说明,请参见PHP ZIP打包说明

  • 针对Laravel框架配置说明,参考如下。具体可查看/nginx/php目录下的文件内容。
    • PHP应用代码,存放路径为/home/admin/app/php/public
    • Nginx应用配置,存放路径为/home/admin/app/nginx,引用方式为include conf.d/fastcgi_params;
    • Nginx系统配置,存放路径为/etc/nginx
解压后的目录结构如下。
.
├── nginx                       # 存放路径/home/admin/app/nginx/
│   ├── default.conf
│   ├── fastcgi_params          # 引用方式include conf.d/fastcgi_params;
│   └── root.dir
├── php                         # 存放路径/home/admin/app/php
│   ├── README.md
│   ├── app
│   ├── artisan
│   ├── bootstrap
│   ├── composer.json
│   ├── composer.lock
│   ├── config
│   ├── database
│   ├── package.json
│   ├── phpunit.xml
│   ├── public                  # Laravel框架默认目录,配置为nginx root
│   ├── resources
│   ├── routes
│   ├── server.php
│   ├── storage
│   ├── tests
│   ├── vendor
│   └── webpack.mix.js

ThinkPHP 6

  • 下载hello-sae-php-thinkphp.zip。解压后,可获得Nginx与PHP代码文件。

    PHP运行环境的具体说明,请参见PHP ZIP打包说明

  • 针对ThinkPHP框架配置说明,参考如下。具体可查看/nginx/php目录下的文件内容。
    • PHP应用代码,存放路径为/home/admin/app/php/public
    • PHP应用入口,存放路径为/home/admin/app/php/public/index.php
    • Nginx应用配置,存放路径为/home/admin/app/nginx,引用方式为include conf.d/fastcgi_params;
    • Nginx系统配置,存放路径为/etc/nginx
解压后的目录结构如下。
.
├── nginx                       # 存放路径 /home/admin/app/nginx/
│   ├── default.conf
│   ├── fastcgi_params          # 引用方式 include conf.d/fastcgi_params;
│   └── root.dir
├── php                         # 存放路径 /home/admin/app/php
│   ├── LICENSE.txt
│   ├── README.md
│   ├── app
│   ├── composer.json
│   ├── composer.lock
│   ├── config
│   ├── extend
│   ├── public                  # ThinkPHP 框架默认目录,配置为nginx root
│   │   ├── index.php           # ThinkPHP 框架默认入口,配置为nginx rewrite
│   ├── route
│   ├── runtime
│   ├── think
│   ├── vendor
│   └── view

WordPress 5

  • 下载hello-sae-php-wordpress.zip。解压后,可获得Nginx与PHP代码文件。

    PHP运行环境的具体说明,请参见PHP ZIP打包说明

  • 针对WordPress框架配置说明,参考如下。具体可查看/nginx/php目录下的文件内容。
    • PHP应用代码,存放路径为/home/admin/app/php/public
    • PHP应用入口,存放路径为/home/admin/app/php/public/index.php
    • Nginx应用配置,存放路径为/home/admin/app/nginx,引用方式为include conf.d/fastcgi_params;
    • Nginx系统配置,存放路径为/etc/nginx
  • 若全新安装WordPress体验,且需要安装主题、插件或上传文件,您需要额外进行如下操作,对变更进行持久化管理。
解压后的目录结构如下。
.
├── nginx                          # 存放路径/home/admin/app/nginx/
│   ├── default.conf               # WordPress站点配置
│   ├── fastcgi_params             # 引用方式include conf.d/fastcgi_params;
│   ├── global
│   │   ├── restrictions.conf      # WordPress默认访问限制
│   │   └── wordpress.conf         # WordPress默认PHP访问规则
│   └── root.dir
├── php                            # 存放路径/home/admin/app/php
│   ├── index.php                  # WordPress框架默认入口
│   ├── license.txt
│   ├── readme.html
│   ├── wp-activate.php
│   ├── wp-admin                   # WordPress框架管理后台
│   ├── wp-blog-header.php
│   ├── wp-comments-post.php
│   ├── wp-config-sample.php
│   ├── wp-content
│   ├── wp-cron.php
│   ├── wp-includes
│   ├── wp-links-opml.php
│   ├── wp-load.php
│   ├── wp-login.php
│   ├── wp-mail.php
│   ├── wp-settings.php
│   ├── wp-signup.php
│   ├── wp-trackback.php
│   └── xmlrpc.php

操作步骤

步骤一:创建PHP应用

  1. 登录SAE控制台
  2. 在左侧导航栏,单击应用列表,在顶部菜单栏选择地域,然后单击创建应用
  3. 应用基本信息配置向导页面,配置相关信息,然后单击下一步:应用部署配置
    sc_basic_information_of_creating_a_sae_php_application
    • 应用名称:输入sae-php
    • 专有网络配置:选择自定义配置
    • 命名空间:在下拉列表选择命名空间。命名空间和VPC是一一映射关系,当您选择命名空间后,会自动绑定对应的VPC。
    • vSwitch:单击请选择vSwitch,在选择vSwitch对话框选中推荐可用区的vSwitch后单击确定
    • 安全组:在下拉列表选择安全组。
    • 应用实例数:输入2
    • VCPU:选择1 Core
    • 内存:选择2 GiB
  4. 应用部署配置配置向导页面,配置相关信息,然后单击下一步:确认规格
    sc_configuration_of_creating_a_sae_php_application
    • 技术栈语言:选择PHP
    • 技术栈版本:在下拉列表选择PHP-7.3
    • 应用部署方式:选择ZIP包部署
    • 配置Zip包
      • PHP环境:在下拉列表选择PHP-FPM 7.3
      • 文件上传方式:在下拉列表选择上传Zip包
      • 上传Zip包:单击选择文件并上传已获取的Demo。本文以PHP原生Demo为例。

    其余配置项保持默认设置。

  5. 确认规格配置向导页面,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建
    页面会跳转至创建完成配置向导页面,您可以单击应用详情页进入基本信息页面。
  6. 验证配置是否生效。
    • 方式一:

      在应用基本信息页面的左侧导航栏,单击变更记录,在变更记录页面,查看应用变更详情。如果显示执行成功,表示应用部署成功,配置已生效。

    • 方式二:

      在应用基本信息页面,单击实例部署信息页签,查看实例的运行状态。如果运行状态显示为Running,表示应用部署成功,配置已生效。

步骤二:通过公网访问应用

应用部署成功后,需为应用绑定SLB,以便公网通过SLB访问应用。SAE会自动帮您购买SLB服务,您仅需配置应用的监听端口;您也可以复用在传统型负载均衡CLB控制台控制台购买的SLB。关于复用规则,请参见为应用绑定SLB

  1. sae-php应用的基本信息页面默认显示的基本信息页签内,单击应用访问设置区域内的添加公网SLB访问
  2. 添加公网SLB访问对话框,配置相关配置项,然后单击确定
    1. 请选择SLB下拉列表,选择新建
    2. 单击HTTP协议页签,配置默认监听端口。
      • HTTP端口:输入80
      • 容器端口:输入80
    添加完成后,您可以在基本信息页面的公网访问地址区域看到该公网SLB的IP地址和端口。
  3. 通过公网访问Demo应用。
    根据公网访问地址栏显示的公网SLB的IP和端口,在浏览器中以http://slbip:port/的格式输入地址并回车,可以看到Demo应用的首页。sc_access_sae_php_application_over_the_Internet

常见问题

SAE如何支持高版本PHP部署?是否支持非PHP-FPM架构?

支持。您可以加入钉群(钉群号:32874633)联系产品技术专家咨询灰度版本。