前回は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」でも設定は共通しており参考にさせていただきました。いつもありがとうございます。
.
.
今回は、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ライフを!