docker php拡張gdライブラリのインストール
6236 ワード
Dockerはオープンソースのアプリケーションコンテナエンジンで、Go言語に基づいてApache 2に従う.0プロトコルオープンソース.
Dockerは、開発者にアプリケーションをパッケージ化し、軽量級で移植可能なコンテナに依存させ、流行のLinux(Windows、MacOS)マシンに公開したり、仮想化したりすることができます.
容器は砂箱機構を完全に使用し,互いにインタフェースがなく,さらに重要なのは容器性能のオーバーヘッドが極めて低いことである.
一、nginx、php、mysqlミラーをインストールする
コマンド
使用可能なバージョンを表示するには、
https://www.runoob.com/docker/docker-search-command.html
二、運転、停止、容器の削除
起動したコンテナまたはすべてのコンテナを表示するには、コマンド
次のNginx+PHP:
参照先:
https://www.runoob.com/docker/docker-install-php.htmlhttps://hub.docker.com/_/php
Webプログラムコードを
サーバ環境がgd拡張をサポートしていないため、認証コードは使用できません.
容器の停止、削除は以下の通りです.
docker stop 027 c 0 f 432 aae#さらに対応する容器iddocker rm 027 c 0 f 432 aae
mysqlコンテナのipアドレスを表示し、データベースに接続する際に使用できます.
三、php拡張gdライブラリのインストール
以前に
phpコンテナに入る:
ソフトウェアソースを国内のあるミラー局ソースに変更することができ、例えばコンテナソフトウェアソース
エディタはインストール
Webサイトのグラフィック認証コードがまだ表示されていない場合は、次のエラーが表示されます.
Fatal error: Call to undefined function core\extend\code\imagettftext()
次の手順に従います.
エラーが発生した場合:
configure: error: freetype-config not found.
実行:
gdライブラリにfreetypeがあると、検証コードが正常に表示されます.
同様に、mysqli拡張子がないことを示すメッセージがあれば、
四、知識の拡張
1、docker-php-source
このコマンドはPHPコンテナに/usr/src/phpのディレクトリを作成し、独自のファイルをいくつか入れただけです.インターネットからダウンロードしたPHP拡張ソースの保存ディレクトリとして使えばいいです.実際、すべてのPHP拡張ソースは/usr/src/php/extに格納されています.
書式:
パラメータの説明:*extract:/usr/src/phpディレクトリの作成と初期化*delete:削除/usr/src/phpディレクトリ
2、docker-php-ext-enable
このコマンドはPHP拡張を起動するために使用されます.私たちがpeclを使ってPHP拡張をインストールするとき、デフォルトではこの拡張を起動していません.この拡張を使用するにはphpでなければなりません.iniこのプロファイルで構成してこそ、このPHP拡張を使用することができます.docker-php-ext-enableというコマンドはPHP拡張を自動的に起動してくれます.phpに行く必要はありません.iniというプロファイルで構成します.
3、docker-php-ext-install
このコマンドはPHP拡張機能をインストールして起動するために使用されます.コマンドフォーマット:docker-php-ext-install「ソースパッケージディレクトリ名」
注意点:「ソースパッケージ」は/usr/src/php/extの下に置く必要があります デフォルトでは、PHPコンテナに/usr/src/phpというディレクトリはありません.docker-php-source extractを使用して生成する必要があります. docker-php-ext-installインストールの拡張子インストールが完了すると、docker-php-ext-enableが自動的に呼び出され、インストールの拡張子が起動します. 拡張子をアンインストールし、/usr/local/etc/php/conf.d対応のプロファイルを直接削除すればよい.
原文出典:https://xushanxiang.com/2020/01/docker-php-gd.html
Dockerは、開発者にアプリケーションをパッケージ化し、軽量級で移植可能なコンテナに依存させ、流行のLinux(Windows、MacOS)マシンに公開したり、仮想化したりすることができます.
容器は砂箱機構を完全に使用し,互いにインタフェースがなく,さらに重要なのは容器性能のオーバーヘッドが極めて低いことである.
一、nginx、php、mysqlミラーをインストールする
docker pull nginx:latest
docker pull php:5.6-fpm
docker pull php:5.6-cli
docker pull mysql:5.6.46
docker pull phpmyadmin/phpmyadmin
コマンド
docker images
を使用して、ローカルミラーを表示します.REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest c7460dfcab50 5 hours ago 126MB
phpmyadmin/phpmyadmin latest fcf3beee74b9 47 hours ago 458MB
mysql 5.6.46 f7ba8643e01a 12 days ago 302MB
php 5.6-fpm 3458979c7744 11 months ago 344MB
php 5.6-cli 36c3c974e6ee 11 months ago 344MB
使用可能なバージョンを表示するには、
docker search
コマンドを使用します.https://www.runoob.com/docker/docker-search-command.html
二、運転、停止、容器の削除
起動したコンテナまたはすべてのコンテナを表示するには、コマンド
docker container ls
(またはdocker ps)またはdocker container ls -all
(またはdocker ps-a)を実行します.docker run --name xu-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.6.46
docker run --name xu-phpmyadmin -d --link xu-mysql:db -p 8081:80 phpmyadmin/phpmyadmin
# http://127.0.0.1:8081/, root/123456 mysql
docker run --name xu-php-fpm5.6 -v ~/code/docker/nginx/www:/www -d php:5.6-fpm
次のNginx+PHP:
docker run --name xu-nginx -p 8080:80 -d -v ~/code/docker/nginx/www:/usr/share/nginx/html -v ~/code/docker/nginx/conf/conf.d/:/etc/nginx/conf.d --link xu-php-fpm5.6:php nginx
参照先:
https://www.runoob.com/docker/docker-install-php.htmlhttps://hub.docker.com/_/php
Webプログラムコードを
~/code/docker/nginx/www
に入れると、ブラウザでhttp://127.0.0.1:8080/
を開き、ヒント:サーバ環境がgd拡張をサポートしていないため、認証コードは使用できません.
容器の停止、削除は以下の通りです.
docker stop 027 c 0 f 432 aae#さらに対応する容器iddocker rm 027 c 0 f 432 aae
mysqlコンテナのipアドレスを表示し、データベースに接続する際に使用できます.
docker inspect --format='{{.NetworkSettings.IPAddress}}' xu-mysql
三、php拡張gdライブラリのインストール
以前に
gd
が有効になっている場合は、php.ini
ファイルにextension=gd.so
を注記してコンテナを再起動する必要があります.phpコンテナに入る:
docker exec -it /bin/bash
ソフトウェアソースを国内のあるミラー局ソースに変更することができ、例えばコンテナソフトウェアソース
/etc/apt/sources.list
を網易ミラー局ソースに変更することができ、stretch
を例に挙げる.# :
mv /etc/apt/sources.list /etc/apt/sources.list.bak
# /etc/apt/sources.list
deb http://mirrors.163.com/debian/ stretch main contrib non-free contrib
deb http://mirrors.163.com/debian/ stretch-updates main contrib non-free contrib
deb http://mirrors.163.com/debian/ stretch-backports main contrib non-free contrib
エディタはインストール
vim
を推奨します.デフォルトではインストールされていません.まずapt-get update
を実行してからapt-get install vim
をインストールしてください.しかし、矛盾しているのは、私が迅速に更新してインストールできれば、ソースを交換する必要はありません.そのため、最も基本的なコマンド「echo
」を使用します.# :
echo "deb http://mirrors.163.com/debian/ stretch main non-free contrib" >/etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ stretch-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ stretch main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ stretch-proposed-updates main non-free contrib" >>/etc/apt/sources.list
#
apt update
#
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
#
docker-php-source extract
# gd
cd /usr/src/php/ext/gd
#
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2
#
docker-php-ext-install gd
#
php -m | grep gd
# php
exit
# php
……
Webサイトのグラフィック認証コードがまだ表示されていない場合は、次のエラーが表示されます.
Fatal error: Call to undefined function core\extend\code\imagettftext()
次の手順に従います.
docker-php-ext-configure gd --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include
:
docker-php-ext-install gd
エラーが発生した場合:
configure: error: freetype-config not found.
実行:
apt install libfreetype6-dev
を実行してから、上記のコマンドを実行します. gdライブラリにfreetypeがあると、検証コードが正常に表示されます.
同様に、mysqli拡張子がないことを示すメッセージがあれば、
docker-php-ext-install mysqli
コマンドを実行してphpコンテナを再起動すればよい.四、知識の拡張
1、docker-php-source
このコマンドはPHPコンテナに/usr/src/phpのディレクトリを作成し、独自のファイルをいくつか入れただけです.インターネットからダウンロードしたPHP拡張ソースの保存ディレクトリとして使えばいいです.実際、すべてのPHP拡張ソースは/usr/src/php/extに格納されています.
書式:
docker-php-source extract | delete
パラメータの説明:*extract:/usr/src/phpディレクトリの作成と初期化*delete:削除/usr/src/phpディレクトリ
2、docker-php-ext-enable
このコマンドはPHP拡張を起動するために使用されます.私たちがpeclを使ってPHP拡張をインストールするとき、デフォルトではこの拡張を起動していません.この拡張を使用するにはphpでなければなりません.iniこのプロファイルで構成してこそ、このPHP拡張を使用することができます.docker-php-ext-enableというコマンドはPHP拡張を自動的に起動してくれます.phpに行く必要はありません.iniというプロファイルで構成します.
3、docker-php-ext-install
このコマンドはPHP拡張機能をインストールして起動するために使用されます.コマンドフォーマット:docker-php-ext-install「ソースパッケージディレクトリ名」
注意点:
原文出典:https://xushanxiang.com/2020/01/docker-php-gd.html