BAE开源系统移植教程
bae吧
全部回复
仅看楼主
level 6
cplushua 楼主
许多朋友希望能够将自己的网站程序移植到BAE上,而且苦于代码方面的障碍,不得不花大气力请人做应用移植。
在这个帖子里将为大家逐渐发布一些简单的应用程序的移植方法,供大家学习交流~
2012年09月28日 08点09分 1
level 6
cplushua 楼主
首先来一个简单的移植。
在这之前需要分析要移植的应用程序的原生PHP环境和BAE环境的差异,也就是说运行于原生PHP环境的网站应用程序都需要请求哪一些权限和需要哪一些操作,我们将通过一些实际的例子来一一为大家展示应用的移植,并逐步告诉大家该如何进行分析和修改移植
2012年09月28日 08点09分 2
level 6
cplushua 楼主
http://newsqa.duapp.com/
首先来看一个简单的问答系统的移植
这是一个开源问答系统,源代码可以到其官方网站下载~
2012年09月28日 08点09分 3
回复 pekdo :appid没配好
2012年12月06日 08点12分
level 6
cplushua 楼主
分析该系统所要请求的权限等。
在第一次移植中我们不妨这样做,直接将网站程序上传到BAE的PHP执行环境,看一看会发生什么现象。当然预期的最直接的现象就是,数据库没办法连接,因为BAE的数据库连接方式不是采用固定的帐号密码和主机的方式进行连接,而是采用从环境中获取数据库的帐号和密码的方式进行~
关于数据库获取帐号密码的文档可以参见这里。http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E4%BA%91%E6%95%B0%E6%8D%AE%E5%BA%93
为了看起来方便,将代码直接复制到这里
/*从环境变量里取出数据库连接需要的参数*/
$host = getenv('HTTP_BAE_ENV_ADDR_SQL_IP');
$port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT');
$user = getenv('HTTP_BAE_ENV_AK');
$pwd = getenv('HTTP_BAE_ENV_SK');
这几行代码的作用就是将数据库主机、端口、用户名、密码从BAE的环境中取出来并赋值给相应的变量。
2012年09月28日 08点09分 4
level 6
cplushua 楼主
接下来要做的事情就是配置该应用程序。如果我们可以非常的自信的说该应用程序不需要请求许多特殊的权限,那我们完全可以这样做,将该应用程序的本地安装包(安装完成的包)直接上传到BAE执行环境,并直接手动配置该应用程序,方法就是将上述代码复制到配置文件,并将相应的变量作为相应的配置。我来解释一下这句话的意思。本来这些安装程序都是需要进行安装设置,并将数据库主机、帐号、密码直接设置以常量的形式保存在服务器的配置文件里,但是BAE环境是从环境里取出的,所以我们需要把常量的配置改为变量。接下来我会给大家做一个示例,发几行示例代码,其实非常容易理解。
2012年09月28日 08点09分 5
level 6
cplushua 楼主
使用在线编辑器,左边标示出的是问答系统的配置文件。接下来需要修改的就是该配置文件
2012年09月28日 08点09分 6
level 6
cplushua 楼主
接下来看代码部分
在该图片中,上面使用getenv获取到数据库主机、端口、用户名、密码。这几行代码后来加入到里面的,也就是为了兼容BAE环境而加入的。后面的define是配置文件本来拥有的,原来的define的第二个参数是以单引号引起来的常量,在这里我们做了修改,将单引号去掉,并设置为相应的变量。需要注意的是,mysql数据库的默认端口是3306,而BAE的默认端口不是3306,所以需要在服务器后面加冒号和端口号,当然有的应用程序本身拥有设置端口号的选项,可以在该选项中设置,如果没有的话,就如同上图一样,在主机后面加冒号和端口号,至此,数据库设置已经完成,如果该应用程序没有请求别的权限等,则可以直接进行访问。记住噢,别忘记在后台导入在本地安装完成之后的数据库文件噢~~
经过测试,该系统确实可以正常访问了~~
2012年09月28日 08点09分 7
可以直接访问了,数据库也恢复了,不过打开首页总跳转到安装页面怎么办?[疑问]
2013年10月28日 08点10分
回复 sunlinanb46 :后台能打开但是不能登录,提示Can't Pconnect MySQL Server(:)!
2013年10月28日 08点10分
level 1
很好,谢了!~
2012年10月08日 10点10分 9
level 10
wordpress是成功的安装教程搬到BAE了,可是怎么Emlog的还是弄不成功呢?LZ能弄个Emlog的教程吗?
2012年10月15日 06点10分 10
最近忙,过几天看一下。
2012年10月16日 02点10分
回复 cplushua :哦,。。
2012年10月16日 08点10分
回复 876056768 :Emblog移植成功
2012年11月18日 10点11分
回复 cplushua :教程 有的吗/?
2012年12月16日 15点12分
level 5
前排
围观好贴!
2012年10月20日 14点10分 11
level 2
这个不错但是完全不懂代码很上火
2012年10月20日 22点10分 12
level 1
discuz 移植了没
2012年10月27日 12点10分 13
level 1
phpwind9.0 同求
2012年11月13日 15点11分 14
level 3
这个教程红啊 应该支持鼓励大家多出这样的教程
2012年12月04日 10点12分 16
level 5
支持啊啊
2012年12月07日 23点12分 17
level 1
上传文件怎么设置
2012年12月08日 11点12分 18
暂时不建议直接上传文件,可以使用云存储来保存文件
2012年12月08日 15点12分
回复 cplushua :哪discuz如何移植了,我移植失败啊
2012年12月09日 05点12分
回复 山阳西 :BAE本地写还在优化,直接移植会出现问题,可以写一个中间层,将本地写写到云存储
2012年12月09日 15点12分
上传文件利用云储存是个问题,要不大家都利用了,我看百度提供的修改版wordpress可以直接上传到云空间里
2013年10月28日 06点10分
level 5
你好,请问bae上伪静态怎么设置
访问url.c om/aabb.html伪静态到url.com/?aabb或者访问url.c om/aabb/伪静态到url.com/?aabb
2012年12月09日 01点12分 19
在配置里选择url进行设置
2012年12月09日 15点12分
level 2
求DEDECMS5.7移植方法。
2012年12月12日 12点12分 20
level 2
java肿么办啊?[啊!]
2012年12月22日 15点12分 21
BAE支持java的
2012年12月30日 17点12分
回复 cplushua :我是说怎么移植
2012年12月30日 22点12分
level 2
楼主好,按照你的方法,我试着配置一个开源程序的文件,就是不成功。
现将数据库配置文件贴在这里,请帮我看看啊,感激不尽!
<?php
if(!defined('IN_PISCES'))
{exit('Access Denied.');
}
$singlehost = array('adapter' => 'mysql', 'host' => 'localhost', 'port'=>'', 'username'=>'■■■', 'password' => '■■■', 'dbname' => '■■■', 'pconnect' => '');
$dcb = new LtDbConfigBuilder;
$dcb->addSingleHost($singlehost);
$config["db.servers"] = $dcb->getServers();
$config["db.table.prefix"] = '■■■_';
$config["db.info"] = $singlehost;
2013年01月27日 09点01分 22
1 2 尾页