簡體   English   中英

MySQL函數在“ php:7.1”泊塢窗映像中不可用

[英]MySQL functions not available in “php:7.1” docker image

我正在使用“ php:7.1”泊塢窗映像來設置新項目的測試環境。 我在嘗試使用

$db = new mysqli(...);

功能來獲取數據庫連接。

我嘗試以交互方式使用docker映像來手動查找必要的設置步驟:

docker run -i -t php:7.1 /bin/bash

我運行在網上找到的以下步驟來准備“ mysqli”功能:

# update image
apt-get update
# install vim for local editing
apt-get install vim

我試圖從以下文章中安裝mysql: 如何在php 7中啟用MySQLi擴展?

apt-get install php-mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php-mysql

我嘗試僅激活擴展名,但由於擴展名不存在而無法工作:

extension=php_mysqli.dll

錯誤:

php info.php |grep mysql
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20160303/php_mysqli.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20160303/php_mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
Configure Command =>  './configure'  '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--disable-cgi' '--enable-ftp' '--enable-mbstring' '--enable-mysqlnd' '--with-curl' '--with-libedit' '--with-openssl' '--with-zlib'
mysqlnd
mysqlnd => enabled
Version => mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $
Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
mysqlnd statistics =>

我不知道如何安裝和啟用擴展程序。

那是因為你做錯了。 首先,MySQL擴展(舊的)在PHP 7+中已棄用。 它在基於Debian的發行版中也不存在。 因此,您需要做的是創建一個包含以下內容的Dockerfile

FROM php:7.1
RUN docker-php-ext-install mysqli && \
    docker-php-ext-install pdo_mysql

並假設您位於Dockerfile所在的目錄中,運行命令:

docker build -t <some_tag> .
docker run -it <some_tag> bash

您將進入容器的提示,然后可以運行php -v ,輸出應類似於:

# php -m
[PHP Modules]
...
mysqli ===> MySQLi has been installed
mysqlnd ===> MySQLnd has been installed
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM