Webサーバーを立ててページを表示する(Nginx/Apache)

[更新: 2026年11月12日]

さくらのVPSに、Webサーバー(NginxまたはApache)をインストールして、ブラウザーからページを表示するまでの手順を記載します。
SSHで接続できる状態から、Webサーバーのインストール、通信の許可、表示の確認、ページの書き換えまでを、順に説明します。
本文書は、標準OSのUbuntu 24.04、Rocky Linux 10を対象としています。OSによって、コマンドや、ファイルの場所が異なる部分は、並べて記載しています。お使いのOSと、選んだWebサーバーの手順を、ご覧ください。

事前情報

あらかじめ用意するもの

Webサーバーを選ぶ

NginxとApacheは、どちらも広く使われているWebサーバーです。本文書では、同じ流れの手順で、どちらも設定できます。
どちらか1つを選んで、インストールしてください。2つを同時に起動すると、80番ポートが重複して、後から起動した方がエラーになります。

Nginx

Apache

特徴

軽量で、同時接続が多い場合に向いています。
アプリケーションの前段に置く(リバースプロキシ)用途でも、よく使われます。
機能が豊富で、 .htaccess でフォルダーごとの設定ができます。
PHPのサイトなどを、従来の構成で動かす場合によく使われます。

パッケージ名(Ubuntu)

nginx

apache2

パッケージ名(Rocky Linux)

nginx

httpd

迷った場合

こちらをおすすめします

.htaccess を使う製品などを利用する場合

この手順で設定する内容

項目

内容

公開するポート

TCP 80番(HTTP)

ページを置くフォルダー

OSとWebサーバーによって異なります(Step7で説明します)

Note

この手順では、HTTP(80番)でページを表示します。HTTPS(443番)に対応する場合は、独自ドメインとSSL証明書が必要です。
SSL証明書の導入には、スタートアップスクリプトの Let's Encrypt をご利用いただけます。

手順

Step1. SSHでサーバーに接続する

お手元のPCから、管理ユーザーでSSHの接続を行います。接続の方法は サーバー作成後の最初の手順(SSH接続から初期設定まで) をご参照ください。

Ubuntuの場合
$ ssh -i ~/.ssh/id_rsa ubuntu@XXX.XXX.XXX.XXX
Rocky Linuxの場合
$ ssh -i ~/.ssh/id_rsa rocky@XXX.XXX.XXX.XXX

Step2. Webサーバーをインストールする

お選びのOSとWebサーバーのコマンドを、実行します。

Ubuntu・Nginxの場合
$ sudo apt update
$ sudo apt install -y nginx
Ubuntu・Apacheの場合
$ sudo apt update
$ sudo apt install -y apache2
Rocky Linux・Nginxの場合
$ sudo dnf install -y nginx
Rocky Linux・Apacheの場合
$ sudo dnf install -y httpd

Note

Ubuntuでは、インストールが完了すると、Webサーバーは自動的に起動し、サーバーを再起動したときにも、自動的に起動する設定になります。
Rocky Linuxでは、インストールしただけでは、Webサーバーは起動しません。次のStep3で、起動と、自動起動の設定を行います。

Step3. Webサーバーを起動して、状態を確認する

Rocky Linuxの場合は、Webサーバーを起動し、サーバーの起動時に自動で起動するように設定します。Ubuntuの場合は、この手順は不要です。

Rocky Linux・Nginxの場合
$ sudo systemctl enable --now nginx
Rocky Linux・Apacheの場合
$ sudo systemctl enable --now httpd

次のコマンドで、起動の状態を確認します。

Nginxの場合(Ubuntu・Rocky Linux共通)
$ systemctl is-active nginx
active
$ systemctl is-enabled nginx
enabled
Ubuntu・Apacheの場合
$ systemctl is-active apache2
active
$ systemctl is-enabled apache2
enabled
Rocky Linux・Apacheの場合
$ systemctl is-active httpd
active
$ systemctl is-enabled httpd
enabled
active は、現在起動していることを、 enabled は、サーバーの起動時に自動で起動することを示します。
80番ポートで通信を待ち受けているかは、次のコマンドで確認できます。
Nginxの場合(Ubuntu・Rocky Linux共通)
$ ss -tlnp | grep ":80"
LISTEN 0      511          0.0.0.0:80        0.0.0.0:*
LISTEN 0      511             [::]:80           [::]:*
Apacheの場合
$ ss -tlnp | grep ":80"

Apacheでは、表示の形式がOSによって異なりますが、 :80 で待ち受けている行が表示されれば問題ありません(Ubuntuでは 0.0.0.0:80 、Rocky Linuxでは *:80 と表示されます)。

Step4. サーバーの中から表示を確認する

まず、サーバーの中から、ページを取得できるかを確認します。

$ curl -s -o /dev/null -w "%{http_code}\n" http://localhost/
200

200 と表示されれば、Webサーバーは正常に動作しています。

Note

Rocky Linux・Apacheでは、ページを置く前の状態( /var/www/html が空の状態)では、 403 と表示されます。これは異常ではなく、Apacheの初期のテストページが、 403 の応答で返されるためです。
403 が表示されても、Step6のブラウザーで、テストページが表示されることを確認してください。ページを置いた後( Step7. ページを書き換える )は、 200 になります。

Step5. 通信を許可する

インターネット側からWebサーバーに接続するためには、パケットフィルターと、OS内のファイアウォールで、80番ポートを許可します。

パケットフィルターで許可する

さくらのVPSのパケットフィルターは、初期状態では、SSH(22番ポート)以外の通信を許可していない場合があります。
そのままでは、インターネット側からWebサーバーに接続できないため、80番ポートを許可します。
  1. コントロールパネルで、対象のサーバーのパケットフィルターの設定を開きます。

  2. TCPの80番(HTTP)を許可するルールを追加します。

  3. 設定を保存します。

設定の画面と手順は、 パケットフィルター をご参照ください。

OS内のファイアウォールで許可する

標準OSのUbuntu 24.04、Rocky Linux 10では、OS内のファイアウォール(ufw、firewalld)は、初期状態で有効になっていません。この場合、パケットフィルターで許可すれば、通信できます。
OS内のファイアウォールを有効にしている場合は、そちらでも、80番ポートを許可してください。
Ubuntu(ufw)の場合
$ sudo ufw allow 80/tcp
Rocky Linux(firewalld)の場合
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-services
http ssh

Note

firewalldを有効にしていて、 http を許可していない場合は、パケットフィルターで80番を許可していても、外部から接続できません。

両者の違いは コントロールパネルとOS内の設定の違い を、firewalldとufwの設定方法は、 Firewalldの設定方法 、 ufwの設定方法 をご参照ください。

Step6. ブラウザーで表示を確認する

お手元のPCのブラウザーで、次のURLを開きます。

http://XXX.XXX.XXX.XXX/

次のタイトルのページが表示されれば、Webサーバーの公開は完了です。

OSとWebサーバー

表示されるページのタイトル

Ubuntu・Nginx

Welcome to nginx!

Ubuntu・Apache

Apache2 Ubuntu Default Page: It works

Rocky Linux・Nginx、Apache

HTTP Server Test Page powered by: Rocky Linux

Note

ブラウザーによっては、アドレスが https:// で始まるものに自動で補完されることがあります。表示されない場合は、アドレスの先頭に http:// を付けて開いてください。

表示されない場合は、 Webサイトが外部から表示されない場合の確認手順 をご参照ください。

Step7. ページを書き換える

ページを置くフォルダーは、OSとWebサーバーによって異なります。

OSとWebサーバー

ページを置くフォルダー

Ubuntu・Nginx、Apache

/var/www/html

Rocky Linux・Nginx

/usr/share/nginx/html

Rocky Linux・Apache

/var/www/html

次のコマンドで、 index.html を作成します。フォルダーは、管理者権限(root)のため、 sudo を付けて実行します。

Ubuntu・Nginx、Apacheの場合
$ echo "<h1>Hello</h1>" | sudo tee /var/www/html/index.html
Rocky Linux・Nginxの場合
$ sudo rm /usr/share/nginx/html/index.html
$ echo "<h1>Hello</h1>" | sudo tee /usr/share/nginx/html/index.html
Rocky Linux・Apacheの場合
$ echo "<h1>Hello</h1>" | sudo tee /var/www/html/index.html

ブラウザーで、Step6と同じURLを再読み込みすると、作成したページが表示されます。

Note

Rocky Linux・Nginxの /usr/share/nginx/html/index.html は、OSのテストページ( /usr/share/testpage/index.html )へのリンクです。
上記のとおり、先にリンクを削除してから index.html を作成してください。削除せずに tee で書き込むと、リンク先のテストページが書き換わります。

Note

Ubuntu・Nginxでは、初期状態のページは /var/www/html/index.nginx-debian.html です。 index.html を置くと、初期状態のページよりも優先して表示されます。
Ubuntu・Apacheでは、初期状態の index.html が、上書きされます。

自分で作成したHTMLファイルなどをアップロードする場合は、次の点にご注意ください。

  • ファイルは、上の表のフォルダーに置きます。ファイル名を index.html にすると、URLにファイル名を付けなくても表示されます。

  • フォルダーに sudo なしで書き込めるようにする場合は、フォルダーの所有者やアクセス権限を、お客様にて適切に設定してください。

設定ファイルとログ

Webサーバーの設定ファイルとログの場所は、次のとおりです。

項目

Ubuntu・Nginx

Ubuntu・Apache

Rocky Linux・Nginx、Apache

設定ファイル

/etc/nginx/nginx.conf
/etc/apache2/apache2.conf
Nginx: /etc/nginx/nginx.conf
Apache: /etc/httpd/conf/httpd.conf

サイトごとの設定

/etc/nginx/sites-available/default
/etc/apache2/sites-available/000-default.conf
Nginx: /etc/nginx/conf.d/
Apache: /etc/httpd/conf.d/

アクセスログ

/var/log/nginx/access.log
/var/log/apache2/access.log
Nginx: /var/log/nginx/access.log
Apache: /var/log/httpd/access_log

エラーログ

/var/log/nginx/error.log
/var/log/apache2/error.log
Nginx: /var/log/nginx/error.log
Apache: /var/log/httpd/error_log

Note

Rocky Linuxのログは、 /var/log/nginx などのフォルダーが、管理者権限(root)でのみ参照できます。参照するときは、 sudo を付けて実行してください。

設定を変更した後は、設定の文法を確認してから、Webサーバーを再読み込みします。

Nginxの場合(Ubuntu・Rocky Linux共通)
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl reload nginx
Ubuntu・Apacheの場合
$ sudo apache2ctl configtest
Syntax OK
$ sudo systemctl reload apache2
Rocky Linux・Apacheの場合
$ sudo apachectl configtest
Syntax OK
$ sudo systemctl reload httpd

完了の確認

次の項目を確認してください。

  • systemctl is-active の結果が active になっている(Step3で確認します)

  • パケットフィルターで、TCPの80番が許可されている

  • OS内のファイアウォールを有効にしている場合は、80番(Rocky Linuxでは http )が許可されている

  • ブラウザーで http:// から始まるURLを開くと、ページが表示される

次の手順