PHP头条
热点:

Nginx的,PHP5.5和尔康在OpenShift


这似乎是云部署环境都风靡一时这些年 - 从AWS到谷歌的App Engine,Windows Azure中以DigitalOcean,每月更雨后春笋般冒出来。 所有这些环境中,它能够部署您需要的软件是非常重要的。

在本教程中,改编自一步的试验和错误的程序步骤duythien ,并与他满心的祝福,我们将讨论在另一个环境Phaclon的安装步骤: OpenShift 。 该过程是血淋淋的 - OpenShift不会使我们很容易部署定制环境 - 但回报是值得的。

起步

就一个帐户OpenShift 。 它们提供了一个免费的层 ,我们将采取的优势。

由于通常情况下,与云环境,OpenShift有自己的工具了。 按照RHC工具安装程序 。 我选择了“spphalcon”作为命名空间的最后阶段rhc setup步骤。

在https://openshift.redhat.com/app/console/applications选择“创建您的第一个应用程序现在”,然后选择“自己动手” -该选项应该是在屏幕的底部。

给应用程序的名称 - 在这一点上,你会发现你以前在高等法院规则设置中定义的命名空间是体现在你的应用程序的公共URL。

注:在OpenShift“服务器”被称为墨盒。

创建和复制的应用程序

当你点击“创建应用程序”,然后等待几分钟,下一个屏幕会告诉你如何下载和修改代码为您的应用程序的说明。

现在使用这些指令克隆的代码。

一个辅助回购

当克隆完成后,进入该文件夹与cd phalcon和克隆另一个仓库内的第一个:

 git clone https://github.com/duythien/openshift-diy-nginx-php

进入这个新创建的文件夹,并复制.openshift文件夹的父文件夹-包含您以前克隆的主应用程序代码的文件夹。 您可能会被要求覆盖某些文件 - 接受所有覆盖。

 cd openshift-diy-nginx-php cp -R .openshift ../

我们还需要刷新权限,按照对原始指令帮手回购协议 :

 git update-index --chmod=+x -- $(git ls-files .openshift/action_hooks/*)

您可以删除openshift-DIY-nginx的 - PHP的目录下,我们不再需要它了。 我们只需要它.openshift子文件夹。

现在添加修改,提交和推送:

 git add -A git commit -am 'Added .openshift folder' git push

什么被启动后,此步骤称为一个构建过程,和你的DIY应用程序将依次读取的内容被停止.openshift文件夹,并做出相应的反应。 在我们的例子中,它是关于构造一个nginx的服务器环境。 这个构建过程可能需要一段时间,有一些人报告了一个多小时的漫长等待。 这是因为所有我们正在安装的软件正在建立从源代码,而不是通过包管理器。

有因超时在生成过程中也得到了OpenShift断开的报告。 如果发生这种情况,只需进行任意更改一个README文件或一些其他类似的微不足道,提交,并再次推。

当编译完成后,您可以通过创建一个确保一切工作web文件夹中的应用程序的根目录(在本地),和一个index.php文件里面的内容:

 

犯,推,你应该能够在浏览器中打开你的应用程序的URL和看到PHP的信息屏幕。

尔康

现在到了困难的部分,一些铁杆的两轮牛车如下得到尔康启动和运行。

SSH到您的墨盒按照您的应用程序的仪表板,或找出SSH的网址与步骤rhc domain show 。

然后输入app-root/runtime/repo和克隆该文件夹中的cphalcon库中。

 cd app-root/runtime/repo git clone http://github.com/phalcon/cphalcon.git

找到PHP的bin目录的位置。 它通常是在$OPENSHIFT_RUNTIME_DIR/php5/bin 。 尝试CD-ING进去,看看它是否工作。 如果一切正常,进入build先前克隆cphalcon目录。

 cd && cd app-root/runtime/repo/cphalcon/build

打开install有像vi或vim的文本编辑器文件,并替换所有引用phpize与$OPENSHIFT_RUNTIME_DIR/php5/bin/phpize或任何位置,你发现你自己的应用程序,如果不相同,以我的。 该引用的phpize应该在文件的底部。 此外,添加选项--with-php-config=$OPENSHIFT_RUNTIME_DIR/php5/bin/php-config的配置行。 基本上,你应该更换此块:

 #Clean current compilation if [ -f Makefile ]; then make clean phpize --clean fi #Perform the compilation phpize && ./configure --enable-phalcon && make && make install && echo -e "\nThanks for compiling Phalcon!\nBuild succeed: Please restart your web server to complete the installation"

与此

 #Clean current compilation if [ -f Makefile ]; then make clean $OPENSHIFT_RUNTIME_DIR/php5/bin/phpize --clean fi #Perform the compilation $OPENSHIFT_RUNTIME_DIR/php5/bin/phpize && ./configure --enable-phalcon --with-php-config=$OPENSHIFT_RUNTIME_DIR/php5/bin/php-config && make && make install && echo -e "\nThanks for compiling Phalcon!\nBuild succeed: Please restart your web server to complete the installation"

我们在这里做的是确保在phpize从刚安装php5.5是由明确指出,我们要那台运行。 这样一来,cphalcon被建为我们的PHP版本,与我们的PHP配置。

在此之后,只要运行./install 。 须藤不允许在OpenShift墨盒,但你的SSH用户将接近根,你可以得到。

让我们将它添加到php.ini文件现在。

 cd $OPENSHIFT_RUNTIME_DIR vim etc/php5/php.ini

找到在哪里扩展列块。 使用vim的模式取景器:按正斜杠(/),然后键入“扩展名=”和回车键,这将带您到块在下面的截图。 新增“扩展名= phalcon.so”到块的结束,而你在那里,向下滚动远一点,并添加你的时区为好。

我们现在需要重新启动我们的墨盒重新加载这些变化。 为此,您需要在冲压ctl_app restart而SSHed的箱子。

编辑:你可能会这样说像后遇到问题

 "PHP Warning: PHP Startup: Unable to load dynamic library '/path/to/extensions/phalcon.so' - /path/to/extensions/phalcon.so: undefined symbol: output_globals in Unknown on line 0".

要修复它,重新编译尔康以下提供的说明在这里 ,或者换句话说,执行下列操作:

 cd cphalcon/build/64bits make clean phpize --clean /path-to-php/bin/phpize ./configure --with-php-config=/path-to-php/bin/php-config make && make install

感谢阿列克谢Bakulin这个提示!

重新检查你的应用程序的URL,你应该看到尔康在PHP信息屏幕现在。

配置Nginx的

最后一步是配置了Nginx的URL重写,所以我们可以部署一个尔康的应用程序。 我们将部署Phalconphp.com网站,但随时修改这些设置应用到自己的应用程序。

 vim $OPENSHIFT_RUNTIME_DIR/nginx/conf/nginx.conf

寻找与模式取景器服务器模块(模式搜索的是“服务器{”)。 在root下,改变//web部分是//website/public 。 根据index ,把index.php作为第一个选项,而不是最后。 向下滚动了一下,按照Nginx的安装说明下location @rewrites替换

 location @rewrites { rewrite ^(.*)$ /index.php/$1 last; }

 location @rewrites { rewrite ^/(.*)$ /index.php?_url=/$1; }

克隆Phalconphp.com网站进入回购文件夹,当它完成后,再次重新启动墨盒:

 cd && cd app-root/runtime/repo git clone http://github.com/phalcon/website ctl_app restart

访问应用程序的公共URL,瞧,你有一个运行Phalconphp.com克隆的OpenShift。

结论

安装费尔康(或任何其他PHP扩展)在OpenShift显然是既不容易,也不乐趣 - 但看到自己DIY的应用程序只有0.1版本,这个过程势必会变得更加容易。 现在,我希望这介绍的自定义OpenShift的环境勾起了你的胃口够玩你自己的。 打开openshift文件夹,并剖析了行动挂钩 - 还有很多需要学习,如果你管理的自动化,我们刚刚经历了一个钩的过程中,不要让我知道,我会更新与完全学分制的文章。

留下您的反馈在下面的评论!

www.phpzy.comtrue/phpzygh/1365.htmlTechArticleNginx的,PHP5.5和尔康在OpenShift 这似乎是云部署环境都风靡一时这些年 - 从AWS到谷歌的App Engine,Windows Azure中以DigitalOcean,每月更雨后春笋般冒出来。所有这些环境中,它能够部署您需要...

相关文章

相关频道:

PHP之友评论

今天推荐