Skip to content
run a wordpress web in fc custom runtime
PHP JavaScript CSS Shell Vim script HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.fun add placeholder ensure fun nas sync empty dir and change order to sta… Jan 6, 2020
.funignore support run in fc Nov 28, 2019
Funfile no need install procps and libprocps6, both are already built into th… Dec 31, 2019
Funfile-php72 v1 Nov 27, 2019
bootstrap add placeholder ensure fun nas sync empty dir and change order to sta… Jan 6, 2020
readme.md add placeholder ensure fun nas sync empty dir and change order to sta… Jan 6, 2020
template.yml Nas Auto support gid and uid Dec 6, 2019

readme.md

简介

本示例展示的基于函数计算 custom runtime 构建 php web 应用, 在这个案例中,可以将基于传统模式 nginx + php-fpm + mysql 开发的网站简单无缝迁移到函数计算平台。

本项目是一元建站-基于函数计算 + wordpress 构建 serverless 网站示例工程。

操作步骤

准备条件

免费开通函数计算 , 按量付费,函数计算有很大的免费额度。

免费开通文件存储服务NAS, 按量付费

1. clone 该工程

git clone https://github.com/awesome-fc/customruntime-php.git

2. 手动设置下 bootstrap 和 nginx 的权限

chmod u+s .fun/root/usr/sbin/nginx

chmod u+s bootstrap

修改 wordpress.conf 中的 server_name 为自己的自定义域名

3. 安装最新版本的 fun

fun 安装手册

在使用前,我们需要先进行配置,通过键入 fun config,然后按照提示,依次配置 Account ID、Access Key Id、Secret Access Key、 Default Region Name 即可。

4. 上传网站(这里是wordpress)到远端 NAS

  • 执行为 fun nas init

  • fun nas sync, 将本地 .fun/nas/auto-default/customruntime-php/wordpress 工程上传到远端 NAS

  • 执行 fun nas ls nas:///mnt/auto/ 查看远端 NAS 是否已经有了对应的目录, 即上传是否成功

5. 执行 fun deploy, 成功部署service,function 和对应的自定义域名

先去域名解析, 比如在示例中, 将域名 wp.mofangdegisn.cn 解析到 123456.cn-hangzhou.fc.aliyuncs.com, 对应的域名、accountId 和 region 修改成自己的

Tips: 可以访问:http://wp.mofangdegisn.cn/readme.html, 验证 nginx 启动成功, 访问:http://wp.mofangdegisn.cn/info.php 可以验证 php-fpm 启动成功。

从头到尾 DIY

如果对本示例预先安装的 php 版本或者扩展需要有改动, 可以通过 Funfile 来定义安装软件和库, 比如 Funfile-php7.2 就是安装 php7.2 的示例

1. fun 安装依赖包

如果不是有 Funfile 更新, 本工程已经下载好了, 可以 skip 掉这一步

执行 fun install -v, fun 会根据 Funfile 中定义的逻辑安装相关的依赖包

RUNTIME custom
RUN apt-get update
RUN fun-install apt-get install nginx 
RUN fun-install apt-get install php-common
RUN fun-install apt-get install php-fpm
RUN fun-install apt-get install php-cli
RUN fun-install apt-get install php-cgi
...

将 nginx 和 php 相关下载到本地, 这些会被下载到 .fun/root 目录下

2. 更新 nginx 和 php 的 conf

比如 diff 如下: diff

主要是如下变更:

  1. conf 或者扩展的路径是要正确

  2. 日志设置到 NAS 的可写目录

  3. 设置 nginx conf

  4. 编写 bootstrap

设置 bootstrap 和 nginx 的权限

chmod u+s .fun/root/usr/sbin/nginx

chmod u+s bootstrap

bootstrap 中有关启动命令行 config 位置可能需要根据具体情况修改

NEXT

按照前文中的操作步骤 4 和 5 即可

You can’t perform that action at this time.