自宅サーバー構築

使用機器
Raspberry Pi 3B

使用OS
Raspberry Pi OS (64bit)

ドメイン取得

ドメイン名取得(MyDNS.JP編)※無料—koseki.pgw.jp

ドメイン名取得(ぷらら利用者オプション330円)——koseki.plala.jp

ドメイン名取得(f5,si)※無料—-koseki3.f5.si

(手動更新の場合上記をクリックし、ログインして更新)

ホームページ—-wordpress

webサーバー—-apache2

FTPクライアントソフト—–FileZilla   (使用するwindowsパソコンにインストール)
https://filezilla-project.org/download.php?type=client

ターミナルエミュレーター—–Tera Term 5   (使用するwindowsパソコンにインストール)
https://forest.watch.impress.co.jp/library/software/utf8teraterm/

Tera Termのコーディング(UTF-8)とラズパイの文字セット(日本語にするとEUC-JP)と合わないと文字化けするので合わせること(ラズパイ側でUTF-8にする)

テキストエディタ —–TeraPad     (使用するwindowsパソコンにインストール)
「TeraPad」無料のテキストエディター – 窓の杜 (impress.co.jp)

1 SDカードOS書き込み (SDカード読み取り機能付きのwindows端末からimager使用)
ダウンロード
https://www.raspberrypi.com/software/

CHOOSE OSは
RaspberyPi os(other)– 選択
RaspberyPi os(64-bit)– 選択
CHOOSE STORAGE—セットしたSDカード

2 Raspberry Piへセット
英語から日本語にする
画面左上ラズパイマークをクリック
下から3つ上Preferencesの
Raspberry Pi Configuration クリック
国,言語,時間,名前,パスワード等設定
interfaces はSSH–ON
文字セット—UTF-8
ログアウト(一番下)クリック—Rebootクリック

(fcitx-mozc, ssh, perl,はインストール済)

現在のIPアドレスを確認する。(DHCPのアドレス192.168.1.?となってるはず)
(メイン・メニュー(上のバー)の右にある二つの矢印アイコンの上にマウスを持っていき現在のIPアドレスを確認メモし現在のIPアドレス宛にサーバーからping飛ばし通ること)
コマンドライン端末(上左から4つ目LXTerminl)から現在のIPアドレス確認は—–ip a

以上でLinuxパソコンとして使用可能(かなり速度遅い)

3 IPアドレス固定へ
ルーター設定
使用ルーター —-PR-S300SE
固定IPアドレス—-192.168.1.120とする
詳細設定—-静的NAT設定—-ワンタッチ設定—-Webサーバを外部に公開するにチェック—-WebサーバのIPアドレスに192.168.1.120記入—-設定

ラズペリーパイOS設定
GUIで設定の場合
二つの矢印のアイコンをマウスで右クリック。
一番上のWireless & Wired Network Settings を選択。
出てきた設定画面のInterfaceの右にある項目の▼をクリック。
eth0選択。
必要な項目を手動で入力。
IPv4Address—192.168.120
Router—192.168.1.1
DNS Severs—192.168.1.1
入れ終わったら
Automatically configure empty option のチェックを外し
Apply、Closeを順に押す。
wlan0はoffにする。
再起動。
現在のIPアドレスを確認する(192.168.1.120)

ルーターからping 192.168.1.120 通ることを確認。

以降サーバー構築
以下ラズパイから,このページを表示させLXTerminlでsudoからコピペして行けば素人でもサーバーとしてうごくはず。
(コピペは全角半角に注意,特にスペース)

テキストエディタ作業の説明
LXTerminl使用(上のバー左から4つ目,黒)
$の時sudoから記入
$から#へ su – (sudo省略出来る)

vimエディターインストール
sudo apt-get -y install vim
(Viエディタはインストール済)

viコマンドの説明
(行番号表示 :set number)——- (:コロン忘れずに)
(インサート i )
(escで解除)
(書き込み終了 :wq )
(そのまま終了 :q )
インサートモードのコピペは編集の貼り付けを使用

上記はwindowsパソコンのTera Termから遠隔操作可能

ルートユーザーの利用
sudo passwd root
パスワード ……入力 (文字表示しない)

更新
sudo apt update
sudo apt upgrade

4 ftpサーバー (FileZilla Clientで使用)
sudo apt-get -y install vsftpd
sudo vi /etc/vsftpd.conf

:set number (行番号表示)
i         (インサートモード,一番下に黄色で挿入と出る)

コメント解除(頭の#削除)

(31行目 : コメント解除,書き込み許可)
write_enable=YES
(122, 123行目 : コメント解除して chroot 有効化)
chroot_local_user=YES
chroot_list_enable=YES
(chroot ディレクトリ配下の書き込み許可設定を追記)
allow_writeable_chroot=YES
(125行目 上記追加の場合126行目: コメント解除,chrootリスト指定)
chroot_list_file=/etc/vsftpd.chroot_list
(131行目 上記追加の場合132行目: コメント解除,ディレクトリごと一括での転送有効)
ls_recurse_enable=YES
(最終行へ追記 : chroot のルートディレクトリ指定)
local_root=/var/www/html

ESCを押し

:wq (書き込み終了)

4-1上の階層へ移動を許可するユーザーを 1 行記載

sudo vi /etc/vsftpd.chroot_list         (何も記載してない)

i   (インサートモード,一番下に黄色で挿入と出る)
下記を1 行記載

koseki

esc  (インサートモード解除,一番下の黄色の挿入が消える)
:wq(書き込み終了)

sudo systemctl restart vsftpd          (ftp再起動)

5 webサーバー
sudo apt-get -y install apache2
sudo systemctl daemon-reload
sudo chmod 777 /var/www/html             (パーミッション)

外部からテスト(http://www.cman.jp/network/support/port.html)—自分のグローバルIPアドレスとOK確認。 (グローバルアドレスで)

sudo systemctl status apache2.service
(確認– activ (running) となっていればok)

名前解決にDNSサーバーが未構築のため,使用するwindowsパソコンのhosts編集。
使用するwindowsパソコンのメモ帳を(右クリック)管理者として以下を実行。

ローカルディスク(C)—Windows—System32—Drivers—etc—hosts(すべてのファイル選択で表示)—開く
下記追加保存
192.168.1.120    koseki.plala.jp
192.168.1.120    koseki.pgw.jp
192.168.1.120    koseki3.f5.si

下記いずれかでデフォルトページ(Apache2 Debian Default Page)確認。
http://192.168.1.120
http://グローバルアドレス
hosts編集した端末からhttp://koseki.plala.jpかhttp://koseki.pgw.jpかhttp://koseki.f5.si

5-1バーチャルホスト用フォルダ作成
sudo mkdir /var/www/html/pgw                 (koseki.pgw.jpのホームディレクトリ)
sudo chmod 777 /var/www/html/pgw        (パーミッション)
sudo mkdir /var/www/html/plala         (koseki.plala.jpのホームディレクトリ)
sudo chmod 777 /var/www/html/plala   (パーミッション)
sudo mkdir /var/www/html/f5         (koseki.f5.siのホームディレクトリ)
sudo chmod 777 /var/www/html/f5   (パーミッション)

テスト用ページ作成 (koseki.pgw.jpの場合)
————————————————————————————————–
<html>
<body>
<div style=”width: 100%; font-size: 40px; font-weight: bold; text-align: center;”>
Virtual Host Test Page
koseki.pgw.jp
</div>
</body>
</html>
————————————————————————————————-
上記をテキストエディタTeraPadで作成(ファイル名index.html)しFileZilla FTP Clientからドキュメントフォルダ/var/www/html/pgwへアップロード
上記koseki.pgw.jpをkoseki.plala.jpに書き換え/var/www/html/plalaへアップロード。
上記koseki.pgw.jpをkoseki3.f5.siに書き換え/var/www/html/f5へアップロード。

5-2 バーチャルホストのドメイン設定(ファイル名virtual.host.confにした)

sudo vi /etc/apache2/sites-available/virtual.host.conf  (新規ファイル)

インサートモード(キーボードのi,一番下に黄色で挿入と出る)にし下記スクリプトをコピペ。    (インサートモードのコピペは編集の貼り付けを使用)


<VirtualHost *:80>

DocumentRoot /var/www/html/pgw
ServerName koseki.pgw.jp
ServerAdmin koseki@grape.plala.or.jp
ErrorLog /var/log/apache2/koseki.pgw.jp.error.log
CustomLog /var/log/apache2/koseki.pgw.jp.access.log combined

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/html/plala
ServerName koseki.plala.jp
ServerAdmin koseki@grape.plala.or.jp
ErrorLog /var/log/apache2/koseki.plala.jp.error.log
CustomLog /var/log/apache2/koseki.plala.jp.access.log combined

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /var/www/html/f5
ServerName koseki3.f5.si
ServerAdmin koseki@grape.plala.or.jp
ErrorLog /var/log/apache2/koseki3.f5.si.error.log
CustomLog /var/log/apache2/koseki3.f5.si.access.log combined

</VirtualHost>


ESC(インサートモード解除,一番下の黄色の挿入が消える)

:wq(書き込み終了)

sudo a2dissite 000-default   (000-default.conf停止)
sudo a2ensite virtual.host   (virtual.host.conf開始)
sudo systemctl reload apache2     (apache2に変更を加えたので再読み込み)
sudo service apache2 restart        (apache2の再起動)
sudo systemctl status apache2.service     (apache2の動作状態)
(確認– activ (running) となっていればok)

http://koseki.pgw.jp とhttp://koseki.plala.jp とhttp://koseki3.f5.siでテストページ確認。

(virtual.host.conf等新ファイル作成の場合、a2ensite virtual.hostで開始)
(a2dissite virtual.hostで停止  a2en–有効 a2dis–無効)

6 php
sudo apt-get -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring

sudo vi /etc/php/7.4/apache2/php.ini
:set number(行番号表示)
i   (インサートモード,一番下に黄色で挿入と出る)
(962行目,;コメント解除しタイムゾーン設定)
date.timezone = “Asia/Tokyo”

esc(インサートモード解除,一番下の黄色の挿入が消える)
:wq(書き込み終了)

sudo systemctl reload apache2
sudo systemctl restart apache2

テストページ作成

sudo echo ‘<?php phpinfo(); ?>’ > /var/www/html/pgw/info.php

(<?php phpinfo(); ?>の部分コピペ出来ないのでテキスト形式のコピペか手入力)

http://koseki.pgw.jp/info.php
(Web ブラウザーでテストページにアクセスして、正常にページが表示されれば OK。)

7 MariaDB(mysqlの改良版)データベース
sudo apt-get -y install mariadb-server
sudo mysql_secure_installation    (全てyes や パスワード入力)(パスワードは表示しないが大丈夫)

以下動作確認
sudo mysql -u root -p
MariaDB[(none)]>        (以下入力)
select user,host,plugin from mysql.user; (ユーザー名)
show databases; (テーブル)
select version();   (バージョンチェック)
exit (終了)

8 phpMyAdmin インストール  (データーベースを操作するツール)

sudo apt -y install phpmyadmin
(スペースで選択, Tabで決定,enterかスペースで実行)
phpMyAdmin を使用する Webサーバーソフトウェア(apache)を選択以下全て[Yes]でOK

phpmyadmin ユーザー用の MariaDB パスワードを設定
[Yes]
[はい]

sudo systemctl reload apache2

クライアント端末より操作
http://koseki.pgw.jp/phpmyadmin/かhttp://koseki.plala.jp/phpmyadminかhttp://koseki.f5.si/phpmyadminで
(ユーザー名 root パスワード … )
データベースへユーザー登録(pgw,plala,f5)
ユーザー名 1 pgw
項目全てチェックし実行終了したら
ユーザー名 2 plala
項目全てチェックし実行終了したら
ユーザー名 3 f5
項目全てチェックし実行終了。

9 自動更新

1 Mydns.jp

sudo crontab -e

2のvim選択

(以下の1行を追加して保存)
*/10 * * * * wget -q -O /dev/null http://mydns.jp のマスターID:mydns.jp のパスワード@www.mydns.jp/login.html

ドメイン名 koseki.pgw.jp
(mydns.jp のマスターID——–mydns******)
(mydns.jp のパスワード——–***********)

手動設定————–https://www.mydns.jp/login.html

2 f5.si

sudo crontab -e
(以下の1行を追加して保存)
*/10 * * * * wget -O DDNSNow_update.log “https://f5.si/update.php?domain=ユーザ名&password=パスワード”

f5.siに登録したユーザー名とパスワード

動作確認
systemctl status cron

sudo systemctl restart cron

10 wordpress

いとやんサイトのwordpress参照

(ダウンロードサイト)
https://ja.wordpress.org/download/
WordPress のインストール – サポートフォーラム

10-1 アップロード上限サイズ変更,1000Mへ変更の場合
sudo vi /etc/php/7.4/apache2/php.ini
(694行目 post_max_size = 1000M (デフォルト8M))
(846行目 upload_max_filesize = 1000M (デフォルト2M)
(849行目 max_file_upload = 100 (デフォルト20ファイル)

* リセット関係
systemctl daemon reload
systemctl restart apache2
systemctl restart ssh
systemctl restart cron

(Apt-getでインストールしたアプリをファイルごと削除)
sudo apt-get purge インストールしたアプリ

* その他
外部からのポートチェック
http://www.cman.jp/network/support/port.html
ポートにアクセス出来ても、入力情報 の (入力の逆引き または 正引き) が グローバルアドレスであること。
ipアドレス確認
https://www.ugtop.com/spill.shtml
Website Test
https://www.websitepulse.com/tools/website-test