SAE快速之旅

作者:dawncold 发布时间:August 9, 2011 分类:技术

GoogleAppEngine基本在国内没什么前途了,主要原因大家很清楚,但也算是给我们开了一个好头,至少我们已经能够体验到云的魅力所在了,通过现有为数不多的国内云计算服务。sina的测试了许久,相信比较成熟,但我依然钟情于Python,PHP也只是开发过几个小网站,经验有限。写点SAE入门教程吧!

0。注册SAE账号:

登陆http://sae.sina.com.cn注册,或者点我的邀请链接,赚点邀请费用而已:http://sae.sina.com.cn/activity/invite/23335/weibo

1。创建一个应用:(点击最上面的应用Application即可出现如下页面)

Screen Shot 2011-08-09 at 下午4.25.38.png

点击创建新应用(0/10),看来一个账号只能创建10个。

Screen Shot 2011-08-09 at 下午4.26.20.png

填入相应的信息后点击“创建应用”

Screen Shot 2011-08-09 at 下午4.26.29.png

此时有个安全认证,填写刚刚的登陆密码即可。

Screen Shot 2011-08-09 at 下午4.26.40.png

看,新的应用已经创建好了,点击应用名称即可查看详情:

Screen Shot 2011-08-09 at 下午4.27.15.png

点击左侧的“代码管理”即可看到我们的SVN部署地址。通过查看sina的文档得知,SVN的部署账号和密码分别是SAE安全邮箱和SAE安全密码。这些信息点击页面右上角的“XX的账号”即可查看。

2。准备一个非常简单的PHP文件,内容如下,保存成index.php即可:


<?php echo 'Hello,PHP'; ?>

3。SVN部署文件:

我们要不要用一种高级的方式来访问svn呢——Terminal(命令行):

首先我们找一个干净的目录来存放我们建立的project:


cd ~/Documents
mkdir Projects
cd Projects
svn checkout https://svn.sinaapp.com/demoproject/
验证“https://svn.sinaapp.com:443”的服务器证书时出错: 
 - 此证书并不是由信任的权威机权颁发。请使用此指纹手工验证其有效性!
证书信息: 
 - 主机名称: *.sinaapp.com
 - 有效时间: 自 Sat, 31 Jul 2010 15:22:26 GMT 至 Fri, 02 Aug 2013 19:37:39 GMT
 - 发行者: Equifax Secure Certificate Authority, Equifax, US
 - 指纹: 0c:7a:2c:17:1f:ea:57:19:65:d3:0f:d3:9c:a8:cb:85:af:02:72:e7
(R)拒绝,(t)暂时接受,或(p)永远接受?t
认证领域: <https://svn.sinaapp.com:443> SAE User Auth for SVN
“dawncold”的密码: 
认证领域: <https://svn.sinaapp.com:443> SAE User Auth for SVN
用户名: loooseleaves@gmail.com
“loooseleaves@gmail.com”的密码: 
取出版本 0。

总之按照用户名写安全邮箱,密码写安全密码的方式写即可。这样就得到了第一个版本——0号版本。

我们进入这个目录看看有什么:


cd demoproject
ls
ls -al

drwxr-xr-x   4 dawncold  staff  136  8  9 16:46 .
drwxr-xr-x@ 21 dawncold  staff  714  8  9 16:40 ..
drwxr-xr-x   8 dawncold  staff  272  8  9 16:40 .svn

用ls查看是什么都没有的,那么我们用ls -al查看,看到了隐藏的svn目录,这里存着svn的相关配置信息。我们用vi来写刚刚的那个index.php吧:

一般是vi index.php,然后输入刚刚的代码,再按Esc,输入“冒号”,再输入“wq!”(注意有个感叹号),回车。

下面把文件添加到svn:(有一个错误的演示)


svn add index.php

再提交(commit)到服务器:


svn commit -m 'add index.php for show a demo'

但我遇到了错误,返回的信息告诉我不能提交文件进入版本库,查看sian的文档才知道这个版本库只能存放版本目录,i就是我需要再建立一个目录,而且名字是数字,表示这是几号版本,文件可以放入那些目录中。那就新建一个1号版本吧:


dawncold@tianzhenmatoMacBook-Pro demoproject$ mkdir 1
dawncold@tianzhenmatoMacBook-Pro demoproject$ mv index.php 1/
dawncold@tianzhenmatoMacBook-Pro demoproject$ svn add 1/
A         1
A         1/index.php
dawncold@tianzhenmatoMacBook-Pro demoproject$ svn commit -m 'add ver_1 and index file index.php'
svn: 提交失败(细节如下): 
svn: 丢失了预定增加的“/Users/dawncold/Documents/Project/demoproject/index.php”
dawncold@tianzhenmatoMacBook-Pro demoproject$ ls
1
dawncold@tianzhenmatoMacBook-Pro demoproject$ svn add *
svn:  警告: “1”已纳入版本控制
dawncold@tianzhenmatoMacBook-Pro demoproject$ cd 1/
dawncold@tianzhenmatoMacBook-Pro 1$ ls
index.php
dawncold@tianzhenmatoMacBook-Pro 1$ svn add *
svn:  警告: “index.php”已纳入版本控制
dawncold@tianzhenmatoMacBook-Pro 1$ svn commit
svn: 提交失败(细节如下): 
svn: 无法使用外部编辑器获得日志信息;考虑设置环境变量 $SVN_EDITOR,或者使用 --message (-m) 或 --file (-F) 选项
svn: 没有设置 SVN_EDITOR,VISUAL 或 EDITOR 环境变量,运行时的配置参数中也没有 “editor-cmd” 选项
dawncold@tianzhenmatoMacBook-Pro 1$ svn commit -m 'init'
验证“https://svn.sinaapp.com:443”的服务器证书时出错: 
 - 此证书并不是由信任的权威机权颁发。请使用此指纹手工验证其有效性!
证书信息: 
 - 主机名称: *.sinaapp.com
 - 有效时间: 自 Sat, 31 Jul 2010 15:22:26 GMT 至 Fri, 02 Aug 2013 19:37:39 GMT
 - 发行者: Equifax Secure Certificate Authority, Equifax, US
 - 指纹: 0c:7a:2c:17:1f:ea:57:19:65:d3:0f:d3:9c:a8:cb:85:af:02:72:e7
(R)拒绝,(t)暂时接受,或(p)永远接受?t
增加           1
增加           1/index.php
传输文件数据.
提交后的版本为 1。

4。查看效果:

部署完成后就能查看效果了,由于我们只有一个版本,这就是默认版本了,查看地址为:http://demoproject.sinaapp.com/

 

总结一下,这是SAE的快速之旅,代码的部署方式使用的SVN命令行,你也许不喜欢这样,喜欢GUI的SVN部署方式,这当然也没有问题,sina的文档还是比较全面的。刚刚也看到了helloworld这样的例子,看来我白写了呢。希望等SAE出现Python的版本后我再去体验!

最好在include_path中加上根

作者:dawncold 发布时间:July 9, 2011 分类:技术

刚刚用了下typecho博客插件——友情链接来添加一个友情链接,但发现很多php文件找不到了,很奇怪,以前是可以的,看到warning中的信息,有个include_path的相关东西,看看里面提到的路径是不是有需要的文件,结果没有,而在其中路径的下一级目录下有,这就怪了。

Google说最好把include_path写成"./"。是不是这样就是自动便利所有的内容了?我猜是的!当前的include_path中又pear的路径,我就先不删除了,linux系统下用冒号分隔各个路径,在前面加上一个点即可。

重启php,再次访问,恢复正常!

安装PEAR

作者:dawncold 发布时间:June 1, 2011 分类:技术

在服务器上找了好久也没看到pear包的存在,于是下载重装。


wget http://pear.php.net/go-pear.phar 
php ./go-pear.phar 

./pear install XXXX(XXXX就是要新加入的扩展库名称)

根据提示修改一些参数即可,其中比较重要的是最后的include_path这个参数,要确保这里面包含了pear的目录,否则用pear安装上的扩展就不好运行了,比如我的PhpDocumentor就是如此,好在最后加入到了path中,phpdocumentor就能用了。

PHP中的Get注意一则

作者:dawncold 发布时间:May 18, 2011 分类:技术

用一个页面接收Get过来的参数时要注意这点:如果接受了0这个参数,一定要确保是在$_GET前面加了强制转换为int的标志,否则如果是0,PHP可能会当成是假,没有任何值被保存到变量中:)

debug是个浪费时间的活儿

作者:dawncold 发布时间:May 12, 2011 分类:技术

今晚为了实现一个有些漂亮的界面交互,我展开了和SESSION的战斗,明明同样使用的其他方法都能正常工作,偏偏这个就是不能了,这让我很奇怪,调试了很久都没有解决。网上搜索了很多内容也都看不到希望,其中一个朋友提到,这种问题很难解决,可能是对SESSION的机制不太了解吧,我也懒了,不去深入分析,好在丢失了这个好看的界面也不影响使用,我就等等吧,希望明天能够自动解决:)