安装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 的基本操作