目录
关于弹性web托管php发布问题解决方案
通过参考文档:利用WeX5-runtime-php进行运行环境部署,在阿里云的弹性web托管上部署php之后,网站不能打开的问题,下面我们会给出解决方案。
弹性web托管不支持pathinfo模式,所以我们需要修改url的请求方式和后台逻辑。
1)修改.htaccess文件RewriteBase 和RewriteRule ,这个修改请自行按照下面的部署进行修改,此修改是为了适应弹性web托管php发布,我们正常版本里的这个文件不会进行修改。
- RewriteBase /baas
- RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]
2)后台逻辑,即修改ActionContext.class.php和index.php文件, 下载地址:new-ver-for-web-php 目前请下载这个两个文件覆盖,以后的版本会进行更新。
文件所在路径为:WeX5_4933\model\Baas.php
一、准备UI及Baas.php资源
1. 1UI资源准备
- 通过在Native下编译UI资源,可以获得要发布的静态文件。
下图以外卖案例为示意进行说明- UI编译后会在www目录下生成所需的UI资源。
1.2准备Baas.php资源
弹性web托管是带有数据库的,我们阿里的数据库配置到我们的开发工具里
- 首先,点击窗口->首选项,切换成baas.php模式
- 配置数据库,如下图,选择阿里提供给的数据库类型,目前工具支持以下几种类型数据库
- 设置数据库信息,如下,填写阿里提供给你的数据库信息,
这里注意,数据源名称和数据库名称的区别,为了省事,这两个可以定义成相同的名字。
a)数据源名称,是可以自己定义的,然后工具里要调用的
b)数据库名称是指,你的物理数据库的名称,注意大小写
- 填写完之后,测试是否能够连接成功,下图提示,说明连接成功了。
- 我们把配置好的数据源添加到Baas.php项目里来,打开db.config.m文件,勾选数据源名称,保持,即可。
- 我们修改案例外卖的项目的数据库连接,找到下面文件,把name=“db”的改成阿里的数据库名称。这里一个有四个地方需要修改。
- 2016-4-12号的3.4版本及之前的版本,需要下载new-ver-for-web-php文件,覆盖本地文件,文件所在路径为WeX5_4933\model\Baas.php,3.4以后的版本不需要下载。
- 下面我们编译一下Baas.php,右键点击Baas.php,选择模型编译,如下图,说明编译成功。
- 如下图资源即为Baas.php资源,Baas.php资源分为2种,
a)公共资源:红框里的是公共资源,是必须需要的,
B)项目资源:即蓝框的资源:是外卖和其辅助资源,
(如果是部署自己的资源,只需要公共资源和你自己的项目资源)
二、上传资源并部署
2.1上传UI资源
- 上传UI资源到htdocs文件夹下
2.2上传Baas.php资源
- 在htdocs文件夹下建立文件夹baas
- 在baas文件夹下,上传Baas.php资源
2.3修改文件.htaccess文件
- 修改.htaccess为如下图
我们把代码提供一些,大家也可以拷贝使用
RewriteEngine on RewriteBase /baas RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]
三、在阿里的数据库上创建外卖相关的库表
3.1创建数据库表
- 我们提供一下MySQL的库表创建方式和数据
如下4个表的创建和数据,供大家下载参考
takeout_food、takeout_order、takeout_region、takeout_user
点击下载数据库sql:takeout
评一波