php 7.3.xから、php 7.4.x(今回は、php 7.4.4)にアップデートしたときのレシピを!
php 7.4.x、configure オプションの変更
./configure --with-pdo-mysql --with-mysqli --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib --enable-zip --with-libxml-dir=/usr --with-freetype-dir=/usr/local/lib --enable-gd-jis-conv --enable-cgi --with-curl --enable-opcache --without-libzip --with-openssl --enable-intl --with-gettext
↑今までは、このようなオプションで設定をしてきました。
この設定は、php-fpmでの設定です。
参考記事:Nginx 1.14,php 7.3 (PHP-FPM), MySQL 5.7,SSL (Let’s Encrypt),CentOS7への導入手順
--with-gd, --with-jpeg-dir, --with-png-dir, --enable-zip, --with-libxml-dir, --with-freetype-dir, --without-libzip
↑のオプションは、変更されたようです・・・
--enable-gd --with-jpeg --with-webp --with-xpm --with-freetype --enable-gd-jis-conv --with-zip
↑というオプションで、設定をします。
# yum install libwebp libwebp-devel
↑webpのライブラリーを入れておきます。
./configure --with-pdo-mysql --with-mysqli --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mbstring --enable-ftp --with-zlib --enable-gd-jis-conv --enable-cgi --with-curl --enable-opcache --with-openssl --enable-intl --with-gettext --enable-gd --with-jpeg --with-webp --with-xpm --with-freetype --enable-gd-jis-conv --with-zip
↑このオプションで設定をします
SQLite3
checking whether to enable the SQLite3 extension... yes checking for sqlite3 > 3.7.4... no configure: error: Package requirements (sqlite3 > 3.7.4) were not met: No package 'sqlite3' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SQLITE_CFLAGS and SQLITE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
↑sqlite3が無いよ、と、怒られます
# yum install sqlite sqlite-devel
↑sqliteを入れます。
icu
checking whether to enable internationalization support... yes checking for icu-uc >= 50.1 icu-io icu-i18n... no configure: error: Package requirements (icu-uc >= 50.1 icu-io icu-i18n) were not met: No package 'icu-uc' found No package 'icu-io' found No package 'icu-i18n' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ICU_CFLAGS and ICU_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
↑icu関係が無いよ、と怒られます。
該当サーバーには、icuは、以前にインストールをしていて・・・
Postfix 3.4 ソースインストール CentOS7(マルチドメイン)(過去記事)
# find / -name '*icu-uc*' -print /usr/local/lib/pkgconfig/icu-uc.pc
↑と、icu-uc関係のファイルを探します。
# export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"
↑と設定をします。ログインし直したりすると、環境変数がリセットされるので、.bashrcなどに記載をするほうがいいかと。
鬼車 oniguruma
checking for oniguruma... no configure: error: Package requirements (oniguruma) were not met: No package 'oniguruma' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
↑onigurumaが、無いよ。ということで、
# yum install oniguruma oniguruma-devel
↑onigurumaを入れます。
再度、configure
./configure --with-pdo-mysql --with-mysqli --enable-pcntl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mbstring --enable-ftp --with-zlib --enable-gd-jis-conv --enable-cgi --with-curl --enable-opcache --with-openssl --enable-intl --with-gettext --enable-gd --with-jpeg --with-webp --with-xpm --with-freetype --enable-gd-jis-conv --with-zip ++++++(略)+++++++++++ Generating files configure: patching main/php_config.h.in configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/www.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating sapi/phpdbg/phpdbg.1 config.status: creating sapi/cgi/php-cgi.1 config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP.
↑これで、php 7.4.x の、configureが通りました。
php 7.4.x make、make install
LS -c /root/php-7.4.4/ext/fileinfo/libmagic/apprentice.c -o ext/fileinfo/libmagic/apprentice.lo virtual memory exhausted: Cannot allocate memory make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
↑メモリ不足・・・・となり、makeが途中で止まる(汗)
不必要なサービスを停止して
# make clean # make (略) PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled. clicommand.inc pharcommand.inc invertedregexiterator.inc directorytreeiterator.inc directorygraphiterator.inc phar.inc Build complete. Don't forget to run 'make test'.
↑make 完了!
# make install Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/ Installing PHP CLI binary: /usr/local/bin/ Installing PHP CLI man page: /usr/local/php/man/man1/ Installing PHP FPM binary: /usr/local/sbin/ Installing PHP FPM defconfig: skipping Installing PHP FPM man page: /usr/local/php/man/man8/ Installing PHP FPM status page: /usr/local/php/php/fpm/ Installing phpdbg binary: /usr/local/bin/ Installing phpdbg man page: /usr/local/php/man/man1/ Installing PHP CGI binary: /usr/local/bin/ Installing PHP CGI man page: /usr/local/php/man/man1/ Installing build environment: /usr/local/lib/php/build/ Installing header files: /usr/local/include/php/ Installing helper programs: /usr/local/bin/ program: phpize program: php-config Installing man pages: /usr/local/php/man/man1/ page: phpize.1 page: php-config.1 /root/php-7.4.4/build/shtool install -c ext/phar/phar.phar /usr/local/bin ln -s -f phar.phar /usr/local/bin/phar Installing PDO headers: /usr/local/include/php/ext/pdo/
↑php 7.4.x インストール完了
GDのエラー時・・・
ワードプレスのログイン時に、
Fatal error: Uncaught Error: Call to undefined function imagecreatetruecolor() in /var/www/web/wp-content/plugins/siteguard/really-simple-captcha/siteguard-really-simple-captcha.php:178 Stack trace: #0 /var/www/web/wp-content/plugins/siteguard/classes/siteguard-captcha.php(186): SiteGuardReallySimpleCaptcha->generate_image(226552458, '\xE3\x81\xBF\xE3\x81\xB5\xE3\x81\x9B\xE3\x81\xB2') #1 /var/www/web/wp-content/plugins/siteguard/classes/siteguard-captcha.php(192): SiteGuard_CAPTCHA->put_captcha() #2 /var/www/web/wp-includes/class-wp-hook.php(288): SiteGuard_CAPTCHA->handler_login_form('') #3 /var/www/web/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters('', Array) #4 /var/www/web/wp-includes/plugin.php(478): WP_Hook->do_action(Array) #5 /var/www/web/wp-login.php(1376): do_action('login_form') #6 {main} thrown in /var/www/web/wp-content/plugins/siteguard/really-simple-captcha/siteguard-really-simple-captcha.php on line 178 サイトに重大なエラーがありました。 詳細については、サイト管理者のメール受信ボックスを確認してください。 WordPress でのデバッグをさらに詳しく見る。
上記のようなエラーが出るときがあります。
これは、「GD」オプションが有効になっていない時に発生します。
実際には、「SiteGuard」というプラグインで、「画像認証」が有効になっている時に、エラーが発生します。
「phpinfo」をチェックして、「GD」が有効になっているか、確認しましょう。