PHP脚本语言虽最初为Web开发设计,却兼具通用目的用途,作为一种广泛应用的服务器端脚本语言,它能高效处理动态网页生成、数据库交互等Web开发核心任务,同时也可用于编写命令行脚本、开发桌面应用及进行系统管理等非Web领域,凭借其简洁语法与跨平台特性,成为众多开发者在不同场景下的实用工具。
收藏数: 7.8千
下载次数: 1283814525
类型:

library/phpamd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x(架构说明)PHP 是一种服务器端脚本语言,主要用于 Web 开发,也可作为通用编程语言。它可嵌入 HTML,或与模板引擎、Web 框架配合使用。PHP 代码通常由解释器处理,解释器可作为 Web 服务器的原生模块或 CGI 程序运行。
更多信息:*** PHP 条目
!PHP 标志
在 PHP 项目中编写 Dockerfile:
dockerfileFROM php:8.2-cli COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD ["php", "./your-script.php"]
构建并运行镜像:
console$ docker build -t my-php-app . $ docker run -it --rm --name my-running-app my-php-app
简单项目可直接通过镜像运行 PHP 脚本,无需完整 Dockerfile:
console$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:8.2-cli php your-script.php
部分扩展已预编译到镜像中,可先通过 php -m 或 php -i 检查已安装扩展,避免重复编译。镜像提供 docker-php-ext-configure、docker-php-ext-install、docker-php-ext-enable 工具简化扩展安装,以及 docker-php-source 用于临时提取 PHP 源码(建议用完即删,减小镜像体积):
dockerfileFROM php:8.2-cli RUN docker-php-source extract \ # 执行编译操作 \ && docker-php-source delete
以安装 GD 扩展为例(需先安装依赖库):
dockerfileFROM php:8.2-fpm RUN apt-get update && apt-get install -y \ libfreetype-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd
依赖库需手动安装。若不确定依赖,可参考 install-php-extensions 项目(社区工具,自动处理依赖)。
通过 PECL 安装非核心扩展,需配合 docker-php-ext-enable 启用:
dockerfileFROM php:8.2-cli RUN pecl install redis-5.3.7 \ && pecl install xdebug-3.2.1 \ && docker-php-ext-enable redis xdebug
安装 PECL 扩展时建议指定版本号,避免兼容性问题;多个扩展需分步骤安装(如
pecl install A && pecl install B),确保错误可追踪。
非核心/PECL 扩展可通过源码编译安装,示例:
dockerfileFROM php:8.2-cli RUN curl -fsSL "[扩展源码URL]" -o module-name.tar.gz \ && mkdir -p /tmp/module-name \ && tar -xf module-name.tar.gz -C /tmp/module-name --strip-components=1 \ && rm module-name.tar.gz \ && docker-php-ext-configure /tmp/module-name --enable-module-name \ && docker-php-ext-install /tmp/module-name \ && rm -r /tmp/module-name
镜像包含 php.ini-development(开发环境)和 php.ini-production(生产环境),建议生产环境使用后者:
dockerfileFROM php:8.2-fpm-alpine # 启用生产环境配置 RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
通过挂载或复制文件到 $PHP_INI_DIR/conf.d/ 目录添加自定义配置:
dockerfileFROM php:8.2-fpm COPY my-config.ini $PHP_INI_DIR/conf.d/
该错误因镜像默认屏蔽 Debian 的 PHP 包(避免冲突)。正确解决方式:
debian 镜像构建;docker-php-ext-install 或 PECL 安装。临时 workaround(不推荐,可能导致 PHP 多版本冲突):
dockerfileRUN rm /etc/apt/preferences.d/no-debian-php
php:<version>-cli包含 PHP CLI 工具,适用于命令行脚本,无 Web 服务器。
php:<version>-apache基于 Apache 服务器(搭配 mod_php 和 mpm_prefork),直接提供 Web 服务。示例 Dockerfile:
dockerfileFROM php:7.2-apache COPY src/ /var/www/html/
php:<version>-fpm包含 PHP-FPM(FastCGI 进程管理器),需配合反向代理(如 Nginx、Apache)使用。
php:<version>-alpine基于 Alpine Linux,体积更小(约 5MB 基础镜像),但使用 musl libc,部分依赖可能需要额外适配。适合对镜像大小敏感的场景。
PHP 软件许可证见 官方说明。镜像可能包含其他软件(如 Bash),其许可证信息可参考 repo-info 仓库。使用前请确保合规。
以下是 php 相关的常用 Docker 镜像,适用于 Web 开发、内容管理、传统应用 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务