1.安装并启动mysql(已经安装过的直接运行)
~~~
[root@webserver ~]# docker pull mysql
[root@webserver ~]# docker run -p 3306:3306 --name mysql -itd -e MYSQL_ROOT_PASSWORD=123456 mysql
~~~
2.安装并启动php-fpm(已经安装过的直接运行),挂载/home目录,连接mysql
~~~
[root@webserver ~]# docker pull php:7.2-fpm
[root@webserver ~]# docker run -itd -p 9000:9000 --name myphp --privileged -v /home:/var/www/html --link mysql php:7.2-fpm
~~~
3.安装并启动nginx(已经安装过的直接运行),挂载/home目录,连接php-fpm
~~~
[root@webserver ~]# docker pull nginx
[root@webserver ~]# docker run -itd -p 80:80 --name mynginx --privileged -v /home:/usr/share/nginx/html --link myphp nginx
~~~
4.新建niginx配置文件,内容如下
~~~
[root@webserver ~]# vi default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html/tp/public;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
location ~ \.php$ {
fastcgi_pass myphp:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/tp/public$fastcgi_script_name;
include fastcgi_params;
}
}
~~~
5.拷贝配置文件到nginx镜像,并重启
~~~
[root@webserver ~]# docker cp ./default.conf mynginx:/etc/nginx/conf.d
[root@webserver ~]# docker restart mynginx
~~~
6.修改thinkphp的数据库配置文件如下
~~~
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => 'mysql',
// 数据库名
'database' => 'mydb',
// 用户名
'username' => 'root',
// 密码
'password' => '123456',
// 数据库编码默认采用utf8
'charset' => 'utf8mb4',
~~~
7.上传所有文件到服务器/home/tp目录下,并更改目录权限
~~~
[root@webserver ~]# mkdir /home/tp
[root@webserver ~]# chmod -R 777 /home/tp
~~~