ウェブサーバーという用語は、ハードウェアとソフトウェアの両方、または両方が連携して動作することを指す場合があります。このガイドでは、ソフトウェア側に焦点を当て、Linuxボックス上でウェブサイトをホストする方法を見ていきます。
A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.
A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.
動的コンテンツは、頻繁に変更されるか常に更新されるコンテンツです。動的コンテンツを提供するためには、ウェブサーバーはデータベースサーバーとサーバーサイドのスクリプト言語とも連携する必要があります。
このガイドでは、無料でLinuxシステム上にウェブサイトをホストするためにApacheウェブサーバーを設定する方法を示します。
目次
要件
このガイドに従うには、以下が準備されていることを確認してください。
- A dedicated Public IP address can be obtained from your ISP.
- A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.
いくつかのガイドをチェックして、Linuxサーバーのインストールに関する洞察を得てください。
- Debian 11 (Bullseye) の最小限のサーバーのインストール方法
- Debian 10 (Buster) の最小限のサーバーのインストール方法
- Ubuntu 20.04 サーバーのインストール方法
- Rocky Linux 9 サーバーのインストール方法
- AlmaLinux 9 サーバーのインストール方法
- 無料で RHEL 9 をインストールする方法
また、LAMPサーバーのインストールが必要です。これは Linux、Apache、および MySQL(これはまた、MariaDBになる場合もあります)の頭字語です。Linuxで LAMPスタックをインストールする方法に関するいくつかのガイドを以下に示します。
- Debian 10 サーバーに LAMP をインストールする方法
- Ubuntu 20.04 に LAMP スタックをインストールする方法
- Rocky Linux 9/8 に LAMP をインストールする方法
- AlmaLinux 9/8 に LAMP スタックをインストールする方法
- RHEL 9/8 に LAMP をインストールする方法
- Linux サーバーでウェブサイトをホストする方法
このセクションでは、ウェブサーバーの主要なコンポーネントについて説明します。
Apache とは何ですか?
Apacheは、Apache License 2.0の下でリリースされている人気のある無料かつオープンソースのクロスプラットフォームのウェブサーバーです。これは、ウェブサーバー市場シェアの約32.2%を占める最も広く使用されているウェブサーバーの1つです。
利用可能なApacheの最新バージョンを確認し、それがサーバーにインストールされているかどうかを確認するには、次のコマンドを実行してください:
# apt-cache policy apache2 (On Debian-based OS)
出力から、インストール済みのパラメーター(none)が表示され、まだインストールされていないことが示されます。また、この場合に提供されている最新バージョンに関するDebian / Ubuntuリポジトリの情報も取得できます。この場合、バージョンは2.4.52です。

現代のRed Hatディストリビューションでは、次のようにApacheの利用可能性を確認することができます。dnfコマンドを使用します。
# dnf search httpd

上記の出力から、Apache httpdパッケージがダウンロード可能であることがわかります。システムにApacheがインストールされていない場合は、次のようにして‘apt‘または‘dnf‘パッケージマネージャーを使用してApacheをインストールしてください。
Debianベースのシステムで:
$ sudo apt install apache2 -y $ sudo systemctl start apache2 $ sudo systemctl enable apache2 $ sudo systemctl status apache2

Red Hatベースのシステムで:
# dnf install httpd -y # systemctl start httpd # systemctl enable httpd # systemctl status httpd

MariaDBとは何ですか?
A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.
DebianベースのシステムでMariaDBをインストールするには:
$ sudo apt install mariadb-server mariadb-client -y $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl status mariadb
次の出力は、MariaDBがインストールされ、期待どおりに実行されていることを示しています。

RHELベースのシステムでMariaDBをインストールするには:
# dnf install mariadb-server -y # systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb

PHPとは何ですか?
PHPはPHP Hypertext Preprocessorの再帰的な頭文字略語で、ウェブ開発に主に使用される一般的な目的のスクリプティング言語です。
DebianベースのシステムでPHPをインストールするには:
$ sudo apt update $ sudo apt upgrade $ sudo apt install ca-certificates apt-transport-https software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt update $ sudo apt install php8.0 libapache2-mod-php8.0
RHELベースのシステムでPHPをインストールするには、まずEPELリポジトリを有効にする必要があります。
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9] $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
次に、RHELベースのシステムで最新バージョンのPHPを提供するRemiリポジトリを有効にします。
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8] $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
EPELとRemiリポジトリがシステムで有効になったら、次のようにPHPをインストールできます。
# dnf module list php # dnf module enable php:remi-8.0 -y # dnf install php php-cli php-common
すべてのコンポーネントがインストールされたので、WordPress CMSを使用してウェブサイトを構築できます。WordPress CMSは、HTML、CSS、PHP、Javascriptなどのウェブデザイン言語の知識がなくても、ユーザーがウェブサイトの開発と管理を簡単に行えるソフトウェアです。
LinuxでWordPressを使用してシンプルなウェブサイトを作成する
デモンストレーションのために、WordPressをDebian 11およびRHEL 9システムにインストールし、サンプルウェブサイトを提供します。これは、あなたの好みに合わせてさらにカスタマイズできます。
このセクションでは、LAMPスタックが既にインストールされていることを前提としています。
ステップ1: 追加のPHPモジュールをインストールする
以下に示すように、WordPressに必要な追加のPHPモジュールをインストールして進めます。
PHPモジュールをインストールするには、Debianベースのシステムで:
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
PHPモジュールをインストールするには、RHELベースのシステムで:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
ステップ2: WordPressのためのデータベースを作成する
PHPで書かれたWordPressは、データ駆動型の無料でオープンソースのコンテンツ管理システムです。データベースはWordPressの不可欠な要素です。
データベースは、ブログの投稿、ページ、カテゴリ、コメント、テーマ、プラグイン、およびWordPressの設定ファイルをすべて保存するために使用されます。
WordPressのためのデータベースを作成するには、MariaDBデータベースサーバーにログインします。
$ sudo mysql -u root -p
次に、以下に示すようにデータベースを作成します。
CREATE DATABASE wordpress_db;
次に、データベースユーザーを作成し、そのユーザーにデータベース上ですべての権限を割り当てます。
GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
そして最後に、変更を保存し、データベースを終了するためにグラントテーブルを再読み込みします。
FLUSH PRIVILEGES; QUIT;
ステップ3: WordPressをダウンロード
データベースが整ったら、最新のWordPress tarballファイルをwgetコマンドを使用してダウンロードしてください。
$ wget https://wordpress.org/latest.tar.gz
ダウンロードが完了したら、tarコマンドを使用して圧縮ファイルを解凍します。
$ tar -xvzf latest.tar.gz
このコマンドは、wordpressという名前のフォルダにファイルの内容を抽出します。フォルダをドキュメントルートに移動またはコピーしてください。Apacheウェブサーバーの
$ sudo mv wordpress/ /var/www/html/
次に、以下のアクセス許可と所有権を割り当てます。
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
ステップ4: WordPressのApache仮想ホストの作成
仮想ホストという用語は、単一のサーバーで複数のウェブサイトをホストする実践を指します。単一のサーバーで複数のウェブサイトをホストする場合、各ウェブサイトの仮想ホストを作成する必要があります。
この場合、WordPressウェブサイトの仮想ホストを次のように作成する必要があります。
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian] # vi /etc/httpd/conf/httpd.conf [On RHEL]
以下のコードを貼り付けて、仮想ホストを定義します。 ServerNameディレクティブでは、サーバーのIPアドレスまたは完全修飾ドメイン名を指定し、それが専用のパブリックIPアドレスを指すようにします。
<VirtualHost *:80> ServerAdmin admin@your_domain.com DocumentRoot /var/www/html/wordpress ServerName 192.168.0.100 <Directory /var/www/html/wordpress> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
変更を保存してファイルを終了します。
データベースに接続するには、いくつかの追加の変更が必要です。したがって、wordpressフォルダに移動します。
$ cd /var/www/html/wordpress/
次に、wp-config.phpファイルをwp-config-sample.phpファイルの内容で更新します。
$ cp wp-config-sample.php wp-config.php $ sudo nano wp-config.php
次に、データベースの詳細を指定して、データベース名、dbユーザー名、およびパスワードディレクティブを更新します。
次に、Debianベースのシステムで新しいWordPressサイトを有効にします。
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf $ sudo a2ensite wordpress $ sudo a2enmod rewrite $ sudo a2dissite 000-default
変更を反映させるために、Apacheを再起動します。
$ sudo systemctl restart apache2 [On Debian] # systemctl restart httpd [On RHEL]
ステップ4:ブラウザでWordPressのセットアップを完了する
セットアップを完了するには、次に示すウェブサーバーのIPアドレスにブラウズします:
http://server-ip
WordPressのウェルカムページが表示されるはずです。お好みの言語を選択して、「続行」をクリックします。

次に、サイトの詳細を入力します。

その後、「WordPressをインストール」をクリックしてWordPressのセットアップを完了します。

すべてがうまくいった場合、インストールが成功したことの確認が表示されます。ログインするには、「ログイン」ボタンをクリックします。

これにより、WordPressダッシュボードに移動します。この時点で、さまざまなテーマを試して、サンプルのウェブサイトの外観を向上させることができます。

ステップ5:ポートフォワーディングを使用してWordPressにアクセス
Linuxシステムから自宅やローカルエリアネットワーク(LAN)でウェブサーバーを自己ホストしている場合、次のステップは、外部ユーザーまたはLAN(ローカルエリアネットワーク)外のユーザーがそれにアクセスできるようにすることです。それがポートフォワーディングが必要になる場所です。
ポートフォワーディング、またはポートマッピングとも呼ばれるこの技術は、外部デバイスがインターネット経由でプライベートネットワーク内のサーバーやリソースにアクセスできるようにするものです。そのアイデアは、外部デバイスが内部IPアドレスと通信できないため、外部からプライベートネットワークにアクセスすることが不可能であるためです。
あなたのセットアップでは、ウェブサーバーがリッスンしているポート(ほとんどの場合、HTTPトラフィックのポート80またはHTTPSのポート443)とウェブサーバーの静的なプライベートIPアドレスを転送する必要があります。
したがって、ルーターにログインしてポート転送セクションに移動します。この例では、DLinkルーターを使用して、ウェブサーバーのポート(80と443)およびプライベートIP(192.168.0.100)をISPによって割り当てられた専用IPパブリックIPに転送します。
あなたの場合は、ウェブサーバーのポートとプライベートIPを指定して変更を保存します。

変更を保存するには、ルーターを再起動する必要がある場合があります。それでは、そのようにしてください。
ポートフォワーディングが正しく行われると、公開IPアドレスを使用してネットワーク外からウェブサーバーにアクセスできるようになります。
結論
このガイドでは、Linuxボックス上でApacheを使用してウェブサーバーを自己ホストする方法を説明しました。このガイドに対するフィードバックをお待ちしています。