AlmaLinux9 dnf のみでphp8.3系 MariaDB11.6系 ImageMagick7系 Apache2.4系 インストールメモ (2024/12/16時点)

AlmaLinux9に MariaDBレポジトリー経由版 MariaDB ・ remi レポジトリー経由 php8.3 ・ ImageMagick 7系 ・ xdebug ・ Apache をdnf(yum)のみでインストールします。

メモ書きに残す

まずとりあえずアップデート

dnf update

日本語パッケージを入れる 実機コンソールで日本語を有効かするには他にも設定を変える必要がある為とりあえずSSH接続なら日本語化できる(SSHでログインすると下記を入れなくても日本語化されているが念のため)要再ログイン

dnf install langpacks-ja

EPELは、Extra Packages for Enterprise Linuxの略 標準的なレポジトリーです。

dnf install epel-release
dnf install epel-next-release

vi /etc/yum.repos.d/epel.repo
>enabled=1
vi /etc/yum.repos.d/epel-next.repo
>enabled=1

標準では両レポジトリーを有効されていますが、有効化されてない場合は、enabled=1で有効化します。

Remi Repository を有効化します。

dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
vi /etc/yum.repos.d/remi.repo
>enabled=0 を enabled=1

レポジトリーを有効にします。

enabled=1

次にImageMagick をdnf経由でインストールする際に使うPowerToolsを使えるようにしますが、9系はPowerToolsは名前がcrbに変わりました。

dnf config-manager --set-enabled crb

他の必要になりそうな物を追加しておく

dnf groupinstall 'Development Tools'
dnf install wget htop tar zip nmap vim curl
dnf install git

レポジトリーも一式入ったのでアップデートの確認を行う。各種アップデートの確認為、アップデート後リブートしておく

dnf update
reboot

 

MariaDBレポジトリー経由版 MariaDB(MySQL)をインストールする

MariaDBの公式レポジトリーを使えるようにします。

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
dnf install MariaDB-server

utf8を基本にします。

vi /etc/my.cnf.d/server.cnf
[mariadb]
character-set-server=utf8

MariaDBを自動起動化と起動します。

systemctl enable mariadb
systemctl start mariadb

MariaDBを初期設定を行います。

[root@demo zukia]# mysql_secure_installation
bash: mysql_secure_installation: コマンドが見つかりません

mariadbはmysqlとはコマンド名が変更されています。

mariadb-secure-installation

 

PHP8.3をインストールします。

listからインストールできるVerを確認して設定します。今回はremi-8.3を選択します。

dnf module reset php
dnf module list php
dnf module enable php:remi-8.3

PHPをインストールします。

dnf install php php-mysqlnd php-gd php-zip php-bcmath php-bcmath php-intl php-xmlrpc php-pear php-pecl-apcu php-devel
dnf install php-xml php-opcache php-mbstring php-fpm(PHPそのものインストール時に同時に入っているはず)

phpの動作確認

[root@demo XXXX]# php -v
PHP 8.3.14 (cli) (built: Nov 19 2024 15:14:23) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.14, Copyright (c) Zend Technologies
with Zend OPcache v8.3.14, Copyright (c), by Zend Technologies

xdebug(3.4系)のインストール

pecl install xdebug
INSTALLATION INSTRUCTIONS

NOTE: Please disregard the message |
| You should add "extension=xdebug.so" to php.ini |
| that is emitted by the PECL installer. This does not work for |
| Xdebug.

Build process completed successfully
Installing '/usr/lib64/php/modules/xdebug.so'
install ok: channel://pecl.php.net/xdebug-3.4.0
configuration option "php_ini" is not set to php.ini location
You should add "zend_extension=/usr/lib64/php/modules/xdebug.so" to php.ini

xdebugの組み込み

vi /etc/php.d/99-xdebug.ini
zend_extension=xdebug
[root@demo /]# php -v
PHP 8.3.14 (cli) (built: Nov 19 2024 15:14:23) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.14, Copyright (c) Zend Technologies
    with Xdebug v3.4.0, Copyright (c) 2002-2024, by Derick Rethans
    with Zend OPcache v8.3.14, Copyright (c), by Zend Technologies

ImageMagick 7系(イメージマジック)のインストール

dnf install ImageMagick7 ImageMagick7-devel

ここでエラーが発生した場合やインストール出来ない場合は、crb(PowerTools)のレポジトリーが反映されていません。

動作検証

[root@demo XXXX]# magick --version
Version: ImageMagick 7.1.1-41 Q16-HDRI x86_64 22504 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zip zlib zstd
Compiler: gcc (11.4)

phpでImageMagick を使う為に

dnf install php-pecl-imagick-im7

 

Apache2.4系 Httpd のインストール

dnf install httpd httpd-devel mod_ssl
systemctl enable httpd
systemctl start httpd
[root@demo xxx]# httpd -v
Server version: Apache/2.4.62 (AlmaLinux)
Server built: Aug 3 2024 00:00:00

firewalldでApache関係の解放

firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
firewall-cmd --list-all

Apacheとphp-fpmの再起動

基本的にApacheを再起動するとphp-fpmが再起動されるようになっているので、確認する

systemctl restart httpd
systemctl status php-fpm

ここまできたらブラウザーでサーバーにアクセスし動作を確認


vi /var/www/html/index.php

<?php
phpinfo();
?>

Web経由でのphpinfoでイメージマジックの動作とxdebugの動作を確認

phpMyAdminでphpからmariadbへの接続が出来るかどうかを確認

[root@demo html]# cd /var/www/html/
[root@demo html]# wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
[root@demo html]# unzip phpMyAdmin-5.2.1-all-languages.zip
[root@demo html]# mv phpMyAdmin-5.2.1-all-languages pma

ブラウザーでphpMyAdminへ

http://server.address/pma/
mysqli::real_connect(): (HY000/2002): Permission denied

等エラーが表示されるはずなのでselinuxを部分解除するが、

めんどくさいのでselinuxを拒否させない(無効化はboot系も弄らないといけないのでめんどくさい)


[root@demo html]# getenforce
Enforcing
[root@demo html]# setenforce 0
[root@demo html]# getenforce
Permissive

getenforceコマンドの返り値は以下になります。
Enforcing   selinuxが有効
Permissive  selinuxが有効、ただし拒否せずログ出力のみ
Disabled   selinuxが無効

永続的に変更しておく

vi /etc/selinux/config

#SELINUX=enforcing
SELINUX=permissive

reboot

 

注意点

mysqlのポートを開放していないはApache(php-fpm)がmysqlにアクセスしているのはsocket経由なのでポート開かなくても動いているはず(この関係でselinuxの設定がよくわからん・・

動作確認の為に作ったindex.phpやphpMyAdmin等は削除しておく事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です