自宅サーバ
趣味で自宅サーバを運用しようとしています。
それにあたってのメモなどをまとめました。
目次
ページ外リンク
ページ内リンク
- BootImage管理用NFS
- XCP-ng Centerでの仮想マシン作成
- Ubuntu Serverのインストール
- rootアカウントの作成
- NFS設定
- BootImageをダウンロード
- XCP-ng CenterにBootImage読み込ませる
- Webサーバの構築
- Economizzerの構築
- メモ
- 単語
今やりたいこと
- DNSサーバ構築
- DHCPサーバ構築
- PXEサーバ構築
- 個人開発Webサーバのhttps化
- ELKスタック構築によるWebサーバアクセス管理
- OS開発
BootImage管理用NFS
用途
仮想マシンのブートイメージはNFSからISOを持ってくる方法しか知らないため、NFSを立てる。
XCP-ngをハイパーバイザーとして、UbuntuServerで立てる。
XCP-ng Centerでの仮想マシン作成
- XCP-ng CenterをPCにインストール
- New VM
- Template Ubuntu 20.04
- Name (例)"allgreen-boot"
- Installation Media "Ubuntu20-server.iso"
- Home Server Place the VM on this server
- CPU&Memory Num of vCPUs 2
- GPU
- Strage 20GB
- Network MAC autogenerated
- Finish
(ここで選択できるメディアを作るのが今回の目的)
Topology 1 socket with 2 cores per socket
Memory 1.0GB
Ubuntu Serverのインストール
- Language English
- Layout English
- Network connection Manual
- Proxy 空欄のまま、Done
- Mirror address そのまま
- Checking for installer update そのまま
- Guide strage configration そのまま*2
- Confrim action Continue
- Profile setup Your name:allgreen
- SSH Setup Install OpenSSH serverにチェック
- Snap チェックせずに進む
- Install complete!
Subnet:192.168.0.0/24
Address:192.168.0.53
Gateway:192.168.0.1
Name server:192.168.0.1
Serch domains:Empty
StaticでIPが出てればOK
Your servers name:allgreen-boot
Pick a user name:allgreen
Choose a password:@@@@@
rootアカウントの作成
NFS設定
- rootでlogin
- nfsをインストール
- exportsの設定を変更
root@allgreen-boot:~# apt install nfs-kernel-server
root@allgreen-boot:~# vi /etc/exports
#最終行に次を追加
#192.168.0.44から/nfsのアクセスを許可
/nfs 192.168.0.44/24 (rw)
root@allgreen-boot:~# mkdir /nfs
root@allgreen-boot:~# systemctl restart nfs-server
BootImageをダウンロード
root@allgreen-boot:~# mkdir /nfs/boot
root@allgreen-boot:~# cd /nfs/boot
root@allgreen-boot:~# wget http://cdimage.ubuntu.com/ubuntu/releases/20.04/release/ubuntu-20.04.2-live-server-arm64.iso
root@allgreen-boot:~# wget http://ftp.riken.jp/Linux/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso
XCP-ng CenterにBootImage読み込ませる
- New Strage
- Type ISO library > NFS ISO
- Name NFS ISO library(allgreen-boot)
- Location 192.168.0.53:/nfs/boot
- NFS ISO library(allgreen-boot)のStrageにISOがあることを確認
Webサーバの構築
CentOS7のインストール
Nginxのインストール
yum install epel-release
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum --enablerepo=epel install nginx
(起動)
systemctl enable nginx
systemctl start nginx
(FireWall設定)
sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --reload
IPにアクセスして仮ページが見られるか確認する。PHPのインストール
PHPのパッケージは必要に応じて変更する。
yum --enablerepo=remi-php74 install php php-fpm php-mbstring php-pdo php-mysqlnd php-mcrypt php-gd php-zip php-xml php-bcmath php-ldap
vi /etc/php-fpm.d/www.conf
user = nginx
***
group = nginx
cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
location / {
root /usr/share/nginx/html;
index index.php;
}
***
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
vi /usr/share/nginx/html/index.php
<?php
phpinfo();
?>
(起動)
systemctl enable php-fpm
systemctl start php-fpm
systemctl restart nginx
phpinfoが表示されているかを確認する。
FTPの設定
まだ動作未確認
yum install ftp
yum install vsftpd
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
listen=YES
listen_ipv6=NO
vi /etc/vsftpd/user_list
#rootでログインするためコメントアウト
#root
vi /etc/vsftpd/ftpusers
#rootでログインするためコメントアウト
#root
systemctl enable vsftpd
systemctl start vsftpd
firewall-cmd --permanent --zone=public --add-rich-rule "rule family="ipv4" service name="ftp" accept"
firewall-cmd --reload
コマンドプロンプトでftp 192.168.0.51よりrootでログインできるか確認する。Economizzerの構築
(注)まだ起動確認できてません。
Apache2のインストール
yum install httpd systemctl enable httpd systemctl start httpd firewall-cmd --add-service=http --zone=public --permanent firewall-cmd --reload コンフィグファイルは/etc/httpd/conf/httpd.conf ドキュメントルートは/var/www/html
PHPのインストール
yum install epel-release yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm yum --enablerepo=remi-php74 install php libapache2-mod-php php-mbstring php-xml php-curl php-mbstring php-dom php-gd php-zip libapache2-mod-phpが見つからない
MySQLのインストール
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql-community-server
Economizzerのインストール
メモ
CentOS
インストール済みパッケージの確認
MariaDBを例に示す。phpなど必要に応じて変更。
yum list installed | grep -i mariadb
サービスの起動,停止
root権限が必要。
Nginxを例に示す。
(起動)
systemctl start nginx
(停止)
systemctl stop nginx
(再起動)
systemctl restart nginx
(状態確認)
systemctl status nginx
(有効化)
systemctl enable nginx
(無効化)
systemctl disable nginx
ユーザの追加,削除
allgreenを例に示す。
(追加)
useradd allgreen
オプション
-m ホームディレクトリの設定
ホームディレクトリは一般的に/home直下な気がする。
(削除)
userdel allgreen
(切り替え)
環境は変えない場合
su allgreen
環境を帰る場合
su - allgreen
Nginx
エラーログ
/var/log/nginx/error.logにエラーログが書き込まれる。
次のように使うのが一般的(?)。
tail -f /var/log/nginx/error.log
Apache
ポートごとにドキュメントルートを変更する
Ubuntu /etc/apache2/ports.confを変更する。 45800はアサインされてはいないとはいえ、登録ポートなので、避けるが吉。
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 45800
DocumentRoot "/var/www/html"
Listen 443
Listen 443
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
PHP
バージョン確認
php -v
XCP-ng
ISO libraryがDisconnectしたときの対処法
サーバを選ぶ>Serchタブ>当該ISO libraryを右クリック>Repair
単語
- LVM Logical Volume Manager 論理ボリュームマネージャ 環境構築後に論理ボリューム(パーティションで分けられている部分)の大きさを管理するマネージャのこと。
- PXE
- UEFI Unified Extensible Firmware Interface 統合された拡張できるファームウェアの接点 BIOSの後継?
- FQDN Fully Qualified Domain Name 絶対ドメイン名 本サイトだと、"allgreen998.com."
- LAMP Linux+Apache+MySQL(or MariaSQL)+PHPの総称。
- MTU Maximum Transmission Unit
- SFP Small form Factor Pluggable
Webバックグラウンドの基本。
1回の通信で転送可能な最大のパケットサイズを指す。
光ファイバや銅線用のコネクタ規格
CentOS MySQL 日本語入力
locale -a | grep ja
ロケールにjaがあるかどうかの確認
なければロケールの定義を変更する
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
再度ロケールを確認してja_JP.utf8があればOK