liuhongyu 发表于 2017-12-6 22:05:12

docker 部署 nginx+php+mysql

  系统:centos7
  使用root账户
  开放80端口
  firewall-cmd --zone=public --add-port=80/tcp --permanent
  安装docker
  yum install docker -y
  安装docker-compose
  yum install epel-release -y
  yum install -y python-pip
  pip install --upgrade pip//更新pip
  pip install -U docker-compose
  部署nginx+php+mysql
  开启docker
  
systemctl start docker
  cd /home
  mkdir www //网站目录
  mkdir conf //配置文件
  mkdir app //下载的应用
  //拉取官方镜像
  docker pull nginx:1.12.0
  docker pull php:5.4-fpm
  docker pull mysql:5.6
  //下载到/home/app
  去php官网下载php5.4.45
  nginx官网下载nginx1.12.0
  phpmyadmin官网下载phpmyadmin找php对应版本
  都下载完并解压完成后,进入php文件
  cp php.ini-development /home/conf/php.ini
  进入nginx文件
  cp conf/nginx.conf /home/conf/nginx.conf
  cd /home/conf
  vi nginx.conf
  location / {
            root   /usr/share/nginx/html;
            indexindex.html index.php index.htm;
      }
  location ~ \.php {//去除$
            root         /var/www/html;
            fastcgi_pass   fpm:9000;
            fastcgi_indexindex.php;
            fastcgi_split_path_info ^(.+\.php)(.*)$;  //nginx添加path_info支持
            fastcgi_param PATH_INFO $fastcgi_path_info;//nginx添加path_info支持
            fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
            include      fastcgi_params;
      }
  cd /home/app
  复制phpmyadmin解压出来的文件到/home/www并改名为phpmyadmin  
  //编写docker-compose
  cd /home
  docker images //查看镜像id
  vi docker-compose.yml
  version: '2'
services:
  php:
     image: php镜像id
     ports:
         - 9000:9000
     volumes:
         - /home/www:/var/www/html
         - /home/conf/php.ini:/usr/local/etc/php/php.ini
  links:
       - mysql
   privileged: true
  nginx:
   image: nginx镜像id
   ports:
       - 80:80
   volumes:
       - /home/www:/usr/share/nginx/html
       - /home/conf/nginx.conf:/etc/nginx/nginx.conf
   links:
       - php:fpm
   privileged: true
  mysql:
   image: mysql镜像id
   ports:
      - 3306:3306
   volumes:
      - /home/data:/var/lib/mysql
   environment:
      - MYSQL_ROOT_PASSWORD=123
   privileged: true
  docker-compose编写完成后
  执行
  docker-compose up -d  //使容器后台运行
  docker exec -it home_mysql_1 bash//进入mysql容器
  mysql -u -root -p
  密码:123
  执行 status
  查看 UNIX socket地址并复制
  执行use mysql
  update user set Host = '%' where User = 'root';
  flush privileges;
  完成后两次ctrl+d
  退出容器
  cd /home/conf
  vi php.ini
  搜索
  mysql.default
  mysqli.default
  pdo_mysql.default
  等号后加上复制出来的UNIX socket地址
  cd /home
  docker-compose restart
  cd www
  vi index.php
  <?php
    phpinfo();
  ?>
  查看php信息
  cd phpmyadmin
  vi config.sample.inc.php

$cfg['Servers'][$i]['host'] = 'mysql';

退出后config.sample.inc.php改名为config.inc.php

从外部访问 http://ip地址/phpmyadmin/index.php
登录mysql成功后即可完成
页: [1]
查看完整版本: docker 部署 nginx+php+mysql