将PHP应用部署到SAE
本文以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体验,且需要安装主题、插件或上传文件,您需要额外进行如下操作,对变更进行持久化管理。
下载安装配置
可以通过Webshell下载保存./php/wp-config.php。具体说明,请参见Editing wp-config.php。
安装SFTP
具体操作,请参见一键复制安装命令。
安装主题插件
安装后,需要下载保存./php/wp-content/目录内容并更新到ZIP包中,或配置OSS和NAS持久化存储到目录。具体操作,请参见通过日志上传下载诊断应用。
解压后的目录结构如下。
.
├── 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应用
- 登录SAE控制台。
在左侧导航栏,选择 ,在顶部菜单栏选择地域,然后单击创建应用。
在应用基本信息配置向导,配置相关信息,然后单击下一步:应用部署配置。
应用名称:输入sae-php。
专有网络配置:选择自定义配置。
命名空间:在下拉列表选择命名空间。命名空间和VPC是一一映射关系,当您选择命名空间后,会自动绑定对应的VPC。
vSwitch:单击请选择vSwitch,在选择vSwitch对话框选中推荐可用区的vSwitch后单击确定。
安全组:在下拉列表选择安全组。
应用实例数:输入2。
VCPU:选择1 Core。
内存:选择2 GiB。
在应用部署配置配置向导,配置相关信息,然后单击下一步:确认规格。
技术栈语言:选择PHP。
技术栈版本:在下拉列表选择PHP-7.3。
应用部署方式:选择ZIP包部署。
配置Zip包
PHP环境:在下拉列表选择PHP-FPM 7.3。
文件上传方式:在下拉列表选择上传Zip包。
上传Zip包:单击选择文件并上传已获取的Demo。本文以PHP原生Demo为例。
其余配置项保持默认设置。
在确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建。
页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。
验证配置是否生效。
方式一:
在应用基本信息页面的左侧导航栏,单击变更记录,在变更记录页面,查看应用变更详情。如果显示执行成功,表示应用部署成功,配置已生效。
方式二:
在应用基本信息页面,单击实例部署信息页签,查看实例的运行状态。如果运行状态显示为Running,表示应用部署成功,配置已生效。
步骤二:通过公网访问应用
应用部署成功后,需为应用绑定SLB,以便公网通过SLB访问应用。SAE会自动帮您购买SLB服务,您仅需配置应用的监听端口;您也可以复用在传统型负载均衡CLB控制台控制台购买的SLB。关于复用规则,请参见为应用绑定SLB。
在sae-php应用的基本信息页面默认显示的基本信息页签内,单击应用访问设置区域内的添加公网SLB访问。
在添加公网SLB访问对话框,配置相关配置项,然后单击确定。
在请选择SLB下拉列表,选择新建。
单击HTTP协议页签,配置默认监听端口。
HTTP端口:输入80。
容器端口:输入80。
添加完成后,您可以在基本信息页面的公网访问地址区域看到该公网SLB的IP地址和端口。
通过公网访问Demo应用。
根据公网访问地址栏显示的公网SLB的IP和端口,在浏览器中以http://slbip:port/的格式输入地址并回车,可以看到Demo应用的首页。
常见问题
SAE如何支持高版本PHP部署?是否支持非PHP-FPM架构?
支持。您可以加入钉群(钉群号:32874633)联系产品技术专家咨询灰度版本。