新版openshift空间支持PHP/MySQL

刚刚博客访问除了一些问题,运营商似乎被人攻击了,不过还好马上就恢复了,但是不知道之后是否还会出现问题.刚刚测试了一下最新的openshiftV3,近期openshift也是正式的开放注册了新版本,依然提供了1G内存1G储存和两个核心的社区支持版本,可以运行2个服务,也就是说刚刚好可以跑PHP+MySQL.那么这个免费版本也是基本上可以运行一个个人博客或者其他服务了.新版的openshift还支持了Docker容器,但是和其他的CaaS容器服务不一样,openshift提供的Docker服务我仍需要研究一段时间.

不过使用openshift提供的PHP环境我们已经足矣建立一个个人博客/论坛甚至其他的网站了,这里依然要说的是openshift是个好空间,请勿过分滥用,由于新版的openshift没有开放SSH权限,但是依然支持多种语言,所以难免会变成GoProxy/GOGOTunnel遍地这种情况,目前openshift的域名和IP都可以正常访问,不过,也止步于目前.

先说用openshift建立个人博客吧,我们需要准备一些必要的工具:
1.先注册一个Github的账号(或者其他的git仓库也可以..)[注册git仓库是为了方便的实现代码的同步,从git仓库可以即时的将代码部署到openshift而无需重启,非常方便.]
2.下载并安装oc命令行[使用oc命令行来上传代码,新建容器,推送镜像以及创建数据库]
※请注意,oc命令行是必选项,Github是可选项,方便同步代码的!

如果需要使用Github代码同步,请先准备一个新的项目,然后Fork代码或者PUSH代码.然后登录到openshift后台,新建项目:

选择开发语言,我们使用PHP,openshiftV3还支持Java/JavaScript/.NET/Perl/Python/Ruby

openshift自带的PHP环境支持5.6和7.0,同时还支持2个知名框架,在这里我们直接使用空白的PHP环境,方便我们部署已经开发好的PHP程序,请不要选择框架除非你会使用该框架,因为框架的目录结构与空白PHP环境不同,若你选择了框架环境,本文后面的操作可能无法执行!


填写好项目名称以及Git仓库地址(必须填一个,你可以随便找个PHP项目填上,建议就填你自己创建的)Git链接是这个:

点击显示高级选项:

在这里配置域名信息,同样也支持SSL.这步可以再创建应用之后进行.


设置负载平衡器,和旧版的负载均衡器一样..需要的话就用

设置一下应用内存,不要超过512M,超了一会没法运行MySQL容器了

openshift自动同步Github代码,需要设置Github项目设置中的webhooks.将api链接复制到Github中的webhooks中,选择json模式,添加即可,添加后代码仓库更新代码就会自动同步到openshift项目中了.但是要注意的是,Github是开源的代码仓库,所有源代码可读,也就是说,不要把敏感信息写到Github中,我的意思就是别把配置文件直接放到Github中…



设置完这些项目之后,过几分钟就可以在openshift后台中看见我们的项目了.

点击域名就可以进入并看到熟悉的WordPress安装界面了(上传/下载/修改代码在后面).

※接下来的操作需要oc命令行,我演示时使用的是Linux系统,在Windows环境下,命令一样,只不过需要吧oc.exe所在目录扔到Windows的PATH系统变量中
openshift支持MySQL5.5,5.6,5.7,根据需求选择,我这里使用5.5演示,先使用

oc login https://api.starter-us-east-1.openshift.com

登录到openshift

用户名是注册邮箱,密码是密码.

接下来使用命令行创建数据库

oc new-app \
    -e MYSQL_USER=<username> \
    -e MYSQL_PASSWORD=<password> \
    -e MYSQL_DATABASE=<database_name> \
    openshift/mysql-5<5>-centos7

需要修改<>中的参数.

回到openshift后台可以看到MySQL已经跑起来了.

使用你自己设置的数据库密码和用户名以及数据库去安装wp

数据库IP可以再控制台查看,也可以用

oc status

命令查看



接下来的问题是文件管理,除了使用Github自动更新代码,openshift不提供SSH和SFTP用于管理文件,除了使用OC命令行别无他法.
使用oc命令行进行文件管理
查询一下已经存在pod(就是服务容器):

oc get pods


有两个正在运行的Runing的,我们需要修改web服务对于的pod.
先使用如下命令来获取服务器上的代码(远端同步到本地)

oc rsync worlpress-1-c4zqc: <~/app>

<>中的是你本地对应的路径
接下来你在本地修改你的代码和文件,添加文件等.修改完毕后将原来的命令反过来同步到远端

oc rsync <~/app/> worlpress-1-c4zqc:

※请注意,若您在创建项目时使用了Git仓库,则该命令不会生效,您需要设置POD属性不在同步Git仓库才能上传!请按如下方式修改:



上面的选项勾掉.
这样修改之后,就可以使用命令推送代码,能修改代码自然也就可以修改WP语言,甚至直接换个程序啥的..
openshiftV3和旧版一样提供了功能强大的shell功能,方便你进行一些操作,不过可惜的是,新版的shell操作只能在后台pods选项中的Terminal操作或使用oc命令行

oc命令行使用进入shell

oc rsh <pod name>

目前发现的问题:
1.使用Git同步的代码存在文件权限问题(无法自动更新,上传文件,下载插件等)
解决:删除全部代码,在本地准备一份完全一样,但是文件权限正确的文件是用命令行推送(shell改不了权限).
2.域名绑定存在问题

以上便是openshiftV3 PHP环境的简单教程,如果在使用中遇到问题,欢迎留言!
测试站:http://worlpress-dev-project.1d35.starter-us-east-1.openshiftapps.com
探针:http://worlpress-dev-project.1d35.starter-us-east-1.openshiftapps.com/yhtz.php

图片版权:Dreamer@rimuu PID=62796428

坤哥

博主Kunger,现在是一名PHP/RN开发者。

9 Comments

  • 可以转载不?写得非常不错。

  • Your project resources sleep after 30 minutes of inactivity, and must sleep 18 hours in a 72 hour period
    要是跑个服务还得上两个账户 做高级别的HA。这不搞笑么。
    不如Bluemix的container。宁可交信用卡了。
    除非以后有交信用卡给几个免费的always online的container还有点玩的价值。
    而且我真的看不出 为什么要在Docker+Kubernetes上跑一个Openshift。专用的命令行不支持Docker的命令也是硬伤。没意思。

  • 重启pods后mysql数据不保存。更新代码还得需要2个pods,免费版只有2个,更新时还得关闭mysql。

  • 用git在第1次build就失败。。。error: build error: Failed to push image: unauthorized: authentication required 难道现在改了啥?按官方例子弄也是这个错。。。。。

  • 文中命令我用着不对?MySQL:oc new-app -e MYSQL_USER={***} -e MYSQL_PASSWORD={***} -e MYSQL_DATABASE={***} mysql:5.5

  • […] 文章出自:坤哥 由免费资源部落 编辑 。本站文章除注明出处外,皆为作者原创文 […]

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>