在 SAE 上部署 ThinkPHP 5.0 RC4

缘起

SAE 和其他的平台有些不同,不能在服务器上运行 Composer 来安装各种包,必须把源码都提交上去。一般的做法,可能是直接把源码的所有文件复制到目录中,添加到版本库。不过,这样就失去了与上游代码的同步的优势。还好 git 提供了另一个功能叫 subtree,不但提供了版本追踪的功能,让代码可以一直和上游同步,同时源码文件还能提交到当前的仓库中。

过程

首先,当然是要安装 git 的 subtree 命令。这个命令虽然随 git 一起安装了,但默认并没有启用。每个平台的安装方法有所不同,请自行搜索安装。

第二步,将 think 和 framework 添加到远程仓库:

1 git remote add -f think https://github.com/top-think/think
2 git remote add -f framework https://github.com/top-think/framework

这样,两个 repo 就加到本地,并且 fetch 下来了。下面创建一个空的项目,并用git 初始化。记得至少提交一次。

1 mkdir demo
2 cd demo
3 git init
4 touch README.md
5 git add .
6 git commit -am "First commit."

重点来了,用 subtree 将 repo 绑定到目录里。

git subtree add --prefix tp5 think master --squash
git subtree add --prefix tp5/thinkphp framework master --squash

上面这是关键步骤。完成之后,基本的 ThinkPHP 5 框架就搞好了。不过,默认的 ThinkPHP 5 需要写入到本地文件,这在 SAE 上是不允许的。还好 ThinkPHP 团队提供了 SAE 的扩展:https://github.com/top-think/think-sae。这里略微的不够完美。默认的这个包是通过 composer 提供的,可我们这里不能使用 composer 来安装。在研究了一下 ThinkPHP 5 的 autoload 机制以后,我发现他提供了一个 PSR-4 的加载机制。所以需要把 SAE 扩展的 src 目录下三个 PHP 文件复制到 tp5/thinkphp/library/think/sae 下。这里 sae 这个目录是不存在的,需要自己创建。因为我没有深入阅读 ThinkPHP 5 的源码,所以没有找到怎么配置 PSR-4 的加载路径的方式。所以,只有这三个文件没法和上游同步。SAE 扩展需要一些配置,请参考扩展的首页。不过为了让ThinkPHP在非SAE环境中也能运行,需要对配置文件进行一些设置。首先是在 public/index.php 里定义一个常量来标识是不是在SAE环境中:

1 define("IN_SAE", defined("SAE_MYSQL_USER"));

然后在配置文件里,可以这样:

1 ‘log‘=>[
2     ‘type‘ => IN_SAE ? ‘\think\sae\Log‘ : ‘File‘,
3 ]

类似这样,讲每个配置区分为本地配置和SAE环境配置。

然后,按照 SAE 的说明,将代码推送到 SAE 上就可以了。

更新上游代码:

git fetch think master
git subtree pull --prefix tp5 think master --squash
git fetch framework master
git subtree pull --prefix tp5/thinkphp framekwork master --squash

如此,便可以愉快的在 SAE 上玩耍 ThinkPHP 5 了。

时间: 2024-11-05 17:28:10

在 SAE 上部署 ThinkPHP 5.0 RC4的相关文章

关于在BAE上部署ThinkPHP框架的问题

现在有点小兴奋,因为在在BAE上部署ThinkPHP框架的问题快折腾一天了,午觉都没睡,不过没白整总算有点结果.不扯淡了,直入正题吧. 之前熟悉ThinkPHP框架,想在BAE上用ThinkPHP做点东西,部署了一天的环境了总结一下把: 一:首先你得有百度帐号吧,别着急先登上.然后进入快速创建应用如下图所示 二.创建应用的具体过程就不多说了吧不是今天的重点,然后ThinkPHP官网上去下一个云引擎版本链接如下:http://www.thinkphp.cn/down.html,我是用的ThinkP

在SAE上部署ThinkOX社交框架

> 鉴于本次RC版对SAE做了一系列的兼容,且在SAE上部署还是与OT有略微不同的,所以整理了一下具体的部署方法. 1.下载网站安装包:here 2.在本地安装ThinkOX 3.安装完毕后,将所安装好的网站数据库导出备用 4.确保你的SAE开启了一下四个服务,必须全部开启,少一个都不行 5.mysql开启后,手动导入第三步得到的[安装后导出的数据库] 6.新建一个uploads的storage domain 7.开启kvdb 8.开启memcache,大小建议30MB以上 9.将安装后的所有代

在新浪SAE上部署PHP项目记录

新浪SAE: http://sae.sina.com.cn 部署步骤: 1.需先注册用户.2.进入用户管理后台--添加应用--填入相关的域名,项目名称,项目描述等. 3.在本地电脑上,命名好与sae上所填的项目名称一致,数据库名称也一致,然后在项目文件的config.php: 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'test0527', // 数据库名,需与项目名称一致

百度BAE云应用引擎上部署安装phpwind9.0

思路:先在本地安装phpwind9.0,然后修改phpwind压缩包的配置文件,最后通过SNV上传BAE云平台上发布 第一步:下载comsentEXP:地址:http://download.comsenz.com/ComsenzEXP/x2.5/ 第二步:按照提示一步一步安装comsentEXP,中间要记住安装包安装到哪个盘了(安装过程中没有输入账号密码等操作)安装成功后会自动弹出这个页面http://127.0.0.1/welcome.php建议放到收藏夹里,以后忘了密码或者以后使用方便一些.

百度BAE3.0云应用引擎上部署安装WordPress-4.0.1-zh_CN

思路:下载WordPress安装包,解压到本地BAE应用目录中,通过SVN上传并发布,然后访问,配置完就ok了 下载WordPress安装包地址:可以访问360云盘连接http://yunpan.cn/cfShTBNEwm52W  提取码 28ee,也可以登录官方http://cn.wordpress.org/ 第一步.登录百度BAE云应用,创建工程,部署php-web应用,创建mysql扩展服务,复制svn地址,创建本地应用目录. 第二步.解压WordPress压缩包到本地应用目录里,然后通过

部署SMB 3.0共享文件夹

SMB 3.0在windows server 2012中是一个非常重要的新特性,未来我们在生产环境字中我们将看到非常多的SMB3.0的应用,它是一个低成本高性能的文件与存储解决方案.本文主要介绍step-by-step构建SMB 共享文件夹 .本文所涉及的环境为两台宿主机Hyper1和Hyper2,一台域控DC.在DC上部署SMB 3.0共享文件夹. 内容 详细步骤 1. 打开'服务器管理器' 1) 使用域管理员帐户contoso\administrator登录虚拟机域控制器(DC),显示'桌面

从Python爬虫到SAE云和微信公众号:二、新浪SAE上搭建微信服务

目的:用PHP在SAE上搭建一个微信公众号的服务器. 1.申请一个SAE云账号 SAE申请地址:http://sae.sina.com.cn/  可以使用微博账号登陆,SAE是新浪的云服务,时间也比较长了,功能比较多. 特点:免费使用,对于学习者而言已经够用了,长时间用充点云豆也花不了多少钱(最低每天10云豆消费),几十块钱(1元=100云豆)玩一年还是可以的. AWS:如果使用aws免费的空间,很容易用超免费额度,而且用超了额度不会停止,而是从信用卡扣费,以美元计价价格对于学习者而言非常昂贵!

解决部署到bae或sae上的代码,中文水印为方块乱码问题

直接在应用里放你需要的字体然后自己引用(验证通过) File file = new java.io.File(PATHImageURL + "font/SIMHEI.TTF"); java.io.FileInputStream fi = new java.io.FileInputStream(file); java.io.BufferedInputStream fb = new java.io.BufferedInputStream(fi); Font nf = Font.create

MVC4.0网站发布和部署到IIS7.0上的方法

最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不在本次记录之列,主要记录网站发布和iis的部署 使用的版本如下图所示: iis为7.0: vs2010,.net framework 为4.0.30310 ,安装mvc4需要升级vs2010到vs2010 sp1 版本,见图示: mvc4: 为了测试需要,在项目ZPG.SpecialSite中创建控