使用php 接入Spring Cloud微服务

使用php 接入Spring Cloud微服务

微服务很火,实验室要求大部分语言接入微服务,比如:.NET、JAVA、前端、PHP。微服务本来就是JAVA的,作为一个phper,只有想办法接入微服务。
网上可以参考的东西不多,但还是找到了可利用的东西。
先实现php注册到Spring Cloud的注册中心:http://eureka.springcloud.cn/

把php应用部署到openresty + PHP(FPM)

注册工具SpringCloudOpenresty

前提:安装openresty和php 7.0和FPM

使用的系统:ubuntu14.04

安装openresty

源码包下载:http://openresty.org/cn/download.html
找个目录放源码:cd /root

wegt https://openresty.org/download/openresty-1.13.6.2.tar.gz

相关依赖包的安装

apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential

解压源码,安装openresty

tar -xzvf openresty-1.13.6.2.tar.gz
cd openresty-1.13.6.2
./configure
make && make install

验证安装成功

curl 127.0.0.1

返回一段html代码

安装php7.0

前期准备

# 更新 apt-get
sudo apt-get update

# 解决有可能存在的语言问题
sudo apt-get install -y language-pack-en-base

安装完成之后,运行:

locale-gen en_US.UTF-8

安装Php7.0,本教程采用ppa方式安装php7.0,

# 添加php的仓库
sudo apt-get install software-properties-common
#> 中途按下回车
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

安装完成之后,运行sudo apt-get update更新安装包,把刚才添加的包拉取下来。 运行apt-cache search php7.0搜索php7.0开头的包检验是否安装成功,输出如下:

安装php7.0:

sudo apt-get -y install php7.0

安装成功后运行php -v查看是否安装成功,成功的话会输出类似如下信息:

安装 fpm
sudo apt-get install php7.0-fpm

使用serviceRegistry工具

下载serviceRegistry到root目录下
https://github.com/tangaiyun/SpringCloudOpenrestyPHP
对于Spring cloud:
1.将serviceRegistry/consul/lualib中的所有文件(包含目录)复制到你的openresty lualib目录中/usr/local/openresty/lualib

cp -r /root/serviceRegistry/eureka/lualib/* /usr/local/openresty/lualib

2.更改你的nginx.conf文件和serviceRegistry/consul/conf/nginx.conf一样,请注意块

cp -r /root/serviceRegistry/eureka/conf/* /usr/local/openresty/nginx/conf
init_worker_by_lua_block {
        if 0 == ngx.worker.id() then 
            local workservice = require 'eureka.workerservice'
            local filePath = '/usr/local/openresty/nginx/conf/serviceInstance.json'
            eurekaHost = '10.100.23.69'
            eurekaPort = 8761
        local file1 = io.input(filePath)

...

可将“filePath”更改为您自己的服务配置位置。
eurekaHost填写注册中心ip或者域名。比如Spring Cloud的注册中心:eureka.springcloud.cn
eurekaPort填写注册中心的端口。比如Spring Cloud的注册中心端口:80
3.将serviceInstance.json更改为你的环境,例如:

/usr/local/openresty/nginx/conf/serviceInstance.json

中的ip改为自己环境的ip,比如192.168.211.22
4.将serviceRegistry/eureka/html中的文件复制到你的Web根目录。

cp -r /root/serviceRegistry/eureka/html/* /usr/local/openresty/nginx/html

命令

Openresty nginx服务命令:

/usr/local/openresty/nginx/sbin/nginx #启动
/usr/local/openresty/nginx/sbin/nginx -s stop #停止
/usr/local/openresty/nginx/sbin/nginx -s reload #重启

启动php7.0-fpm服务

service php7.0-fpm start

开启openresty以及php7.0-fpm,可以发现在注册中心已经注册成功。