私はこれを検索しましたが、過去の質問で提供された解決策は私には完全に理解できません。のような関数を実行すると、次のようimagecreatefromjpeg
になります。
致命的なエラー:未定義の関数imagecreatefromjpeg()の呼び出し..。
私はPHPの新規インストールに取り組んでいます。私の最後のインストールでは、この問題は発生しませんでした。何が起こっているのかわかりません。
GDライブラリをインストールする
使用しているOSはどれですか?
http://php.net/manual/en/image.installation.php
Windows http://www.dmxzone.com/go/5001/how-do-i-install-gd-in-windows/
Linux http://www.cyberciti.biz/faq/ubuntu-linux-install-or-add-php-gd-support-to-apache/
Ubuntu / Mint(Debianベース)
$ sudo apt-get install php5-gd
Fatal error: Call to undefined function imagecreatefromjpeg()
GDがインストールされていても取得できます。
解決策は、jpedlibをインストール/有効化することです。
Ubuntuの場合:
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
CentOS の場合:
yum install libjpeg-devel
yum install freetype-devel
--with-jpeg-dir --with-freetype-dir
ソースからコンパイルする場合は、またはを追加し--with-jpeg-dir=/usr --with-freetype-dir=/usr
ます。
詳細については、https://www.tectut.com/2015/10/solved-call-to-undefined-function-imagecreatefromjpeg/を確認してください。
ライブラリGD2を有効にする必要があります。
(適切な)php.iniファイルを見つけます
次の行を見つけます:; extension = php_gd2.dllそして、前のセミコロンを削除します。
行は次のようになります。
extension=php_gd2.dll
次に、apacheを再起動すると、準備が整います。
私のように、PHP Dockerイメージの1つをベースとして使用している場合は、上記で説明したものとは異なる手順を使用してgd拡張機能を追加する必要があります。
php:7.4.1-apache
あなたがあなたのに追加する必要がある画像のためにDockerfile
:
RUN apt-get update && \
apt-get install -y zlib1g-dev libpng-dev libjpeg-dev
RUN docker-php-ext-configure gd --with-jpeg && \
docker-php-ext-install gd
これらの開発パッケージは、GDphp拡張機能のコンパイルに必要です。私の場合、これにより、PHPでPNGおよびJPEGをサポートするGDがアクティブ化されました。
sudo apt-get install phpx.x-gd
sudo service apache2 restart
xxはversiónphpです。
Ubuntuのphp7の場合:
sudo apt-get install php7.0-gd
php5-gd
apacheをインストールした後、再起動が必要です。
CentOS、RedHatなどでは、以下のコマンドを使用します。Apacheを再起動することを忘れないでください。PHPモジュールをロードする必要があるためです。
yum -y install php-gd
service httpd restart
systemctl restart php-fpm
Gdライブラリが機能した後。
前述のように、GDライブラリをインストールする必要がある場合があります。
シェルでは、最初にphpのバージョンを確認してください。
php -v
次に、それに応じてインストールします。私のシステム(Linux-Ubuntu)では、phpバージョン7.0です:
sudo apt-get install php7.0-gd
Webサーバーを再起動します。
systemctl restart apache2
これで、GDライブラリがインストールされて有効になっているはずです。
をインストールした後、Windowsでこれを理解しようと多くの時間を費やしましたPHP Version 8.0.11
。
phpinfo.php
GDがロードされたかどうかを確認するために、このファイルを作成しました。
<?php
if (extension_loaded('gd')) {
print 'gd loaded';
} else {
print 'gd NOT loaded';
}
phpinfo(); ?>
それが戻った場合は、ファイルに次のチェックが外されているgd NOT loaded
ことを確認してください。php.ini
; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
extension=gd
さらに下にはextension_dir
、Windowsのセクションがあり、次のチェックを外す必要があります。
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
;extension_dir = "./"
; On windows:
extension_dir = "ext"
これで、ファイルをgd loaded
実行するタイミングがわかり、関数呼び出し(など)が意図したとおりに機能するはずです。phpinfo.php
imagecreatefromjpeg()