docker 安装php7.2 并配置_docker容器配置php和nginx环境并配置扩展swoole

本文详细介绍了如何在Docker环境下安装PHP7.2,配置PHP-FPM容器,以及如何设置Nginx容器。接着,文章指导读者如何在PHP容器中安装Swoole扩展,包括更新源、安装编译环境、使用pecl安装扩展,并修改php.ini文件。最后,提到了Docker容器的数据交互方式以及如何将容器打包为镜像,强调了容器的隔离性和数据处理的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

menghuiguli@dreamfly:~$ docker version

Client: Docker Engine - Community

Version: 19.03.9

API version: 1.40

Go version: go1.13.10

Git commit: 9d988398e7

Built: Fri May 15 00:25:18 2020

OS/Arch: linux/amd64

Experimental: false

Server: Docker Engine - Community

Engine:

Version: 19.03.9

API version: 1.40 (minimum version 1.12)

Go version: go1.13.10

Git commit: 9d988398e7

Built: Fri May 15 00:23:50 2020

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.2.13

GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429

runc:

Version: 1.0.0-rc10

GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd

docker-init:

Version: 0.18.0

GitCommit: fec368

Codename: bionic

安装php-fpm容器

docker pull bitnami/php-fpm

docker run --name php7-fpm -v ~/nginx/www:/www -d bitnami/php-fpm

-d 后台运行

-v 目录映射 主机的~/nginx/www目录映射到容器的www目录

--name 给容器一个名字

安装nginx容器

docker pull nginx

docker run -p 80:80 --name nginx -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/conf.d:/etc/nginx/conf.d --link php7-fpm:php -d nginx

-p将容器80端口映射到服务器的80端口

配置nginx文件

将配置文件放到服务器的~/nginx/conf/conf.d/ 文件夹中,文件内容如下:

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.html index.htm 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;

fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;

include fastcgi_params;

}

}

fastcgi_pass 这里的php对应的是之前的php7-fpm进程,端口9000是php7-fpm默认进程.

重启nginx容器

docker restart nginx

配置swoole扩展

1.首先进入容器的shell环境

docker exec -it php7-fpm /bin/bash

2.更新源

apt update

3.安装需要的编译环境和文本编辑器

apt install -y gcc g++ autoconf libtool make vim

4.使用pecl安装swoole扩展

pecl install swoole

5.配置php.ini文件

cd /opt/bitnami/php/bin/php

vim php.ini

添加swoole扩展,就是添加

extension=swoole

6.退出

exit

7.重启php7-fpm容器

docker restart php7-fpm

注意事项

由于swoole提供了http服务器,所以我们可以不使用php-fpm,我们可以直接使用php来运行我们的文件index.php文件如下:

error_reporting(E_ALL);

$http = new Swoole\Http\Server("0.0.0.0", 9999);

$http->on('request', function ($request,Swoole\Http\Response $response) {

$response->end("

hello

");

});

$http->start();

需要提到的一点,我们都是通过映射来进行和容器的文件交互的。

当我们对php安装了扩展之后,我们可以把我们的容器进行打包成镜像,这样下次运行的时候,就需要重复安装扩展,这也是容器的一个优点。

docker commit php7-fpm swoole

启动容器的方法

docker run --name swoole -it -p 8888:8888 -v /www:/app -d swoole php index.php

运行上面的语句之前,我们本地服务器需要在/www目录下面存在index.php,就是上面我们提到的那个index.php文件,如果不存在,容器就会启动失败。

查看容器的id,然后可以查询到容器的logs

docker ps -a

docker logs id[xxxxxxxxxxxxxxxxx]

而且我们可以进入容器的shell中查看/app目录中是否有同步的index.php

docker exec -it swoole /bin/bash

cd /app

ls

总结

我们的数据最后都是会放入到容器中执行的,那么如何和容器打交道或者通信是我们需要研究的

其中-v这个是一个同步的方法,还有一个就是通过scp 把文件存入到容器中,不管那种方法,最后容器执行的时候,数据都是在容器中运行的,而不是在本地运行的,这也是容器的好处,就是保证了隔离性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值