赞
踩
一、搭建项目环境
1.在Ubuntu中安装Docker
更新ubuntu的apt源索引
sudo apt-get update
安装包允许apt通过HTTPS使用仓库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置Docker稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
添加仓库后,更新apt源索引
sudo apt-get update
安装最新版Docker CE(社区版)
sudo apt-get install docker-ce
检查Docker CE是否安装正确
sudo docker run hello-world
出现如下信息,表示安装成功
为了避免每次命令都输入sudo,可以设置用户权限,注意执行后须注销重新登录
sudo usermod -a -G docker $USER
启动docker
sudo service docker start
2.安装Docker-compose
1.进入https://github.com/docker/compose/releases 查看最新版本,当前版本为1.23.1
sudo curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
2.设置权限
sudo chmod +x /usr/local/bin/docker-compose
3.查看是否安装成功
docker-compose --version
如果报 [12147] Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg 应该是包没下载完整,1、2、3步骤再来一遍。
3.下载后台镜像
将镜像放进ubuntu系统中,解压到docker目录下 ,就会产生下面5个文件(长方形中)
cd ~/docker/
4.运行sh脚本,提取镜像文件
bash make_xy.sh XXX 8888 ~/touch_code/bbs ~/logs
XXX就是你的项目名 我的是项目名是grow_score
bash make_xy.sh grow_score 8888 ~/touch_code/bbs ~/logs
就会自动生成图上剩余文件夹
进入你建立的项目,修改yaml文件中的路径
- /home/liugang/touch_code/grow_score:/data/html/grow_score
- /home/liugang/touch_code/xyframework:/data/html/xyframework
- /home/liugang/logs/php-fpm:/data/logs/php-fpm
- /home/liugang/logs/sfpm:/data/logs/sfpm
- /home/liugang/logs/scli:/data/logs/scli
关闭Nginx中的数据加密,在www.conf中添加 gzip off;
打开控制台,执行框架
sudo make run
makefile文件中有项目执行指令
sudo make stop停止项目等等
5.git拉取xy框架和项目空框架
将两个框架内部文件分别对应文件名放置到 ~ 文件夹中的touch_code中
此时会生成如下两图
包名就是项目名要,跟yaml配置一致
1代表版本v1
config是配置文件
service是代码放置的地方
{public functiongetLevel(){return '1';
}
}
GrowScoreService
6.更改ms中网管配置
ifconfig
查看虚拟机ip
{
"addrs": [{
"url": "http://10.10.30.161:8888/",
"env": 0,
"protocol": "json",
"stop": false
}],
"type": "php",
"name": "grow_score"
}
7.前端调用
SoaClient.getSoa(‘grow_score’, 'v1/growScore').getLevel()
grow_score项目名 v1版本号 growScore 代码GrowScoreService getLevel()方法。
网址直接调用 :host:port/v1/Soa/jService?service=xxx&method=xxx&form=xxx
form是soa的参数的base64
soa参数是json数组的格式
比如add(1,2) 参数是[1,2]
PS:注意php文件名大小写要和路径一致
二、连接数据库
1.安装mysql
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
安装成功后可以通过下面的命令测试是否安装成功:
sudo netstat -tap | grep mysql
现在设置mysql允许远程访问,首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉bind-address = 127.0.0.1
保存退出,然后进入mysql服务,执行授权命令:
进入数据库,默认密码123456
mysql -uroot -p
grant all on *.* to root@'%' identified by '你的密码' with grant option;
flush privileges;
然后执行quit命令退出mysql服务,执行如下命令重启mysql:
service mysql restart
这样,我们的数据库就可以被远程连接了。
2.修改php.ini
sudo docker ps
找到docker中运行的php
1d778593e84d = xxxxxxxx
docker exec -it xxxxxxxxxx /bin/bash
cd app/program/php-7.1.8/conf/
修改php.ini中的default.socket
查询default.socket相当于Ctrl+F,按N下一行
/default.socket
pdo_mysql.default.socket =/var/run/mysqld/mysqld.sock
mysqli.default_socket =/var/run/mysqld/mysqld.sock
将扩展打开 去掉这5个前边的分号
保存退出。
在数据库中运行这两个即可连接数据库
$ sudo mysql -u root # I had to use "sudo" since is new installation
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
$ sudo mysql -u root # I had to use "sudo" since is new installation
mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
连接数据库代码:
classMysqlConectService
{public functionconnect(){//$serverName = '10.10.30.161';
// $databaseName = 'test';
// $serverPort = '3306';
// $username = 'root';
// $password = '123456';
//if (class_exists('PDO')) {
// echo "pdo";
// try {
// $conn = new PDO("mysql:host=" . $serverName . ";dbname=" . $databaseName . ";port=" . $serverPort, $username, $password);
// if ($conn->connect_error) {
// return 'error';
// }else{
// return 'success';
// }
// } catch (PDOException $e) {
// echo 'Connection failed: ' . $e->getMessage();
// }
//}
$db =db();$db->tableName = 'levelconfig';$where['level_id'] = 1;return $db->find($where);
}
}
MysqlConectService
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。