资讯专栏INFORMATION COLUMN

【docker】docker 安装配置 nginx+php+composer

adam1q84 / 3376人阅读

摘要:安装安装就不赘述了。现在要在中安装,先拉镜像这个镜像是把和整合到一起,可以看做是,要配合使用。先运行起来表示将容器中的目录映射到宿主环境的目录,此时容器的目录就是我们的网站根目录,这个很关键。

1. 安装php7

安装docker就不赘述了。现在要在docker中安装php7,先拉镜像:

docker pull php:7.1-fpm

这个镜像是把php和php-fpm整合到一起,可以看做是php-fpm,要配合nginx使用。先运行起来:

docker run -p 9000:9000 --name php7 -v /docker/www:/www --privileged=true -d php:7.1-fpm

/docker/www:/www 表示将容器中的www目录映射到宿主环境的/docker/www目录,此时容器的www目录就是我们的网站根目录,这个很关键。之后的配置解析就要解析到这个www目录下

2. 安装nginx1.12
docker pull nginx:1.12

运行之前,我们要创建nginx的配置目录和日志目录

mkdir /docker/nginx/conf.d
mkdir /docker/nginx/logs

然后在conf.d目录下新建default.conf配置文件

server {
    listen       80;
    # 这个www目录是nginx容器中的www目录
    root   /www; 
    server_name  localhost;

    location / {
        index  index.html index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ .php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        #这个www目录是php-fpm容器中的www目录
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name; 
        include        fastcgi_params;
    }
}

最后运行

docker run -p 80:80 --name nginx -v /docker/www:/www -v /docker/nginx/conf.d:/etc/nginx/conf.d -v /docker/nginx/logs:/wwwlogs --link php7:php --privileged=true -d nginx:1.12

注意一点,nginx和php-fpm两个容器需要挂载宿主环境中的同一个目录才能正确解析,即/docker/www目录

1. 安装composer

有时候需要使用composer来安装PHP包,比如laravel,但是php-fpm镜像中并没有composer。所以我们再装一个composer镜像

docker pull composer

运行composer容器和运行php或者nginx容器不同,它不需要后台运行,而是使用命令行交互模式,即不使用-d,使用-it。同时composer是在PHP项目跟目录运行,所以也需要挂载/docker/www目录

docker run -it --name composer -v /docker/www:/app --privileged=true composer <要执行的composer命令>

比如新建laravel项目

docker run -it --name composer -v /docker/www:/app --privileged=true composer composer create-project --prefer-dist laravel/laravel ./ 5.5.*
安装mysql5.6
docker pull mysql:5.6

创建mysql的配置目录,数据目录,日志目录

mkdir /docker/mysql/conf
mkdir /docker/mysql/data
mkdir /docker/mysql/logs

在/docker/mysql/conf目录下新建my.cnf配置文件,如下

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
bind-address   = 0.0.0.0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init_connect="SET collation_connection = utf8_unicode_ci"
init_connect="SET NAMES utf8"
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
#skip-grant-tables 

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

最后运行容器:

docker run -p 3306:3306 --name mysql -v /docker/mysql/conf/my.cnf:/etc/mysql/conf.d/mysql.cnf -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mypass --privileged=true -d mysql:5.6

如果需要远程连接,还需要跑两条sql

use mysql;
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "mypassword";
flush privileges;

完成!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40203.html

相关文章

  • dockerdocker 安装配置 nginx+php+composer

    摘要:安装安装就不赘述了。现在要在中安装,先拉镜像这个镜像是把和整合到一起,可以看做是,要配合使用。先运行起来表示将容器中的目录映射到宿主环境的目录,此时容器的目录就是我们的网站根目录,这个很关键。 1. 安装php7 安装docker就不赘述了。现在要在docker中安装php7,先拉镜像: docker pull php:7.1-fpm 这个镜像是把php和php-fpm整合到一起,可...

    XanaHopper 评论0 收藏0
  • 徒手用 Docker 构建自己的 PHP 开发环境

    摘要:用进行操作为在的工作区域,项目也是挂载在里面,所有我们可以直接在容器里运行。或者进入宿主机目录下用命令注意事项注意挂载路径构建失败时,注意容器内是否报错加速镜像。本文首发在我的博客徒手用构建自己的开发环境 1. 前言 1.1 为什么要用 Docker ? 是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因...

    CoreDump 评论0 收藏0
  • 徒手用 Docker 构建自己的 PHP 开发环境

    摘要:用进行操作为在的工作区域,项目也是挂载在里面,所有我们可以直接在容器里运行。或者进入宿主机目录下用命令注意事项注意挂载路径构建失败时,注意容器内是否报错加速镜像。本文首发在我的博客徒手用构建自己的开发环境 1. 前言 1.1 为什么要用 Docker ? 是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因...

    13651657101 评论0 收藏0
  • web应用集群入门-利用docker在单机搭建web应用集群实现session共享

    摘要:环境要求安装了的主机本文示例环境为准备镜像首先把所有需要用到的镜像拉取下来容器编排是容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器。 环境要求:安装了docker的主机 (本文示例环境为centos7.4) 准备镜像 首先把所有需要用到的镜像拉取下来 # nginx $ docker pull nginx # php & php-fpm $ docker pul...

    ls0609 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<