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;
index index.html index.php index.htm;
}
location ~ \.php {//去除$
root /var/www/html;
fastcgi_pass fpm:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$; //nginx添加path_info支持
fastcgi_param PATH_INFO $fastcgi_path_info;//nginx添加path_info支持
fastcgi_param SCRIPT_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成功后即可完成