Phalapi 部署到新浪SAE云服务器记录

自己写了个安卓app,需要服务器后台编程,由于之前的工作经历,学了一点php皮毛,就准备用已经学了的这点知识来写个服务器后台程序,由于之前一直是写原始php的,感觉太低级,想着整点高级的,php框架找了一堆,什么TP,YII,不适合新手,偶然之下找到了PhalApi,这框架是一群有逼格的艺术家写的,从文档到说明,都很有哲学范,也确实做到了如口号所说—PhalApi 接口,从简单开始,在此感谢框架的开发者们!
    
    由于之前在新浪sae部署过代码,准备把这个也部署到新浪sae 上面,由于我也是在边学习框架边搞的,写的略微有点啰嗦,步骤如下:
    
    1. 开始前的准备
        a. 下载PhaApi到本地
        b. SAE账号,以及在SAE上创建一个空白Php应用
        c. 仔细阅读PhalApi 说明,并且了解本地Demo运行过程
    2. 准备git仓库
        a.在SAE上创建一个空白项目并且选择  git方式管理代码会产生一个git仓库地址(SVN)也会一个地址。

屏幕快照_2015-10-21_22.14_.29_.png



    结构是:https://git.sinaapp.com/ + 应用名+ /
        
    3. 修改本地代码配置
        
        3.1 修改数据库配置,我们点开SAE 创建的应用中 MYSQL 管理,到文档一栏最下面,可以看到说明,定义了MYSQL数据库的一些全局常量值


屏幕快照_2015-10-21_22.25_.41_.png




对比本地的数据库配置在  Phalapi->config->dbs.php中


屏幕快照_2015-10-21_22.28_.12_.png


每个值的意思,注释写的很清楚了,对比之后,只要替换就OK啦!结果如下(注意别替换错了):


屏幕快照_2015-10-21_22.30_.52_.png


修改数据库部分结束了。





    3.2 修改初始化配置文件
        
        整个框架的文件结构如下图:


屏幕快照_2015-10-21_22.35_.21_.png



打开init.php , 由于SAE为云服务器,并且代码空间有限,因此所有的应用都禁止了php代码的写文件以及创建文件权限,因此框架中的需要创建文件的功能暂时是不能用了,包括日志。注释掉下面的代码
     //日记纪录 DI()->logger = new PhalApi_Logger_File(API_ROOT . '/Runtime', PhalApi_Logger::LOG_LEVEL_DEBUG | PhalApi_Logger::LOG_LEVEL_INFO |PhalApi_Logger::LOG_LEVEL_ERROR);
还有过滤器也注释掉
//签名验证服务 //DI()->filter = 'Common_SignFilter';
  memcache 在SAE有单独的初始化方法,因此,将memcache 的初始化也注释掉

//缓存 - Memcached /** DI()->cache = function() {     //根据Memcached是否加载     if(extension_loaded('memcached')){         $mc = new PhalApi_Cache_Memcached(DI()->config->get('sys.mc'));     }else{         $mc = new PhalApi_Cache_Memcache(DI()->config->get('sys.mc'));     }     return $mc; }; */ /* DI()->cache = function() {     $mc = new PhalApi_Cache_Memcache(DI()->config->get('sys.mc'));     return $mc; }; */


 4. 上传代码到SAE
    
    框架中需要修改的东西都已经修改好了,接下来准备将代码上传到SAE上
    4.1. 将代码库clone到本地已准备好的路径
        git clone  https://git.sinaapp.com/ + 应用名+ /         本地路径
    4.2. 上一步成功之后,进入到 clone 下来的  名称为应用名 的文件夹,文件夹名称就是你的应用名,然后到刚刚修改的项目文件夹下面,将最外层的PhalApi 目录下得所有文件都复制到该文件夹下面,复制完成后应该是这样


屏幕快照_2015-10-22_11.14_.31_.png

4.3. 将文件加入到仓库
    
    git add  -A
    
    4.4 查看状态
    
    git status    应该会列出很多已经添加进去的文件
        
    4.5. 提交代码
    
    git commit -m  “PhalApi GOGOGO”
    

    目前只是将代码提交到本地git仓库,还需要将代码上传到SAE的git仓库
    
    4.6 上传代码到SAE
    
    git push origin master:1  
    
    最后面的:1 表示目前的版本为1
    
    上面步骤可能会需要输入用户名和密码,用户名是SAE安全管理邮件,密码是安全密码

    接下来就是等代码上传完成了。。。。。。。。。。。。。。。
    
    4.7 验证下吧。
    
    进入到SAE后台->应用信息->代码管理,如下图:


屏幕快照_2015-10-22_11.34_.15_.png


如果有记录的话,说明我们代码上传成功了。



    
5. 验证运行
    
    我们代码的根目录其实是我们应用名的文件夹,不知道发现了没有,我们在前面的步骤复制代码是,没有将整个PhalApi目录全部整个复制到应用名的文件夹下,而是将PhalApi目录下的文件复制过去,相当于在整个项目中,我们将PhalApi的目录替换为我们的应用名了。

    那么问题来了。。首先我们看本地运行的路径
    
    http://localhost/PhalApi/   Public/demo/    根目录是Phalapi
    
    SAE默认的访问路径:
    http://btool.sinaapp.com/   根目录就是我们的应用名btool

    可以得出,我们的访问路径:

    http://btool.sinaapp.com/ +Public/demo/    



屏幕快照_2015-10-22_11.46_.44_.png


出现这个页面,说明我们的部署基本是成功了,但是到这一步还不算,这里访问的是默认的接口,没有涉及到数据库部分,只能说成功了一半,好吧,一半多。。。
    
    我把文件夹Public 修改为了public  因此路径中的public 为小写,大家根据自己的目录确定大小写。

6. 验证使用数据库
    
    先不急着建数据表,先看下项目里面的 config -> dbs.php ,里面有个数组

屏幕快照_2015-10-22_11.51_.43_.png


里面定义了数据表的开始前缀,就是prefix  因此我们的数据表都要遵守这个规则,数据表前面都加上定义的tbl_
        
    然后开启SAE MySQL 服务。打开phpmyadmin 新建一个夹tbl_user的数据表,添加几个字段,id username,password ,id 是必须的,其他随意 ,插入一条数据
    
    再来访问一次,这次的访问需要读取数据库中用户信息,更换链接地址
   
屏幕快照_2015-10-22_12.25_.55_.png


如果不成功,可以根据提示信息修改,主要方向是2个:
    1.数据库的设置,包括,dbs.php里面的配置信息,数据表的名称
    2.路径的问题,如果json数据返回,基本路径是没问题了,重点关注数据库设置的问题
    3.由于禁用了日志功能,可能有些地方的日志代码没注释掉,会提示一些警告,根据提示注释掉即可

    到这一步算是全部成功了,要扩展其他的接口,跟在本地一样,祝大家工作愉快!




 

1 个评论

看完了,写得很详细,赞!
我一直没用过SAE云服务器,所以一直没提供这方面的部署文档,感谢提供填补!

要回复文章请先登录注册