PHP应用配置详解

更新时间:2015/09/18 访问次数:15571

app.yaml 说明

根目录下创建一个 app.yaml 文件, 和 webroot 平级

以下是配置格式模板,您可以根据需要修改参数,然后去掉配置项前的"#",保存后生效

注意

1、“#”为注释标记符号,从#至行尾的字符仅作备注用,不会作为配置参数生效

2、不能用制表符(缩进符),使用空格缩进

3、该文件最大不得超过 1.6k 字节

4、修改配置文件后, 记得重新部署(如果没有自动部署)并且重启

默认配置:

# 当目录路径无法找到时, tryuri 转发到 index.php 处理, 这个等同于 nginx 规则中的 try_files $uri index.php
# 目前 tryuri 仅支持目录路径, 对于文件路径类似 /xx-xx-xx.html 这种转发要自定义 rewrite 规则
tryuri:
- path: /
  script: /index.php
ossprefix:
- /ace/app/

1.1. 配置URL重写

支持最多配置10个重写规则

使用nginx语法,禁用的字符 ';', "\n", "'", '"', '{', '}'

非 permanent 结尾的规则不支持重定向到 http(s) 或 $scheme 服务

示例:

# 这里对应的 nginx 规则为: rewrite ^/1.jpg$ /hello.php last;

rewrite:
- url: ^/1.jpg$
  script: http://xx.com/hello.php permanent  # 外部跳转
  checkfile: false # 默认是true,生成的nginx的location规则会加if判断 -e  $request_filename
- url: ^/(.+)\.html$
  script: /index.php?q=$1 last

特殊应用,如: wordpress * tryuri 不支持正则表达式,只有路径和入口, 请不要写成类似 rewrite 格式

示例:

tryuri:
- path: /                # 如果你的 blog在 /wp下, 请配置 /wp
  script: /index.php   # 表示uri请求会转发到 /index.php

针对 header 的 URL 跳转:

# 这边的例子是当用户绑定外部域名时, 跳转到外部域名的例子
rewrite_header:
- header: host
  value: xxx.com  # 缺省是模糊匹配,可匹配到 www.xxx.com,但是如果不想匹配到 www.xxx.com,要使用  ^xxx.com$ 来全匹配,注意避免主域名相同时跳转死循化
  goto: http://other.xxx2.com permanent
- header: Cookie
  value: ^key-(.*)$  # 非 host 支持模糊匹配
  goto: /url.php?key=$1
- header: TAE-Protocol
  value: ^http$
  goto: https://xxx.aliapp.com  permanent # 用于判断如果不是访问自 https url,则跳转到 https 的 url, permanent 不可省略

1.2. 配置防盗链

目录支持 css、js、gif、jpg、jpeg、png、xml、swf 类型文件防盗链

except 配置表示, 列表中的路径或文件不受防盗链机制约束,任何情况下都能访问

示例:

antihotlinking:
- except: ['/xxxxx/1.gif', '/xxxx/xxx/2.js'] # 例外的 url, 防盗链不生效的路径文件/目录, 最多10个不生效配置项

1.3. 配置目录访问控制

列出禁止浏览器访问的/ace/app/webroot/下的目录

支持最多配置10个目录,注意请在目录最后加 ”/“,否则认为是前缀匹配

示例:

deny:
- /bin/
- /admin/

1.4. 配置特定目录的IP黑白名单

注意allowip 和 denyip 只能配置其中一个

最多配置10个路径规则

每个规则最多10个IP

路径(目录)名只能匹配^[a-zA-Z0-9/.//-_]+$

示例:

denyuri:
- path: /bin/
  allowip: ['1.1.1.1', '2.2.2.2']
  denyip: ['3.3.3.3', '4.4.4.4']

1.5. 已有的文件存储服务引入 

TAE 用户需要创建文件存储服务, 用于支持分布式读写。

同时也支持阿里云的OSS 配置引入, 用于支持分布式读写。

 

示例:

oss_id: access _key   #请填写阿里云用户中心->安全认证中生效状态的access _key
oss_secret: secret_key  #请填写access_key对应的secret_key
oss_bucket: bucket_name  #请指定用于存储文件bucket

1.6. 本地读写同步文件存储服务

配置网络分布式读写的目录 (路径), 请先在TAE中创建 文件存储服务

文件存储服务激活后会生成一个隐含的空间, TAE会将动态生成的文件生成到“隐含空间”(Alibaba::Storage([空]))

单个文件写入最大字节数不超过4MB,超出限制的文件不予写入

支持最多配置10个目录

暂不支持配置目录下对子目录的遍历操作

暂不支持并发读写, 需要自行解决读写一致性问题

在所配置的文件存储服务 bucket 下会生成同路径的文件夹和文件, 请勿删除和修改

"同步" 指的是在生成新文件时同步到文件存储服务上

 

示例:

ossprefix:
- /ace/app/webroot/wp-content/ # 填写绝对路径, TAE 上的代码目录以 /ace/app 做为绝对路径
- /ace/app/webroot/wp-admin/

1.7. 过期时间配置

示例:

expires:
- path: /bin/xxx/.*\.js  # 匹配路径表达式
  time: 1h   # 过期时间值

1.8. 配置 php 进程内存上限 (Memory_limit)

内存设置越小, php 处理请求的能力越强, 并发能力越强

内存设置加大, 主要用于消耗内存过多的应用

配置的最小值不小于 8, 最大值根据运行环境不同而定, 一般是 48 ~ 128

示例:

memory_limit: 16  # 8 或 32 或 48 等, 注意不要加 m或者M

1.9. 自定义错误页

出现 status 指定状态的页面时,重定向到 page

不可重复定义已经存在的 status 状态码,如:只能定义一个 404、504

注意重新发布且重启后配置生效

示例:

error_page:
- status: 504 505
  page: /50x.html  # 确保这个文件路径正确
- status: 404
  page: /40x.html  # 确保这个文件路径正确

yaml 文件demo

简化yaml文件demo

比较全的yaml文件demo

FAQ

关于此文档暂时还没有FAQ
返回
顶部