将PHP应用部署到SAE

更新时间: 2023-08-25 16:24:36

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

前提条件

  1. 开通SAE服务

  2. 创建安全组

背景信息

本文的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)联系产品技术专家咨询灰度版本。

阿里云首页 Serverless应用引擎 相关技术圈