目录

关于弹性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

 

下面我们介绍一个如何部署弹性web托管的php网站

一、准备UI及Baas.php资源

1. 1UI资源准备

  • 通过在Native下编译UI资源,可以获得要发布的静态文件。
下图以外卖案例为示意进行说明
ali-php-1
  • UI编译后会在www目录下生成所需的UI资源。

ali-php-2

1.2准备Baas.php资源

弹性web托管是带有数据库的,我们阿里的数据库配置到我们的开发工具里

  • 首先,点击窗口->首选项,切换成baas.php模式

ali-php-3

  • 配置数据库,如下图,选择阿里提供给的数据库类型,目前工具支持以下几种类型数据库

ali-php-4

  • 设置数据库信息,如下,填写阿里提供给你的数据库信息,

这里注意,数据源名称和数据库名称的区别,为了省事,这两个可以定义成相同的名字。

a)数据源名称,是可以自己定义的,然后工具里要调用的

b)数据库名称是指,你的物理数据库的名称,注意大小写

ali-php-5

  • 填写完之后,测试是否能够连接成功,下图提示,说明连接成功了。

ali-php-6

  • 我们把配置好的数据源添加到Baas.php项目里来,打开db.config.m文件,勾选数据源名称,保持,即可。

ali-php-8

  • 我们修改案例外卖的项目的数据库连接,找到下面文件,把name=“db”的改成阿里的数据库名称。这里一个有四个地方需要修改。

ali-php-7

  • 2016-4-12号的3.4版本及之前的版本,需要下载new-ver-for-web-php文件,覆盖本地文件,文件所在路径为WeX5_4933\model\Baas.php,3.4以后的版本不需要下载。

ali-php-15

  • 下面我们编译一下Baas.php,右键点击Baas.php,选择模型编译,如下图,说明编译成功。

ali-php-9

  • 如下图资源即为Baas.php资源,Baas.php资源分为2种,

a)公共资源:红框里的是公共资源,是必须需要的,

B)项目资源:即蓝框的资源:是外卖和其辅助资源,

(如果是部署自己的资源,只需要公共资源和你自己的项目资源)

 ali-php-16

二、上传资源并部署

2.1上传UI资源

  • 上传UI资源到htdocs文件夹下

ali-php-11

2.2上传Baas.php资源

  • 在htdocs文件夹下建立文件夹baas

ali-php-12

  • 在baas文件夹下,上传Baas.php资源

ali-php-13

2.3修改文件.htaccess文件

  • 修改.htaccess为如下图

ali-php-14

我们把代码提供一些,大家也可以拷贝使用

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