–name mwq-php是容器的名字,/Users/mwqnice/Documents/Program/phpProgram是本地项目目录,/var/www/html是容器内项目存储目录,缺少pdo_mysql扩展,连接数据库失败,找到php.ini,docker中在/usr/local/etc/php中,复制一份php.ini,增加
extension=pdo_mysql.so
,重启php-fpm,如果还是不行,访问phpinfo页面,查看是否有pdo_mysql,
,如果没有,说明没有pdo_mysql扩展,需要编译,编译方法如下:,到docker的php容器中,在php文件夹下:,如果报 /usr/local/bin/docker-php-ext-enable: cannot create /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini: Directory nonexistent,
解决方案:直接在/usr/local/etc/php目录下面新建 conf.d目录和对应的docker-php-ext-pdo_msql.ini文件,其中docker-php-ext-pdo_msql.ini的内容为:,是因为服务器缓存文件夹的操作权限不够,即Runtime没有权限,把缓存文件全部删除,再给Runtime777权限就行了,sudo chmod 777 Runtime 或者直接对代码库最外层设置777权限,缺少gd扩展,安装:,可能以下报错:,安装:,再次执行:,php.ini增加php_gd2.so,
,phpinfo中显示gd库,
,注意如果phpinfo的gd库中没有freetype的支持,验证码依然显示不出来, 会报错:,如果gd库中没有freeType,则按照以下步骤进行:,重新编译:,如果报错: configure: error: freetype-config not found. 运行:,然后再继续运行上面的命令。gd库中有了freetype,则验证码显示正常了