阿里云服务器docker 部署nginx+php+mysql遇到的坑

1.先拉取nginx,mysql,php的镜像

我安装的是docker pull mysql   mysql 5.7

2.安装MySQL的容器:

docker run --name mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456-d mysql:5.7

MYSQL_ROOT_PASSWORD指定数据库密码

-p 代表端口映射,格式为  宿主机映射端口:容器运行端口  -符号最好不要复制,手动敲-

3.进入MySQL容器,登陆MySQL

a.    docker exec -it  容器的id/bin/bash  

阿里云服务器docker 部署nginx+php+mysql遇到的坑_第1张图片

b.   mysql -u root -p

输入数据库密码 123456

密码正确链接成功

 

然后 ,容器中,查看mysql的版本

mysql> status;
--------------

2,进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)

授权

1

GRANT ALL ON *.* TO 'root'@'%';

刷新权限

1

flush privileges

 此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则

 

3,更改加密规则

1

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

  

4,更新root用户密码

1

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

刷新权限

1

flush privileges;

在navicat 连接数据库遇到好几坑

4.我的阿里服务器,是轻应用服务器

阿里云服务器docker 部署nginx+php+mysql遇到的坑_第2张图片

阿里云服务器docker 部署nginx+php+mysql遇到的坑_第3张图片

4.1 还有登陆阿里管理平台 ,打开防火墙管理要把mysql 这个开起来

4.2最后一个大坑是,navicat必须是12版本以上的才能ssh才能连。。。可能我的是破解版的缘故,直到我换了最新版本的navicat才可以

 

 

PHP

需要安装php 的运行环境 拉取php的镜像 php-fpm

这里php链接的ip是mysql容器里的ip地址

nginx配置

阿里云服务器docker 部署nginx+php+mysql遇到的坑_第4张图片

我的nginx全部的配置

创建的nginx容器

docker run --name nginx -d -p 80:80 -v /docker/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx

# 使用-v挂载目录,冒号前面部分是主机要挂载文件路径,冒号后面部分是挂载到容器的路径  

# -v /home:/home表示将宿主机的home目录下的所有文件挂载到容器的home目录下   

 location ~.*(js|images|css|png|gif|jpg|mp3|ogg)$ {
    
        root /usr/share/nginx/html;
          
    }

静态资源映射在 /usr/share/nginx/html该目录下 ,这个目录是容器的目录

/docker/www这个目录是宿主机的目录,我们都是在这个目录下上传的文件的,把宿主机的目录映射到容器里去 /usr/share/nginx/html

 

 

完整的nginx配置
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    client_max_body_size 20m;
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;
    access_log off; #关闭访问日志
    charset  utf-8;

  
   
    #tcp_nopush     on;

    #keepalive_timeout  0;


    #开启gzip压缩
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    #gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpg image/jpeg image/gif image/png;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";
    
    
    
    server {
    listen       80;
    server_name  47.88.84.237;
    

    location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        
        
          
    location ~.*(js|images|css|png|gif|jpg|mp3|ogg)$ {
    
        root /usr/share/nginx/html;
        
        
    }
    
       
    location ~ \.php$ {
            
            fastcgi_pass   172.17.0.5:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
                break;
        }

    }
}
 

 

你可能感兴趣的:(docker,nginx,阿里服务器,nginx,阿里服务器,mysql,docker,php)