Fedora ServerにLAMPスタックをインストールする:Apache、MariaDB、PHP 8.3

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

なぜFedoraでLAMPを選ぶのか?

Fedoraを開発環境として2年間利用してきましたが、パッケージの更新速度には本当に驚かされます。CentOSやRHELが「枯れた」技術による安定性を重視するのに対し、Fedoraは常に最新バージョンを優先します。FedoraでLAMPを構築すれば、公式リポジトリからすぐにPHP 8.2や8.3を利用可能です。どうしても必要な場合を除き、Remiなどのサードパーティ製リポジトリを追加する手間もありません。

ジュニアエンジニアにとって、Fedoraは最高の「修行の場」でもあります。**SELinux**や**firewalld**と真剣に向き合う必要があるからです。トラブルを避けるためにこれらを無効化するのではなく、正しく理解して設定することで、サーバー管理スキルを一段上のレベルへと引き上げることができます

LAMPスタックの構成要素

コマンドを入力する前に、今回構築する4つの要素を確認しておきましょう。

  • Linux: Fedora Server(今回はバージョン39/40を使用)。
  • Apache (httpd): 定番のWebサーバー。非常に強力でカスタマイズ性に優れています。
  • MariaDB: MySQLのオープンソース版フォーク。高パフォーマンスで完全に無料です。
  • PHP 8: バックエンド処理言語。WordPressやLaravelなどのCMSやフレームワークの核となります。

ステップ1:Apacheのインストールとファイアウォールの設定

Fedoraでは、Apacheはhttpdと呼ばれます。まずはシステムを最新の状態にアップデートしましょう

sudo dnf update -y
sudo dnf install httpd -y

インストール完了後、サーバー起動時にApacheが自動で立ち上がるように設定します。

sudo systemctl enable --now httpd

この時点でサーバーのIPアドレスにアクセスしても、接続エラーになります。これは**firewalld**がポート80(HTTP)と443(HTTPS)をブロックしているためです。以下のコマンドでこれらを開放します。

sudo firewall-cmd --permanent --add-service={http,https}
sudo firewall-cmd --reload

ブラウザにサーバーのIPを入力してみてください。Fedoraのテストページが表示されれば、最初の関門は突破です。

ステップ2:MariaDBのインストールとセキュリティ設定

データベースに関しては、MariaDBがMySQLの完璧な代替となります。インストールは非常に簡単です。

sudo dnf install mariadb-server -y
sudo systemctl enable --now mariadb

デフォルトの状態ではMariaDBにルートパスワードが設定されておらず、脆弱な状態です。以下のセキュリティスクリプトの実行は絶対に省略しないでください。

sudo mysql_secure_installation

いくつか確認の質問が表示されます。**すべて「Y」(Yes)を選択することをお勧めします**。これにより、ルートパスワードの設定、匿名ユーザーの削除、リモートからのルートログインの禁止が行われます。

ステップ3:PHP 8.xと拡張モジュールのインストール

FedoraはPHPの提供も迅速です。画像処理やデータベース接続をスムーズに行うために、一般的なモジュールと一緒にインストールしましょう。

sudo dnf install php php-common php-mysqlnd php-gd php-xml php-mbstring -y

以下のコマンドで結果を確認します。

php -v

Apacheが新しい相棒であるPHPを「認識」するように、再起動を忘れないでください。

sudo systemctl restart httpd

ステップ4:SELinuxの設定 — 無効化せず、理解して使う

多くの人がsetenforce 0で回避しようとしますが、それはやめましょう!SELinuxはサーバーを守る強力な鎧です。デフォルトでは、攻撃を防ぐためにApacheがデータベースに接続することを制限しています。

ApacheがMariaDBと通信できるようにするには、以下のコマンドを実行します。

sudo setsebool -P httpd_can_network_connect_db on

/var/www/html/uploadsディレクトリに画像をアップロードする機能などがある場合は、適切なラベルを割り当てます。

sudo chcon -t httpd_sys_rw_content_t /var/www/html/uploads -R

この2つのコマンドだけで、高いセキュリティを維持したまま、SELinuxでよく発生するエラーの90%を解決できます。

ステップ5:info.phpファイルで動作確認

すべてが正しく連携しているか確認するために、簡単なテストファイルを作成します。

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

http://サーバーのIPアドレス/info.phpにアクセスしてください。PHPの設定情報が表示されれば、インストールは成功です!

警告: 確認が終わったら、すぐにsudo rm /var/www/html/info.phpコマンドでこのファイルを削除してください。サーバーの構成情報をハッカーに知られないようにするためです。

まとめ

FedoraへのLAMPスタック構築自体は難しくありません。重要なのはSELinuxとfirewalldをコントロールすることです。常に最新のパッケージが提供されるFedoraは、PHP 8.3や最新技術を体験するための絶好のプラットフォームです。実際のプロジェクトを運用する場合は、次のステップとしてバーチャルホストの設定や、Let’s EncryptによるSSL化を検討し、ユーザーデータを保護しましょう

Share: