技術メモ

【2022年版】『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』でつまづいたところ【まとめ】

2021年12月15日

【2021年版】『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』で躓いたところ【まとめ】

 

どうも、白夜霧(@KiRi_Byakuya)です。

 

今回は『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』を使いながらCentOSの学習を進める際、実際に私がつまづいた箇所の覚書です。

 

誰かの参考になれば幸いですm(_ _)m

 

 

『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』の評価

 

  • サーバーに初めて触れる人にオススメできる(完全に初心者向け)
  • CentOSに触れる機会を得るには最適だと思う。
  • サーバー構築に関して「サクッ」と理解したい人にオススメできる。
  • 「Docker」に触れられるのがマジで有り難い。※業種的に使わないからこそ、どういうものなのか触れたかった。

 

あくまで初心者向けの入本書という形の本です。一応私も技術者でご飯を食べてるので、この本一冊で「全部理解したぜ!!」とか言うのは絶対に無理です。

 

KiRi

まずはこの本の通りにやってみて、スタートラインに立てる感じかな?

 

「さくらのVPS」に登録しなくても勉強できる?

 

『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』(以下:本書)は「さくらのVPS」に実際に登録して、実際にサーバーを動かしながら勉強することが前提となっています。

 

ただ、本書の中には無料で使用できる「VirtualBox」で同様の仮想環境を構築すれば、同じ勉強ができると記載があります。もちろん構築方法の解説もあります。

VirtualBox とは?

VirtualBox は、使用している PC 上に仮想的な PC を作成し、別の OS をインストール・実行できるフリーの PC 仮想化ソフトです。例えば使用中のパソコンが Windows 7 だったとしましょう。PC 仮想化ソフトを使うと、その Windows 7 上で Windows 8 や LinuxOS を動作させることができます。

引用:みんなの受験記

 

一通り本の通りに勉強した身からすると、できれば「さくらのVPS」に実際に登録して、サーバーを実際に動かしながら勉強した方がいいと思います。

 

もちろん無理にとは言いませんしさくらのVPS」の無料期間(2週間)を有効にするには、登録時にクレジットカードが必要になります。

 

学生の場合は厳しい可能性がありますが、できることなら実際に登録して学習する方法をオススメします。

 

2週間の無料期間中に終わる自信がない・・・

困った,不安,疑問

 

ぶっちゃけ、私も飽き性でサボり癖のある人間なので自信がありませんでした。

 

ただ、実際にやって見たところ2週間もあれば十分だと思います。本の内容が薄いというわけでもなく「2週間でできる範囲の勉強内容」が本で解説されている感じです。

 

Windowsなら「WSL」を使えばいいのでは?

パソコン,pc,linux

 

Windows10以上では、Windows上でLnuixが動かせる『WSL』機能があります。この機能でも、本書で使用している「VirtualBox」と同じ仮想サーバーの環境が構築できると思います。

 

私自身も本書の学習が一通り終わったので、一度WSL上で同じことができる環境を構築してみようと思っています。※現在準備中

 

ただ、初心者の人は本書の通りに「さくらのVPS」に登録するか「VirtualBox」を使った構築をした方が良いと思います。

 

なぜなら、実際にネットワーク上にあるサーバーを動かすのと、ローカルで動くサーバーを動かすのでは、本の記載通りでは動かないことが多々あります。

 

そんなもの、自分で調べてなんとかできる!』という自信がある人以外はオススメしません。

 

KiRi

スムーズに学習したいなら素直に「さくらのVPS」に登録を推奨。

 

 

『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』で躓いたところまとめ

 

ここからは、実際に『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』通りに学習した際に、私が躓いた部分をまとめます。

 

「さくらのVPS」に「HDD 100GB」プランがない!

 

「つまづいた」というわけではありませんが、本書の中では「さくらのVPS」の「メモリ1G / HDD 100GB」のプランへの登録が推奨されています。

 

ただ、2021年12月現在では「さくらのVPS」には同様のプランは存在しません。※全てのプランがSSD搭載プランに変更された。

 

代用のプラントして「メモリ1G / SSD 50GB」のプランで問題ありません。実際に私も「メモリ1G / SSD 50GB」のプランに登録し学習しましたが、特に容量不足等の問題は発生しませんでした。

 

Linux (CentOS 7)にrootユーザー以外の一般ユーザーを追加する

Linux (CentOS 7)にrootユーザー以外の一般ユーザーを追加する

 

現在の「さくらのVPS」では、指定のOSのインストール作業を自動で行ってくれます。

 

自動でOSをインストールするとrootユーザーの設定は行いますが、一般ユーザーは設定せずにOSをインストールします。

 

学習中は基本一般ユーザーで作業を行うので、一般ユーザーを追加する必要があります。

 

OSインストール後、rootユーザーで下記コマンドを実行すれば一般ユーザーの追加が可能です。


useradd testuser
passwd testuser
Changing password for user testuser.
New password:
Retype new password:
passrd: all authentication tokens updated successfully.

 

 

「さくらのVPS」にTera TermでSSHクライアント接続できない!

「さくらのVPS」にTera TermでSSHクライアント接続できない!

 

本書では、SSHのポートを「22」から「10022」に変更して使う方法が記載されています。ただ、本書の通りやっても「Tera Term」からさくらのVPSにSSH接続が成功しません。

 

これは本当に躓きました(;´∀`)

 

いくらやっても接続できず、埒が明かなかったのでSSHのポート番号をデフォルトの「22」のまま学習を勧めたぐらいです(ー_ー;)

 

で、根本的な原因ですが、これは「さくらのVPS」の設定にあります。

 

現在「さくらのVPS」では、独自のパケットフィルターが有効になっており、デフォルトの状態ではSSHの「22」以外は、全てアクセス出来ない状態になっています。

 

※OSインストール時に任意に設定していれば、他のポートも開放されています。

 

解決方法は簡単です。「さくらのVPS」から「サーバー」を選択し、変更するサーバーをクリック。

「さくらのVPS」にTera TermでSSHクライアント接続できない!

 

「グローバルネットワーク」の「パケットフィルター」の『パケットフィルターの設定』をクリック。

「さくらのVPS」にTera TermでSSHクライアント接続できない!

 

接続可能ポートを追加」をクリック→「カスタム」を選択し、ポート番号「10022」を追加。

「さくらのVPS」にTera TermでSSHクライアント接続できない!

 

右下の「設定」ボタンを押して完了です。

「さくらのVPS」にTera TermでSSHクライアント接続できない!

 

デフォルトのSSH(TCP 22)はセキュリティを考慮して、右側のバツマークを押して削除して起きましょう。※再設定可能。

 

これで、ポート番号10022でSSH接続が可能なはずです。

 

Linux (CentOS 7)でApacheのテストページが表示できない!ポート80が開放されない!

Linux (CentOS 7)でApacheのテストページが表示できない!ポート80が開放されない!

 

firewalldでポート80の開放は完了済みだけど、Apacheのテストページが表示できない。試しにfirewalldを無効にしてもアクセスできない。telnetでもダメ。

 

なんで(;´Д`)??」と頭を抱えて数時間。もうおわかりでしょう。はい、SSHの時と同じでポート番号80が開放されていないだけでした・・・。

Linux (CentOS 7)でApacheのテストページが表示できない!ポート80が開放されない!

 

 

WordPressの設定phpファイル(wp-config.php)が文字化けする

WordPressの設定phpファイル(wp-config.php)が文字化けする

 

本書の通りにWordPressをインストールし「wp-config.php」を開くと文字化けが発生しました。

 

原因は簡単で、日本語版のWordPressをインストールしているからです。解決方法としては単純に英語版をインストールしましょう。

 

WordPressのダウンロード


curl -LO https://wordpress.org/latest.tar.gz

 

WordPressを展開


tar zxf latest.tar.gz

 

KiRi

WordPressの管理画面の言語は、インストール画面で変更可能なので安心して下さい。

 

 

Linux (CentOS 7)のPHPのバージョンが古いため、WordPressが起動しない。

wordpress

 

本書の通りPHPをインストールすると、CentOS7が対応している最終バージョン5.4がインストールされる。ただ、WordPressが要求するPHPの最低バージョンは、現状(2021年12月)でいうと5.6以上(推奨7.4以上)。

 

このままではWordPressが動かないので、下記手順で新しいPHPをインストールします。

 

①Red Hat Enterprise Linux(RHEL)向けアドオンパッケージ『EPEL』をインストール。※私の場合、既にEPELはインストールされていました。


yum install epel-release

 

②最新のPHPをインストールするための「Remi」をインストール


wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo rpm -Uvh remi-release-7.rpm

 

③既にインストール済みのPHPを全て削除。


sudo yum remove -y php-*

 

④インストール可能なPHPのバージョンを確認する。


ls -l /etc/yum.repos.d | grep remi-php
-rw-r--r--  1 root root  456 Sep  2 18:35 remi-php54.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php70.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php71.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php72.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php73.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php74.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php80.repo
-rw-r--r--  1 root root 1314 Sep  2 18:35 remi-php81.repo

 

⑤PHPをインストール。※今回はバージョン7.4をインストール


sudo yum install -y --enablerepo=remi,remi-php74 php php-mbstring php-gd php-mysql

 

⑥PHPのバージョンを確認し、指定のバージョンがインストールされていることを確認。


php --version
PHP 7.4.26 (cli) (built: Nov 16 2021 15:31:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

 

KiRi

ApacheやらMariaDBとの絡みがあるので、PHPインストール後は一度サーバーの再起動を推奨。

 

 

 

Linux (CentOS 6)向けのDockerfileがビルド出来ない!

くじら,クジラ,鯨.,海

 

本書では「CentOS 6」向けのDockerfileを作成しますが、テキスト通りに作成しビルドしてもビルドは成功しない。

 

結論として、下記のように変更することで無事ビルドが成功した。

 

記載されているサンプルのDockerfile


FROM centos:6
MAINTAINER testimage <centuser@example.com>

RUN yum -y install httpd

EXPOSE 80

CMD /etc/init.d/httpd start && bash

 

サンプルを修正したDockerfile


FROM centos:6
MAINTAINER testimage <centuser@example.com>

RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
RUN cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-base.repo.bak
RUN sed -i -e "s|mirror\.centos\.org/centos/$releasever|vault\.centos\.org/6.10|g" /etc/yum.repos.d/CentOS-Base.repo
RUN sed -i -e "s|#baseurl=|baseurl=|g" /etc/yum.repos.d/CentOS-Base.repo
RUN sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo
RUN yum -y install httpd

EXPOSE 80

CMD /etc/init.d/httpd start && bash

 

下記に簡単ではありますが、解説を記載します。

 

yumのリポジトリ設定ファイルを編集する(5~8行目)

Linux (CentOS 6)向けのDockerfileがビルド出来ない!

 

本書のテキスト通りに作成したDockerfileをビルドするとError:Cannot retrieve repository metadata ( repomd.xml ) for repository: base. Please verify its path and try againと表示される。

 

このエラーの原因は、「CentOS 6」向けのyumリポジトリの場所(URL)が変わっているために発生するものらしい。修正方法に関しては、下記記事を参考にさせて頂きましたm(_ _)m

 

注意点として、上記参考記事ではCentOS「6.4」向けの設定になっています。CentOS 6.4向けでビルドすると、下記のようなエラーが発生します。


sudo docker build -t centuser/centos:httpd .

:

Error: Package: glibc-2.12-1.107.el6_4.5.i686 (updates)
			Requires: glibc-common = 2.12-1.107.el6_4.5
            Installed: glibc-common-2.12-1.212.el6_10.3.x86_64 (@updates)
                glibc-common = 2.12-1.212.el6_10.3
            Available: glibc-common-2.12-1.107.el6.x86_64 (base)
                glibc-common = 2.12-1.107.el6
            Available: glibc-common-2.12-1.107.el6_4.2.x86_64 (updates)
                glibc-common = 2.12-1.107.el6_4.2
            Available: glibc-common-2.12-1.107.el6_4.4.x86_64 (updates)
                glibc-common = 2.12-1.107.el6_4.4
            Available: glibc-common-2.12-1.107.el6_4.5.x86_64 (updates)
                glibc-common = 2.12-1.107.el6_4.5
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
The command '/bin/sh -c yum -y install httpd' returned a non-zero code: 1

 

エラーの原因はCentOS 6.4にとって該当する「glibc」のバージョンは、重要なセキュリアップデートの対象らしく「そのバージョンは使うな!」というお叱りエラーみたい。

 

解決策としては、単純にCentOS 6の最終バージョンである「6.10」がインストールされるように、修正したDockerfileのように6行目のバージョン名を変更すればOK。

 

gpg-pubkey(GPG公開鍵)を追加する(4行目)

Linux (CentOS 6)向けのDockerfileがビルド出来ない!

 

yumの設定ファイルを書き換えるコマンドを実装したDockerfileをビルドすると、下記のような警告が発生した。※ただ、ビルド自体は成功する。


sudo docker build -t centuser/centos:httpd .

:

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 Package: centos-release-6-10.el6.centos.12.3.x86_64 (@CentOS/6.10)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

:

Successfully built xxxxxxxxxxxx

 

警告の原因は、gpg-pubkey(GPG公開鍵)がないための警告メッセージ。

 

回避策としては、下記記事を参考に修正したDockerfileの4行目でgpg-pubkeyを追加するコマンドを追加しました。

 

「さくらのVPS」で管理ツール「Webmin」に接続できない!

「さくらのVPS」で管理ツール「Webmin」に接続できない!

 

付録の「03 Webブラウザを使ったサーバー管理」でWebminを使う場合は、SSHやApacheのときのように「さくらのVPS」で指定のポートを開放する必要があります。

 

「さくらのVPS」で管理ツール「Webmin」に接続できない!

 

かつ、テキストの方には記載がありませんが、firewalldのポートも開放する必要があります。


sudo firewall-cmd --zone=public --add-port=10000/tcp --permanent

 

 

参考になったらポッチとお願いしますm(_ _)m


プログラムランキング

  • この記事を書いた人

白夜霧

現役のIT土方・社畜・カフェイン中毒者。趣味のために生きる。サラリーマンの雑記ブログ。さり気なくYouTuberデビューしました\(^o^)/

-技術メモ
-, , , , , ,

© 2022 My,WebNote - 備忘録 -