zoukankan      html  css  js  c++  java
  • Ubuntu运行docker,连接mysql

    一、搭建项目环境

    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.下载后台镜像

    http://git.internal.taqu.cn/dev-tools/docker

    将镜像放进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框架和项目空框架

    项目空框架:http://git.internal.taqu.cn/common/privilege/tree/branch_52week_191224

    xy框架:http://git.internal.taqu.cn/framework/xy

    将两个框架内部文件分别对应文件名放置到 ~ 文件夹中的touch_code中

     

     此时会生成如下两图

     包名就是项目名要,跟yaml配置一致

    1代表版本v1

    config是配置文件

    service是代码放置的地方

    <?php
    
    class GrowScoreService extends BaseService
    {
        public function getLevel(){
            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]

    http://10.10.30.161:8888/v1/Soa/jService?service=growScore&method=getLevel

    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
    

    连接数据库代码:

    <?php
    //连接数据库
    class MysqlConectService
    {
        public function connect(){
    
    // $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
  • 相关阅读:
    「APIO2017」商旅
    【CQOI2017】小Q的表格
    【HNOI2016】树
    【NOI2018模拟】Yja
    测试
    Loj #6073.「2017 山东一轮集训 Day5」距离
    「AHOI / HNOI2017」影魔
    Loj 6068. 「2017 山东一轮集训 Day4」棋盘
    【SDOI2014】向量集
    远程服务器安装nginx
  • 原文地址:https://www.cnblogs.com/LiuOOP/p/12103995.html
Copyright © 2011-2022 走看看