忘備録 > サーバー構築6

自宅サーバー構築6

Linuxによるサーバー構築メモ6

 Intel® NUC キット BOXNUC7CJYH / Ubuntu 20.04LTS の大阪サーバーが OS サポートが切れるので
 Intel® NUC キット BXNUC10I5FNHに 2TB の M.2 SSDを搭載して、Ubuntu 24.04LTS をインストールし後継機とする。

※ 最終更新:2025/06/08 

Ubuntu 24.04LTS server

Ubuntu 24.04 LTS インストール

ストレージ容量拡張

 Ubuntu インストール後、論理パーティションをストレージいっぱいまで拡張する

アップデート

net-tools をインストール

ufw(ファイアウォール)設定

日時設定(timesyncd)

SSHサーバー

Ubuntu24.04では、インストール時にサーバーをインストールできる

sambaサーバー

LAMPサーバ (Linux Apache MySQL PHP)

tasksel にはないので個別にインストール

Apache2 (Webブラウザ)

ドキュメントルートを/var/www/htmlから変更せずに使用する場合。

404,401エラーのリダイレクトを可能にする

PHP8 設定

MySQL設定

事前準備

MySQL の設定

phpmyadmin (MySQLをWebから管理)

webmin (Webブラウザでの管理)

PHP ダウングレード(8.3 → 7.4)

 「puliwiki 1.5.2」が PHP8.3 に対応できないようなので、PHP7.4 にダウングレードする
 参考:Ubuntu 20.04にPHPを複数インストールして切り替える方法(PPA・apt)
    PHPのバージョンをダウングレードする [PHP8.0->PHP7.4]

$ php -v
PHP 7.4.33 (cli) (built: May  9 2025 06:45:02) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies

コンテンツ移行(pukiwikiサイトの場合)

「固定IPアドレス」を設定する

 参考:IPアドレスの固定

Let's EncryptのSSL/TSLサーバ証明書の取得と更新設定

let's encrypt 証明書 マシン移設

 参考:サーバー移転(引越し)でLet’s Encrypt 「SSL/TLSサーバ証明書」はどうする?

Let's Encryptサーバ証明書の自動更新

サイトSSL化

Apache2 の設定

  1. SSLに関するモジュールを有効化する
    $ sudo a2enmod ssl
  2. 設定ファイルを編集 (以下修正箇所)
    $ sudo vi /etc/apache2/sites-available/default-ssl.conf
    
     (管理者のメールアドレスへ修正)
     ServerAdmin = izutsum@venus.dti.ne.jp
    
     (ルートディレクトリとして公開するディレクトリのパスへ修正)
     DocumentRoot = /var/www/html
    
     (取得したサーバ証明書と公開鍵のパスに変更)
     SSLCertificateFile      /etc/letsencrypt/live/izutsu.aa0.netvolante.jp/cert.pem
    
     (取得した秘密鍵のパスに変更)
     SSLCertificateKeyFile   /etc/letsencrypt/live/izutsu.aa0.netvolante.jp/privkey.pem
    
     (コメント解除して取得した中間証明書のパスに変更)
     SSLCertificateChainFile /etc/letsencrypt/live/izutsu.aa0.netvolante.jp/chain.pem
  3. サイト設定を有効化する
    $ sudo a2ensite default-ssl
  4. Apache2 の再起動
    $ sudo systemctl restart apache2
  5. ブラウザより「https://izutsu.aa0.netvolante.jp」に接続。WEBページが表示されれば完了

HTTP接続に対してHTTPSへのリダイレクトをかける

  1. Apache2のRewriteEngine はオプションなので、有効にしないと動作しない

    ● 現在の状態を確認する
    $ sudo ls /etc/apache2/mods-enabled
    access_compat.load  authn_core.load  authz_user.load  deflate.load  filter.load       mpm_prefork.load  php7.4.load      setenvif.load       status.conf
    alias.conf          authn_file.load  autoindex.conf   dir.conf      mime.conf         negotiation.conf  reqtimeout.conf  socache_shmcb.load  status.load
    alias.load          authz_core.load  autoindex.load   dir.load      mime.load         negotiation.load  reqtimeout.load  ssl.conf
    auth_basic.load     authz_host.load  deflate.conf     env.load      mpm_prefork.conf  php7.4.conf       setenvif.conf    ssl.load
    ● mod_rewrite を有効にする
    $ sudo a2enmod rewrite
    Enabling module rewrite.
    To activate the new configuration, you need to run:
      systemctl restart apache2
    ● Apache2の再起動
    $ sudo systemctl restart apache2
    ● 有効化を確認する(rewrite.load を確認)
    $ sudo ls /etc/apache2/mods-enabled
    access_compat.load  authn_core.load  authz_user.load  deflate.load  filter.load       mpm_prefork.load  php7.4.load      setenvif.conf       ssl.load
    alias.conf          authn_file.load  autoindex.conf   dir.conf      mime.conf         negotiation.conf  reqtimeout.conf  setenvif.load       status.conf
    alias.load          authz_core.load  autoindex.load   dir.load      mime.load         negotiation.load  reqtimeout.load  socache_shmcb.load  status.load
    auth_basic.load     authz_host.load  deflate.conf     env.load      mpm_prefork.conf  php7.4.conf       rewrite.load     ssl.conf
  2. 設定ファイルに下記のように 3行を Virtualhost 内最下部に追記
    $ sudo vi /etc/apache2/sites-available/000-default.conf
    
    <VirtualHost *:80>
        :
        :
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </VirtualHost>
  3. Apache2の再起動
    $ sudo systemctl restart apache2

(参考)LAN内から自宅公開Webサーバーにアクセス

 LAN 内から公開webサーバーにアクセスする場合、名前解決ができない。YAMAHAルーターではそのための設定ができるが残念ながら徳島のNTTルーターではその機能がない。
とりあえず「hosts」ファイルを編集して対応する。

更新履歴

 

参考資料