服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器知识 - docker 编辑Dockerfile 添加php7.2 acpu的问题

docker 编辑Dockerfile 添加php7.2 acpu的问题

2022-11-08 16:21可以吧可以吧 服务器知识

这篇文章主要介绍了docker 编辑Dockerfile 添加php7.2 acpu问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

docker 编辑Dockerfile 添加php7.2 acpu

直接编辑Dockerfile

?
1
2
3
4
5
6
7
ARG INSTALL_APCU=false
RUN if [ ${INSTALL_APCU} = true ]; then \
    # Install Php apcu Extension
    apk add apcu \
    && pecl install https://pecl.php.net/get/apcu-5.1.13.tgz apcu.tgz \
    && docker-php-ext-enable apcu \
;fi

执行

?
1
docker-compose up --build web

等待安装即可

需要安装其他扩展,自己去pecl上面查找对应的php版本的包安装即可

地址:https://pecl.php.net/package/APCu

Dockerfile基于镜像php:7.2-fpm构建自定义php7.2镜像

构建可以ssh连接、有基本命令、并且有zip pdo pdo_mysql curl redis 等扩展的php7.2镜像

  • 以下代码需要写在Dockerfile文件中,并且已安装docker命令
  • 在Dockerfile所在目录下,执行构建镜像命令即可开始构建:docker build -t hengda/php7.2-fpm:v1 .

docker-php-ext 方式安装

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
FROM php:7.2-fpm
RUN apt-get update \
    #cp -r /etc/apt/sources.list /etc/apt/sources.list.bak \
    #修改软件源
    #
    #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" > /etc/apt/sources.list \
    #&& echo "deb http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \
    #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy main non-free contrib" >> /etc/apt/sources.list \
    #&& echo "deb-src http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib" >> /etc/apt/sources.list \
    #
    #&& apt-get update \
    #切换目录
    && cd /tmp \
    #安装sudo
    && apt-get install sudo -y \
    #安装vim文本编辑器
    && apt-get install vim -y \
    #安装wget下载工具
    && apt-get install wget -y \
    #安装网络管理工具
    && apt-get install net-tools -y \
    #安装ping
    && apt-get install iputils-ping -y \
    #安装telnet
    && apt-get install telnet -y \
    #安装进程管理命令ps, top, vmstat, w, kill, free, slabtop, and skill
    && apt-get install procps -y \
    #安装C/C++编译包,该软件包,编译c/c++所需要的软件包也都会被安装。
    #该包包含gcc,g++,make等`
    && apt-get install build-essential -y \
    #安装zip依赖 zlib
    && apt-get install zlib1g-dev -y \
    #安装zip
    && bash -c "apt-get install unzip -y;" \
    #安装openssh-server  即sshd
    && apt install -y openssh-server -y \
    #给root用户设置初始密码123456
    && echo "root:123456" | chpasswd \
    #修改配置项 PermitRootLogin
        #&& sed 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp \
    #&& cat /etc/ssh/sshd_config.tmp > /etc/ssh/sshd_config \
    #修改配置项 UsePAM
        #&& sed 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp \
    #&& cat /etc/ssh/sshd_config.tmp > /etc/ssh/sshd_config \
    #同时修改配置项PermitRootLogin 和UsePAM
    #&& sed 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp \
    #&& sed 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config.tmp > /etc/ssh/sshd_config \
    && sed -i 's/#PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
    && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
    && sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config \
    ################################
    #
    # 用docker-php-ext-install 命令安装php扩展(安装/usr/src/php/ext/目录下的扩展,不存在的可以下载扩展安装包放入该目录,然后再执行/usr/local/bin/docker-php-ext-install xxx 安装)
    #
    # curl扩展需要以下扩展包
    && apt-get install libcurl4-openssl-dev -y \
    #
    # bz2扩展(bzip2)需要以下扩展包,安装 bzip2 bzip2-devel 否则下面的docker-php-ext-install 安装bz2扩展会报错: configure: error: Please reinstall the BZip2 distribution
    && apt-get install bzip2 -y \
    && apt-get install libbz2-dev -y \
    #
    # redis扩展没有离线包,需要先下载解压移动到/usr/src/php/ext/目录下
    && cd /tmp \
    && curl -L -o phpredis-5.0.2.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2 \
    && tar -xzvf phpredis-5.0.2.tar.gz \
    && rm -f phpredis-5.0.2.tar.gz \
    #
    #解压后移动到/usr/src/php/ext目录下
    && mkdir -p /usr/src/php/ext/ \
    && mv phpredis-5.0.2 /usr/src/php/ext/redis \
    #
    # 开始安装php这些php扩展
    && /usr/local/bin/docker-php-ext-install zip pdo pdo_mysql curl redis \
    ################################
    # 扩展所在目录:
    #Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
    # php的扩展目录在 /usr/local/lib/php/extensions/no-debug-non-zts-20170718
    #配置
    #cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
    #vim /usr/local/etc/php/php.ini
    #然后添加配置项extension=zip.so即可
    ################################
    #安装composer命令
    #下载composer.phar
    #&& php -r "readfile('https://getcomposer.org/installer');" | php \
    #给composer.phar赋可执行权限
    #将composer.phar复制到/bin/目录下并重命名为composer
    #&& mv composer.phar /bin/composer \
    #修改权限,否则执行会报错
    #&& chmod -R 777 /bin/composer \
    #查看composer版本
    #composer -v
    #修改composer镜像源地址为国内地址
    #&& composer config -g repo.packagist composer https://packagist.phpcomposer.com \
    ################################
    #composer安装laravel
    #composer global require laravel/installer
    && echo "安装完毕!" \

pecl方式安装

以上扩展通过pecl方式安装:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
##php-zip####################################################
# 安 装 php 扩展 php-zip(zip)
# 切换目录到 /tmp
&& cd /tmp \
# 下载扩展包
&& wget http://qinqinxia.com/zip-1.13.5.tgz \
# && wget http://pecl.php.net/get/zip-1.13.5.tgz \
# 解压
&& tar -zvxf zip-1.13.5.tgz \
# 删除压缩包
&& rm -f zip-1.13.5.tgz \
# 解压后复制到目录 /usr/local/src
&& mv zip-1.13.5 /usr/local/src \
# 切换目录到 /usr/local/src/zip-1.13.5
&& cd /usr/local/src/zip-1.13.5 \
&& /usr/local/bin/phpize \
&& ./configure --with-php-config=/usr/local/bin/php-config \
&& make && make install \
#
##pdo_mysql#################################################
# 安 装 php 扩展 pdo_mysql
# 切换到 tmp 目录
&& cd /tmp \
#下 载 php-mysql
&& wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz \
# 解压
&& tar -xzvf PDO_MYSQL-1.0.2.tgz \
&& rm -f PDO_MYSQL-1.0.2.tgz \
# 解压后移动到 /usr/local/src
&& mv PDO_MYSQL-1.0.2 /usr/local/src \
# 切换到目录 /usr/local/src/PDO_MYSQL-1.0.2
&& cd /usr/local/src/PDO_MYSQL-1.0.2 \
# 安装 php-mysql
&& /usr/local/bin/phpize \
&& ./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr/local/bin/mysql \
&& make && make install \
#
##redis#############################################
# 安装 php 扩展 redis
# 下载
&& cd /tmp \
&& curl -L -o phpredis-5.0.2.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2 \
&& tar -xzvf phpredis-5.0.2.tar.gz \
&& rm -f phpredis-5.0.2.tar.gz \
# 解压后移动到 /usr/local/src
&& mv phpredis-5.0.2 /usr/local/src \
&& cd /usr/local/src/phpredis-5.0.2 \
&& /usr/local/bin/phpize \
&& ./configure --with-php-config=/usr/local/bin/php-config \
&& make && make install

其他扩展与此雷同

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://dahai.blog.csdn.net/article/details/122327245

延伸 · 阅读

精彩推荐