🎩

RedHat Enterprise Linux 7でLAMP環境を構築する

2021/05/13に公開

RHELだと通常の構築とは異なる仕様だったため、メモします。

サブスクリプションの登録

初期状態でyumを使用しようとすると、this system is not registered with an entitlement server というエラーが表示されるので、サブスクリプションの登録を行います。
https://server-network-info.blogspot.com/2018/03/red-hat-enterprise-linux-74_11.html

 # subscription-manager register
ユーザー名: <RHNのアカウント>
パスワード: <RHNのパスワード>

# subscription-manager subscribe --pool=<RHNのWEBページで確認した31桁のプールID>

# subscription-manager list

RHSCLを使えるようにする

ミドルウェアはRemiリポジトリからではなく、Red Hat Software Collections (RHSCL) からインストールします。

# yum-config-manager --enable rhel-server-rhscl-7-rpms

ApacheでPHPを使えるようにする

RHSCLでインストールしたPHPは、RHSCLのhttpd24に対してビルドされているため、デフォルトのhttpdパッケージには有効ではありません。RHSCLのhttpd24をインストールする必要があります。(ちなみに、このことについて説明した記事が、サブスクリプションしたユーザしか見られないようになっているのが、受託開発の身としては辛くもあります。)
https://access.redhat.com/ja/solutions/2967711

# yum install httpd24 httpd24-mod_ssl
# service httpd stop
# chkconfig httpd off
# service httpd24-httpd start
# chkconfig httpd24-httpd on

設定ファイルは下記になります。

# vi /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf

PHPをインストールする

RHSCL からPHP 7.3 をインストールします。

# yum install rh-php73 rh-php73-php rh-php73-php-mbstring rh-php73-php-pdo rh-php73-php-gd rh-php73-php-mysqlnd rh-php73-php-xml rh-php73-php-zip

RHSCLは /opt 以下に配置されるため、環境変数を読み込んで利用します。

# scl enable rh-php73 bash
# php -v
PHP 7.3.20 (cli) (built: Jul 10 2020 02:04:27) ( NTS )
Copyright (c) 1997-2018 The PHP Group

設定ファイルは下記になります。

# php -i | grep php.ini
Configuration File (php.ini) Path => /etc/opt/rh/rh-php73
Loaded Configuration File => /etc/opt/rh/rh-php73/php.ini

# vi /etc/opt/rh/rh-php73/php.ini

モジュールの追加は下記になります。
例えばioncube Loaderを追加した場合のサンプルです。

# mv ioncube/ /opt/rh/rh-php73/root/usr/lib64/php/modules
# vi /etc/opt/rh/rh-php73/php.d/00-ioncube.ini
zend_extension = /opt/rh/rh-php73/root/usr/lib64/php/modules/ioncube/ioncube_lin_7.3.so

MySQLをインストールする

RHSCL から MySQL 8.0 をインストールします。
https://www.server-world.info/query?os=CentOS_7&p=mysql80&f=1

# yum install rh-mysql80 rh-mysql80-mysql-server
# chkconfig rh-mysql80-mysqld on
# service rh-mysql80-mysqld start

こちらも /opt 以下に配置されるため、環境変数を読み込んで利用します。

# scl enable rh-mysql80 bash
# mysql -V

設定ファイルは下記になります。デフォルトの文字コードを記載しておきます。

# vi /etc/opt/rh/rh-mysql80/my.cnf.d/mysql-server.cnf

[mysqld]
character-set-server=utf8mb4

MySQLの初期設定を行い、ユーザの作成、データベースの作成を行ったら完了です。

# mysql_secure_installation

Discussion