自宅サーバー構築
使用機器
Raspberry Pi 3B
使用OS
Raspberry Pi OS (64bit)
ドメイン取得
ドメイン名取得(MyDNS.JP編)※無料—koseki.pgw.jp
ドメイン名取得(ぷらら利用者オプション330円)——koseki.plala.jp
ドメイン名取得(f5,si)※無料—-koseki3.f5.si
(手動更新の場合上記をクリックし、ログインして更新)
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
(ダウンロードサイト)
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