You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下CakePHP 1.3兼容的MySQL连接驱动推荐

适配CakePHP 1.3的MySQL驱动配置方案

CakePHP 1.3采用旧版数据源架构,你当前配置的Cake\Database\Driver\Mysql是CakePHP 3.x及后续版本的驱动,完全不兼容1.3版本。以下是Docker环境下的适配方案:

1. 修正database.php驱动配置

将驱动字段改为CakePHP 1.3原生支持的值,同时保留环境变量注入逻辑:

class DATABASE_CONFIG {
    public function __construct() {
        $this->default['host'] = getenv('MYSQL_URL');
        $this->default['login'] = getenv('MYSQL_USERNAME');
        $this->default['password'] = getenv('MYSQL_PASSWORD');
    }

    var $default = array(
        'driver' => 'mysql', // CakePHP 1.3原生MySQL驱动
        'persistent' => false,
        'host' => '',
        'login' => '',
        'password' => '',
        'database' => 'RP',
        'prefix' => '',
        'encoding' => 'utf8', // 建议启用编码配置避免乱码
    );
}

2. Docker环境PHP扩展适配

方案A:使用PHP 5.x镜像(最省心)

CakePHP 1.3原生适配PHP 5.x,直接使用php:5.6-apache这类Docker镜像,默认自带mysql扩展,无需额外配置即可使用上述驱动。

方案B:适配PHP 7+环境

若必须使用PHP 7+版本,需做以下调整:

  • 在Dockerfile中安装mysqli扩展:
    RUN docker-php-ext-install mysqli
    
  • 下载适配CakePHP 1.3的dbo_mysqli.php数据源文件,放置到项目的app/models/datasources/dbo/目录下,然后修改database.php的驱动为:
    'driver' => 'mysqli',
    

3. 确保Docker环境变量生效

在docker-compose.yml中添加env_file配置,让容器正确读取.env变量:

services:
  php:
    env_file: .env
    # 其他容器配置...
  mysql:
    # 数据库服务配置...

内容的提问来源于stack exchange,提问作者Arjun Rachakonda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:40:49