
omegaup/php本镜像为omegaup.com平台专用的PHP运行容器,旨在为该在线编程竞赛平台提供稳定、兼容的PHP运行环境。镜像基于特定版本的PHP构建,预配置了运行omegaup.com应用所需的扩展、依赖及环境参数,确保与平台代码无缝集成。
mysqli、curl、json、gd、mbstring等)通过docker run直接启动容器,需挂载omegaup.com代码目录并配置必要参数:
bashdocker run -d \ --name omegaup-php \ -v /path/to/omegaup/code:/var/www/html \ -p 9000:9000 \ -e PHP_ENV=production \ -e DB_HOST=mysql-host \ -e DB_USER=omegaup \ -e DB_PASSWORD=your-password \ -e DB_NAME=omegaup \ omegaup/php
-v /path/to/omegaup/code:/var/www/html:挂载omegaup.com的PHP代码目录到容器内web根目录-p 9000:9000:暴露PHP-FPM端口(若使用FPM模式),供Web服务器(如Nginx)反向代理-e PHP_ENV:指定运行环境,可选值:production(默认)、development、testing-e DB_*:数据库连接参数,需与omegaup平台的数据库配置匹配在多容器部署场景(如配合Nginx、MySQL)中,可使用docker-compose.yml统一管理:
yamlversion: '3' services: php: image: omegaup/php container_name: omegaup-php volumes: - ./omegaup-code:/var/www/html - ./php-config:/usr/local/etc/php/conf.d # 自定义PHP配置覆盖 environment: - PHP_ENV=production - DB_HOST=mysql - DB_USER=omegaup - DB_PASSWORD=secure-password - DB_NAME=omegaup - PHP_MEMORY_LIMIT=512M - PHP_MAX_EXECUTION_TIME=300 depends_on: - mysql restart: unless-stopped mysql: image: mysql:8.0 container_name: omegaup-mysql volumes: - mysql-data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root-password - MYSQL_DATABASE=omegaup - MYSQL_USER=omegaup - MYSQL_PASSWORD=secure-password restart: unless-stopped nginx: image: nginx:alpine container_name: omegaup-nginx ports: - "80:80" - "443:443" volumes: - ./nginx-conf:/etc/nginx/conf.d - /path/to/omegaup/code:/var/www/html - ./ssl:/etc/nginx/ssl depends_on: - php restart: unless-stopped volumes: mysql-data:
容器支持以下关键环境变量自定义配置:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PHP_ENV | 运行环境 | production |
PHP_MEMORY_LIMIT | PHP内存限制 | 256M |
PHP_MAX_EXECUTION_TIME | 最大执行时间(秒) | 120 |
PHP_ERROR_REPORTING | 错误报告级别 | E_ALL & ~E_DEPRECATED & ~E_STRICT(生产环境) |
DB_HOST | 数据库主机地址 | localhost |
DB_PORT | 数据库端口 | 3306 |
DB_USER | 数据库用户名 | omegaup |
DB_PASSWORD | 数据库密码 | 无 |
DB_NAME | 数据库名称 | omegaup |
如需覆盖默认PHP配置,可通过挂载配置文件实现:
.ini配置文件(如custom.ini)放置于宿主机目录(如./php-config)docker run或docker-compose中挂载该目录到容器内PHP配置目录:-v ./php-config:/usr/local/etc/php/conf.d示例custom.ini内容:
iniupload_max_filesize = 64M post_max_size = 64M max_input_vars = 5000
PHP_ENV=production以启用安全配置
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务