ApacheのインストールからSSH接続までまとめ

サーバ

PCの入れ替えに伴いVM上のUbuntuに、①Apache install ②PHPモジュールinstall、③SSH install をしたので備忘録として残しておきます。

環境

メインPC Windows11 Home
VM VMware Workstation Pro 17.6.1 ※無料で使えます
ゲストOS Ubuntu24.04.1 LTS noble

目標

今回は、とりあえずApacheが使えるところまでを目標にします。
①Apacheのインストール
②ApacheでPHPを動作させる
③SSHの設定

経過

⓪ 準備編

次のコマンドで、APTを最新バージョンに引き上げます。

$ > sudo apt update
:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了        
アップグレードできるパッケージが 31 個あります。表示するには 'apt list --upgradable' を実行してください。
# まだプロジェクトがないので、全部を更新します
$ > sudo apt upgrade
:
ld by process 4177 (unattended-upgr)       
パッケージリストを読み込んでいます... 0%                                        パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
アップグレードパッケージを検出しています... 完了

ここまではおまじないです。

①Apacheのインストール

 次のコマンドでapacheをインストールします。

$ > sudo apt install apache2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了  
:
$ > apache2 -v
Server version: Apache/2.4.58 (Ubuntu)
Server built:   2024-10-02T12:40:51

ブラウザから「http://localhost」のアクセスするとこんな感じのホーム画面が表示され、Apacheが動作していることがわかります。

# apacheの管理コマンド
●停止
$ > sudo apachectl stop apache2

●起動、再起動
$ > sudo systemctl start apache2
$ > sudo systemctl restart apache2

●状態確認
$ > systemctl ststus apache2
  apache2.service - The Apache HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: >
     Active: active (running) since Thu 2024-12-12 23:15:02 JST; 1min 11s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 18151 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/S>
   Main PID: 18154 (apache2)
      Tasks: 55 (limit: 4558)
     Memory: 5.3M (peak: 5.6M)
        CPU: 20ms
     CGroup: /system.slice/apache2.service
             ├─18154 /usr/sbin/apache2 -k start
             ├─18156 /usr/sbin/apache2 -k start
             └─18157 /usr/sbin/apache2 -k start
  # Active: active (running) になっていれば起動中

②ApacheでPHPを動作させる

 次のコマンドでPHPモジュールをインストールします。

$ > sudo apt install php libapache2-mod-php
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了
:

# php は既に入っていたのかな?
$ > php -v
PHP 8.3.6 (cli) (built: Sep 30 2024 15:17:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies

次は、ApacheにPHPモジュールを登録します。

$ > sudo a2enmod php8.3
Considering dependency mpm_prefork for php8.3:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.3:
Module php8.3 already enabled

# 設定ができたので、Apacheを再起動します
$ > sudo systemctl restart apache2

次はテストプログラムを配置します。

$ > cd /var/www/html/
/var/www/html$ > sudo nano test.php

test.phpの内容はこんな感じにしました。

<?php
phpinfo();
?>

nanoエディタでは、 Ctrl + S (保存)、Ctrl + X(終了)を忘れずに。

/var/www/html$ > ll
-rw-r--r-- 1 root root 10671 12月 12 23:07 index.html
-rw-r--r-- 1 root root    21 12月 12 23:38 test.php  # ←まだ実行権限がついていない

# sudo nanoで作成したファイルはパーミッションの変更にsudoが必要
/var/www/html$ > sudo chmod 755 test.php 

/var/www/html$ > ll
-rw-r--r-- 1 root root 10671 12月 12 23:07 index.html
-rwxr-xr-x 1 root root    21 12月 12 23:38 test.php* # ←実行権限がついた

ブラウザから「http://localhost/test.php」を呼び出すとこんな感じです。

これでPHPも呼び出せるようになりました。

③SSH接続できるようにする

WindowsからVM上のUbuntuにSSHで接続させるために、UbuntuにSSHをインストールします。

$ > sudo apt install openssh-server 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了
:

# バージョンを確認
$ > ssh -V          # ←Vは大文字
OpenSSH_9.6p1 Ubuntu-3ubuntu13.5, OpenSSL 3.0.13 30 Jan 2024

#インストール直後はサーバは起動していません
$ >  sudo systemctl status ssh
○ ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: ena>
     Active: inactive (dead)
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
lines 1-6/6 (END)

# 次のコマンドで有効にします
$ > sudo systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable ssh
Created symlink /etc/systemd/system/sshd.service → /usr/lib/systemd/system/ssh.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /usr/lib/systemd/system/ssh.service.
$ > sudo systemctl start ssh

# ステータスを確認すると起動していることが確認できる
$ > sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enab>
     Active: active (running) since Thu 2024-12-12 23:55:45 JST; 8s ago # active (running)なら起動
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)

# サーバのIPアドレス確認
$ > hostname -I 
192.168.254.128

Windows側からSSHサーバを呼び出す

WindowsのPowerShellから次のコマンドでubuntuのSSHサーバを呼び出します。

<windows powershell>
PS C:\> ssh kirabbit@192.168.254.128
The authenticity of host '192.168.254.128 (192.168.254.128)' can't be established.
ED25519 key fingerprint is SHA256:GhnU8x190CP0P4uCSziSHVdVy/0Er**********.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes
Warning: Permanently added '192.168.254.128' (ED25519) to the list of known hosts.
Connection closed by 192.168.254.128 port 22

# 初回接続時には、「この接続元のキーを信用しますか?」などと聞かれるので、「yes」と入力します。
PS C:\> ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\***/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase): (何も入れずにエンター)
Enter same passphrase again:  (何も入れずにエンター)
Your identification has been saved in C:\Users\****/.ssh/id_ed25519
Your public key has been saved in C:\Users\****/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:heaglGB9ImWLNg+BHhj************** ****@*****
The key's randomart image is:
+--[ED25519 256]--+
|+o*oo            |
+----[SHA256]-----+

# 今回はローカル環境で作っていますので、パスワードは「なし」にしました
# パスワードを設定しなくても、秘密鍵と公開鍵での暗号化はされています

 作成した公開鍵は、
  C:\Users\ユーザ名.ssh\id_ed25519.pub
に出力されますのでメモ帳で開いて、この内容を記録しておいてください。
 私の環境では、
   ”ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKreR+N4******************************
   username@servername”
このような値ができていました。
 次は、Ubuntu に戻って、この公開鍵を登録します。

<ubuntu>
# ホームディレクトリに公開鍵の保存フォルダを作り、鍵を登録します
$ cd ~
~$ mkdir -p ~/.ssh
~$ chmod 700 ~/.ssh
~$ echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKreR+N4******************************
   username@servername" >> ~/.ssh/authorized_keys
~$ chmod 600 ~/.ssh/authorized_keys 

これで、公開鍵が登録できました。
Windowsから次のコマンドでログインできれば成功です。

<windows>
PS C:\> ssh kirabbit@192.168.254.128       # ubuntのログインユーザ名@ubuntuのIP
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-49-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

~$  pwd
/home/****

# パスワードがなくてもログインできていれば成功です。

終わりに

今回はApacheのインストールからSSHによるログインまでを書きました。
たまにしかやらないので、備忘録がないと忘れてしまうのです。
次回はもっと楽にできるといいなと思っています。