我想使用PaaS提供商开发我们的新项目.我将在PHP中开发primary,但是希望该服务也可以提供其他语言(以及可用的附加组件,如MongoDB,Memcached,redis等).我似乎有一些PaaS,如PHPfog(和AppFog),dotCloud,orchestra.io,Red Hat的OpenShift,Pagoda Box等等.
在所有这些中,我认为我最喜欢dotCloud.但想知道PaaS上一些重要参与者之间的任何评论,建议和比较.
你们会推荐什么?
我们正在这里工作的半集中式git存储库.每个开发人员在中央git存储库中都有自己的子树,所以它看起来像这样:
master alice/branch1 alice/branch2 bob/branch1 michael/feature release/1.0 release/1.1
我在树上本地工作topic/feature,对应michael/feature于中央树.
我一直在用
git push origin topic/feature:michael/feature
Run Code Online (Sandbox Code Playgroud)
将我的更改推送到远程树.然而,这很麻烦并且容易出错(例如省略开发者名称,拼错功能名称等).
我正在寻找一种更清洁的方法来做到这一点.例如," git push".我怀疑用修改后的fetch refspec设置一个不同的遥控器会做到这一点,但我不确定如何做到这一点.我也不确定如何修改我当前的分支定义以使用不同的遥控器.
我的当前.git/config看起来像:
[remote "origin"]
url = git://central/git/project
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "topic/feature"]
remote = origin
merge = refs/heads/michael/project
编辑:我也想将它应用于拉/取.但branch.<name>.merge照顾到了吗?
如果我找到了什么,我会继续研究这个并发布在这里,但我希望得到一些其他好的想法.
编辑2:我已经决定保持本地和远程分支名称相同.它似乎是最不起作用的,也是最不容易出现未来问题的.
我正在使用phpFog并一直在部署via git push -f <repo>来覆盖服务器上的现有内容.我的一些部署来自完全不同的回购,因为我正在尝试一些事情.
我发现之前推送的文件在当前推送的仓库中不再存在,在服务器上停留.我可以删除该文件(通过php脚本),但每次推送到服务器都会重新创建该文件 - 即使新推送的repo不包含它.
我学到的经验教训是不要用力推,但是为什么在推送不包含它的回购时会重新创建随机文件?!
这是我所看到的:
编辑:我假设强制更改repo仍然会跟踪旧文件,即使新的repo从未跟踪过它们.我已经修改了我的部署方法,现在克隆phpFog上的内容,git删除所有内容,并在推送之前添加我的新文件. https://github.com/swt83/phpfog-deploy
我正在使用phpfog.com进行托管和github.com进行问题跟踪等.我有两个遥控器设置,一个到phpfog.com,另一个到github.
在phpfog的后端管理员中,您可以定义环境变量.我在那里这样做,并希望在我的wp-config文件中使用它们.
这是我使用的代码:
/** Hardened Salts for use on github.com, phpfog.com, etc.*/
$AUTH_KEY = getenv('AUTH_KEY');
$SECURE_AUTH_KEY = getenv('SECURE_AUTH_KEY');
$LOGGED_IN_KEY = getenv('LOGGED_IN_KEY');
$NONCE_KEY = getenv('NONCE_KEY');
$AUTH_SALT = getenv('AUTH_SALT');
$SECURE_AUTH_SALT = getenv('SECURE_AUTH_SALT');
$LOGGED_IN_SALT = getenv('LOGGED_IN_SALT');
$NONCE_SALT = getenv('NONCE_SALT');
define('AUTH_KEY',$AUTH_KEY);
define('SECURE_AUTH_KEY',$SECURE_AUTH_KEY);
define('LOGGED_IN_KEY',$LOGGED_IN_KEY);
define('NONCE_KEY',$NONCE_KEY);
define('AUTH_SALT',$AUTH_SALT);
define('SECURE_AUTH_SALT',$SECURE_AUTH_SALT);
define('LOGGED_IN_SALT',$LOGGED_IN_SALT);
define('NONCE_SALT',$NONCE_SALT);
/** ------------------------------------=-----*/
Run Code Online (Sandbox Code Playgroud)
必须有一个更清洁的方式这样做......
UPDATE!这是清理代码,感谢zerkms
$dbvalues = array('DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASSWORD');
/** -------------------------------------------------------------*/
foreach ($dbvalues as $dbvalue) {
define($dbvalue, getenv($dbvalue));
}
$saltykeys = array('AUTH_KEY', 'SECURE_AUTH_KEY', 'LOGGED_IN_KEY', 'NONCE_KEY', 'AUTH_SALT', 'SECURE_AUTH_SALT' , 'LOGGED_IN_SALT', 'NONCE_SALT' );
/** -------------------------------------------------------------*/
foreach …Run Code Online (Sandbox Code Playgroud) 如果我的.gitignore中有"供应商"目录,有没有办法设置一个遥控器,无论如何我都会在推送时接收该目录?
我试图通过phpfog云服务托管我的php应用程序,这是我第一次尝试使用任何GIT客户端; 按照PHPfog文档中定义的过程,我完成了创建键并添加它.
现在我想知道如何将我的项目添加到云中,简单来说,我有一个文件夹,其中包含我的所有项目文件.php,图像等.我想要它们在我的域名上?
怎么做?我必须遵循GIThub文档或phpfogs吗?
我已经尝试了很长时间,并且在这一切之间感到困惑,请帮助它.