allgreen998の備忘録

自宅サーバ

趣味で自宅サーバを運用しようとしています。
それにあたってのメモなどをまとめました。

目次

ページ外リンク

ページ内リンク

今やりたいこと

  • DNSサーバ構築
  • DHCPサーバ構築
  • PXEサーバ構築
  • 個人開発Webサーバのhttps化
  • ELKスタック構築によるWebサーバアクセス管理
  • OS開発

BootImage管理用NFS

用途

仮想マシンのブートイメージはNFSからISOを持ってくる方法しか知らないため、NFSを立てる。
XCP-ngをハイパーバイザーとして、UbuntuServerで立てる。

XCP-ng Centerでの仮想マシン作成

  1. XCP-ng CenterをPCにインストール
  2. New VM
  3. Template
  4. Ubuntu 20.04
  5. Name
  6. (例)"allgreen-boot"
  7. Installation Media
  8. "Ubuntu20-server.iso"
    (ここで選択できるメディアを作るのが今回の目的)
  9. Home Server
  10. Place the VM on this server
  11. CPU&Memory
  12. Num of vCPUs 2
    Topology 1 socket with 2 cores per socket
    Memory 1.0GB
  13. GPU
  14. Strage
  15. 20GB
  16. Network
  17. MAC autogenerated
  18. Finish

Ubuntu Serverのインストール

  1. Language
  2. English
  3. Layout
  4. English
  5. Network connection
  6. Manual
    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
  7. Proxy
  8. 空欄のまま、Done
  9. Mirror address
  10. そのまま
  11. Checking for installer update
  12. そのまま
  13. Guide strage configration
  14. そのまま*2
  15. Confrim action
  16. Continue
  17. Profile setup
  18. Your name:allgreen
    Your servers name:allgreen-boot
    Pick a user name:allgreen
    Choose a password:@@@@@
  19. SSH Setup
  20. Install OpenSSH serverにチェック
  21. Snap
  22. チェックせずに進む
  23. Install complete!

rootアカウントの作成

rootユーザーを有効にする(server world)

NFS設定

  1. rootでlogin
  2. nfsをインストール
  3. root@allgreen-boot:~# apt install nfs-kernel-server
  4. exportsの設定を変更
  5. 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読み込ませる

  1. New Strage
  2. Type
  3. ISO library > NFS ISO
  4. Name
  5. NFS ISO library(allgreen-boot)
  6. Location
  7. 192.168.0.53:/nfs/boot
  8. 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の総称。
    Webバックグラウンドの基本。
  • MTU
  • Maximum Transmission Unit
    1回の通信で転送可能な最大のパケットサイズを指す。
  • SFP
  • Small form Factor Pluggable
    光ファイバや銅線用のコネクタ規格

CentOS MySQL 日本語入力

locale -a | grep ja
ロケールにjaがあるかどうかの確認
なければロケールの定義を変更する
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
再度ロケールを確認してja_JP.utf8があればOK

CentOS7 PHP Composerインストール

CentOS7 php + Composerインストール

CentOS PHP Apache

CentOS 7にPHP 7.3をインストールしてApache HTTP Serverと連携させる方法

参考文献

最終更新:2021/09/03