淘先锋技术网

首页 1 2 3 4 5 6 7

安装docker

直接安装的是ubuntu18.04 自带的没有使用最新的

apt-get update
apt-get install docker.io
# 查看 docker 版本
docker -v
# Docker version 18.09.7, build 2d0083d

配置docker 阿里云镜像加速

打开阿里云 搜索 容器镜像服务 --> 镜像加速器 地址类似:https://xxxx.mirror.aliyuncs.com

在这里插入图片描述

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装 php7.3-fpm

docker pull php:7.3-fpm

#查看 php  镜像
docker images
# REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
# php                 7.3-fpm             5be5d776e10e        2 weeks ago         398MB

# 运行php 容器
 docker run --name php73 -p 9000:9000 -d -v /var/www:/var/www 5be5d776e10e
# 查看 php 容器
# CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
# afc0c45b370e        5be5d776e10e        "docker-php-entrypoi…"   37 seconds ago      Up 36 seconds       0.0.0.0:9000->9000/tcp   php73

安装nginx:1.17.1

# 创建 nginx 配置目录
mkdir -p nginx/conf.d

# 拉取nginx 镜像
docker pull nginx:1.17.1

# 查看 nginx 镜像
docker images
# REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
# nginx               1.17.1              98ebf73aba75        6 months ago        109MB

# 运行nginx容器
docker run --name my_nginx -p 80:80 -d -v /var/www:/var/www  -v /nginx/conf.d:/etc/nginx/conf.d --link php73:php 98ebf73aba75
nginx配置文件

在 /nginx/conf.d 目录下创建 default.conf 里边内容如下

server {
    listen 80;
    listen [::]:80;

    server_name _;
    root /var/www/html;

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }

}

测试

在 /var/www/html 创建 index.php 测试

安装 php 拓展

安装 php-redis 为例

# 进入 php 容器内部
docker exec -it php73 /bin/bash
# root@afc0c45b370e:/var/www/html

# 首先创建并初始化 /usr/src/php/ext 目录
docker-php-source extract
#  参数说明:
# * extract : 创建并初始化 /usr/src/php目录
# * delete : 删除 /usr/src/php目录

# 下载 php redis 拓展源码包
root@517b9c67507a:~# curl -L -o /tmp/reids.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2
root@517b9c67507a:~# tar -xzf reids.tar.gz
root@517b9c67507a:~# ls
phpredis-5.0.2  reids.tar.gz
# 将redis 源码包 移动到 /usr/src/php/ext/ 目录下
root@517b9c67507a:~# mv phpredis-5.0.2 /usr/src/php/ext/phpredis

# 所有PHP扩展源码都存放在路径: /usr/src/php/ext 里面,进入该目录并 ls 查看php拓展
cd /usr/src/php/ext; ls
 
# bcmath      date          fileinfo  hash       ldap      odbc     pdo_dblib     pdo_sqlite  recode      snmp     standard   wddx       zend_test
# bz2         dba           filter    iconv      libxml    opcache  pdo_firebird  pgsql       reflection  soap     sysvmsg    xml        zip
# calendar    dom           ftp       imap       mbstring  openssl  pdo_mysql     phpredis    phar     session sockets  sysvsem    xmlreader  zlib
# com_dotnet  enchant       gd        interbase  mysqli    pcntl    pdo_oci       posix       shmop       sodium   sysvshm    xmlrpc
# ctype       exif          gettext   intl       mysqlnd   pcre     pdo_odbc      pspell      simplexml   spl      tidy       xmlwriter
# curl        ext_skel.php  gmp       json       oci8      pdo      pdo_pgsql     readline    skeleton    sqlite3  tokenizer  xsl

#  安装  phpredis
docker-php-ext-install phpredis
# 检查redis 扩展是否已经安装上  
php -m | grep redis

以上就是在 ubuntu18.04 环境下 安装 nginx:1.17.1 和php:7.3-fpm 的基本操作