PHP8 インストール初期設定

前回はTeraTermターミナルでSSHの公開鍵認証をしてログインをしました。今回は、「Rocky Linux」にLAMP環境を構築するためApache HTTPサーバーの起動設定とPHP8のインストール初期設定をしました。

概要

はじめに

ここではWordpress, Wikipedia, ECサイトなどのWebアプリの基本「LAMP」を簡単に説明します。

Linux」OSは「RedHat Enterprise Linux」略して「RHEL」の他に「Debian」「FreeBSD」などいくつかの系統があります。アーキテクチャもESXiによる「VM(仮想マシン)」用途から「Docker」などは「RHEL」系から「Debian」系へと緩やかに移行しているようです。コンテナOSとしては「Debian」系OSSである「ubuntu」に人気がありコンテナ、マイクロサービスとして提供されるなど変化しています。一方、「RHEL」系のOSSである「RockyLinux」「AlmaLinux」はクローンOSとして100%の互換性があり安心です。

Apache」に代表されるWebサーバーも昨今、「Nginx(エンジン・エックス)」へと交代していますがどちらも無料のサーバーSSL認証ソフトが使えるなど根強い需要があります。

MySQL」は現行の8から互換のある「MariaDB」などへと派生しているデータベースですがどちらもすばらしいソフトウェアです。Webサーバーをインストールした単一VM、インスタンスにlocalhostとして重ねてインストールして自重することもできますが別途独立したVM、インスタンスとして運用することも一般的です。

PHP」はCGIと呼ばれるWebサーバーの動的コンテンツの動作を担うソフトウェアです。

当方のHTTPサーバー設定は以下のサイトを参考に構築しました。「RockyLinux」でも設定は共通しており参考にさせていただきました。いつもありがとうございます。

.

AlmaLinuxで自宅サーバー構築

  1. Webサーバー構築(Apache)
  2. Webサーバー間通信内容暗号化(Apache+mod_SSL+Let’s Encrypt+Certbot)

.

今回は、1.の「Apache HTTPサーバー」を構築をしたのちPHP8をインストール設定していきます。

HTTPサーバーを起動する

PHPは「HTTPサーバー」のモジュールとして機能するのでWebサーバーを起動する際してApache の設定ファイルである httpd.conf を編集します。

長い httpd.conf を探すのは面倒くさいので 閲覧モード( esc キーを押す)で以下ショートカットで検索、置換できます。

検索 / (スラッシュ)
ハイライト消す :noh
置換 :%s/<before>/<after>/g
行番号表示 :set nu
行番号非表示 :set nonu

.

httpd.conf を編集

 vi /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80
ServerName dev.stuffy.site:80 ←(追記

DocumentRoot "/var/www/html" ← (ドキュメントルート確認
<Directory "/var/www/html"> Options Includes ExecCGI FollowSymLinks ← (追記 AllowOverride All ←(Allに変更 Require all granted </Directory>

<IfModule dir_module>
DirectoryIndex index.html index.php ←(追記
</IfModule>

<IfModule mime_module>
AddHandler cgi-script .cgi .pl
</IfModule>

.

コピペした検索キーワード、コードのファイル内への貼り付けは編集モード( v キーを押す)で右クリックで自動入力ができます。

Apacheの起動

設定ファイルに間違いがなければ以下のコマンドでApacheが起動します。

$ sudo systemctl start httpd  ←(スタート起動

$ sudo systemctl enable httpd ←(常時起動設定

$ sudo systemctl status httpd ←(ステータス確認

.

エラーがあると以下のメッセージが出るので具体的な行番号を探してエラーを修正します。

Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.

.

サービスの状態を確認する

80番ポートでLISTENしていれば 「lsof 」コマンドで表示され「curl」でテキストを確認できます。

$ lsof -i:80

$ curl localhost

.

ブラウザのアドレスバーから「http://192.168.1.190」でwelcome.conf画面が見えればOKです。

.

systemctl の -l オプションで詳細ステータスが表示できます。再起動は restart です。

# systemctl status httpd -l

# systemctl restart httpd

.

PHP8 をインストールする

「RHEL」系のOSには別途、拡張リポジトリである epel remi などがあり高度なソフトウェアを提供しています。「 dnf 」インストールすると /etc/yum.repos.dへ設定ファイルが追加されリポジトリが有効になります。

では早速、epel remi リポジトリからPHP8をインストールしてみましょう。既存のPHPモジュールはリセットして php:remi-8.3 モジュールを有効にします。config-manager でpowertools を有効にして…

# dnf -y install epel-release  ← epelリポジトリのインストール


# dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm ← remiリポジトリのインストール

# dnf -y module reset php

# dnf module enable php:remi-8.3

# dnf config-manager --set-enabled powertools

.

それではphp8.3をまるっとインストールしていきます。

# dnf -y install --enablerepo=remi php php-devel php83-php-mysqlnd \
php-common php-mbstring php-pdo php-gd \
php-xml php-mcrypt php-intl php-mysql \
gd-devel libxml2-devel mysql-devel \
t1lib-devel bzip2-devel curl-devel \
gmp-devel libmcrypt-devel php-opcache \
php-mysqli php-fpm php-pecl-zip \
pkgconfig php-pear \
jasper-devel OpenEXR-devel ghostscript-devel jbigkit-devel \
lcms2-devel openjpeg2-devel ImageMagick \
ImageMagick-devel ImageMagick-perl php-pecl-imagick

.

php.ini を編集

php.iniの初期設定をするため php -i コマンドで探します。ファイルは /etc にあることが分かりました。

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

.

最低限ですがバックアップを取ってから /etc/php.ini に以下の設定をして保存します。

# cp /etc/php.ini{,.org}

# vi /etc/php.ini

mbstring.encoding_translation = Off mbstring.http_output = pass mbstring.http_input = pass mbstring.internal_encoding = UTF-8 mbstring.language = Japanese upload_max_filesize = 128M post_max_size = 128M expose_php = Off session.hash_function = 1

.

php-fpm を起動する

設定を反映するため Apache再起動 php-fpm を起動します。

# systemctl restart httpd
# systemctl start php-fpm # systemctl enable php-fpm # systemctl status php-fpm

.

phpinfo.phpで確認する

ドキュメントルートに移動して以下の内容の phpinfo.php ファイルをドキュメントルートに保存します。

# cd /var/www/html
# vi phpinfo.php
<?php
phpinfo();
?>

.

最後にブラウザのアドレスバーからPHPのバージョン表示できればインストール成功です。

.

お疲れ様でした。

おわりに

今回はApache HTTPサーバーを起動、PHP8をインストールしました。MariaDBはPHPと違ってサポート期限が2024年までとなっておりリプレイス予定はまだ決まっていません。それではまた逢う日まで。

楽しいRockyLinuxライフを!

同じカテゴリーの記事

コメントを残す

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