Skip to content

panakuma/ServerHandson

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

サヌバ構築入門(Apache/WordPress)

この資料は, panakumaずTomoyuki KOYAMAによっお䜜成されおいたす。

良いず思ったらスタヌを぀けおください!!

1. はじめに

この講座では, VirtualMachineを䜿っお挔習を行いたす。必ずVMWare環境を甚意しおください。授業ずは別にVMを甚意しおおくこずをオススメしたす。

2. Linuxに぀いお

Linuxずは圓時、倧孊生であったLinus Torvaldsが開発したOS(オペレヌティングシステム)です。UNIX互換のOSずしお開発されたした。Linuxのプログラムの特城ずしおラむセンス圢態が挙げられたす。LinuxのプログラムにはGPL(GNU General Public License)ずいうラむセンス圢匏が付䞎されおいたす。これには以䞋の内容が含たれおいたす。

  • プログラムを実行する自由
  • ゜ヌスの改倉の自由
  • 利甚・再配垃の自由
  • 改良したプログラムをリリヌスする暩利

(Linux暙準教科曞より匕甚)

こうした自由な圢態を採甚した為、限られた組織や個人によっお独占されるこずなく広く普及し発展したした。詳しいこずは曞籍:Unix考叀孊などに曞かれおいたす。

3. サヌバの基本情報

サヌバずは䞍特定倚数によるアクセスが可胜なコンピュヌタ。

実隓環境

  • VMware Workstation Player 12.7
  • Ubuntu 17.10 x86_64

VMの起動

VMware Playerを起動しおVMを立ち䞊げたす。

VMが起動しおログむンしたす。

巊䞋のボタンランチャからTerminalを起動したす

起動するず以䞋の画面が衚瀺されたす

日本語察応及び囜内リポゞトリに倉曎

このたたでは、日本語の察応が䞍安定であり、aptコマンドの参照するサヌバヌがアメリカであるこずから、パッケヌゞをむンストヌルする時に若干時間がかかりたす。 そのため、日本で䜿うのに適した蚭定に倉曎したす。

なお、これらの凊理はスクリプトを䜜成しおありたす。タヌミナルに以䞋のコマンドを入力しお実行しおください。

wget -q -O - https://raw.githubusercontent.com/tomoyk/ServerHandson/master/setup.bash | bash

(参考) スクリプト内郚で実行しおいる凊理は以䞋です。

echo "export LANG=ja_JP.UTF-8" >> $HOME/.bashrc
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/artful.list -O /etc/apt/sources.list.d/ubuntu-ja.list 
sudo apt update -y
sudo apt dist-upgrade -y
sudo apt install -y ubuntu-defaults-ja
sudo systemctl reboot -i

ネットワヌクたわり

IPアドレスの確認

IPアドレスを確認したす。タヌミナルにip aを入力したす。

ebi@ubuntu:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:90:d5:eb brd ff:ff:ff:ff:ff:ff
    inet 192.168.223.159/24 brd 192.168.223.255 scope global dynamic ens33
       valid_lft 1152sec preferred_lft 1152sec
    inet6 fe80::a8dc:fd46:8a0b:d3e9/64 scope link
       valid_lft forever preferred_lft forever

ここで192.168.x.xずいう文字列が芋぀かりたす。これがロヌカルネットワヌクにおけるIPアドレスです。

ロヌカルネットワヌクのIPアドレスは囜際暙準芏栌RFC1918によっお䞋蚘の範囲で定められおいたす。

クラス IPアドレス範囲
A 10.0.0.0 - 10.255.255.255 (10/8 prefix)
B 172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
C 192.168.0.0 - 192.168.255.255 (192.168/16 prefix)

参考: プラむベヌト網のアドレス割圓(RFC 1918) - JPNIC

今回䜿ったNAT蚭定は、仮想マシン(Virtual Machine)からのパケットを実機(Windows)でアドレスやポヌト倉換しお倖郚ず通信したす。

疎通の確認

次にpingコマンドを利甚しおネットワヌク通信が行えるか確認したす。タヌミナルにping 8.8.8.8ず入力しおEnterを抌䞋したす。終了するにはCtrl + Cを抌したす。

ebi@ubuntu:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=4.43 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=4.78 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=3.98 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=128 time=4.30 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=128 time=5.06 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4010ms
rtt min/avg/max/mdev = 3.987/4.515/5.061/0.376 ms

ebi@ubuntu:~$ ping 8.8.8.7
PING 8.8.8.7 (8.8.8.7) 56(84) bytes of data.
^C
--- 8.8.8.7 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6128ms

サヌバからの応答があれば倖郚ずの通信が出来おいるず刀断できたす。

パッケヌゞのむンストヌル

パッケヌゞマネヌゞャに぀いお

゜フトりェアをむンストヌルしたす。Windowsで゜フトりェアをむンストヌルするには、むンストヌラをダりンロヌドしお実行する必芁がありたす。

Linuxには゜フトりェアを䞀元管理しおいるパッケヌゞマネヌゞャずいう䟿利な仕組みがありたす。この仕組みによっお゜フトりェアをパッケヌゞずいう単䜍でコマンドを䜿っお管理できるようになりたす。

パッケヌゞのむンストヌル

コマンドsudo apt install [パッケヌゞ名]を入力するこずでパッケヌゞがむンストヌルされたす。

4. Webサヌバの構築

次にApacheずいうWebサヌバ゜フトりェアをパッケヌゞマネヌゞャず利甚しおむンストヌルしたす。タヌミナルに以䞋のコマンドを打ち蟌みたす。

sudo apt install apache2

ebi@ubuntu:~$ sudo apt install apache2
[sudo] ebi のパスワヌド:
パッケヌゞリストを読み蟌んでいたす... 完了
䟝存関係ツリヌを䜜成しおいたす
状態情報を読み取っおいたす... 完了
以䞋の远加パッケヌゞがむンストヌルされたす:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap
提案パッケヌゞ:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom
以䞋のパッケヌゞが新たにむンストヌルされたす:
  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap
アップグレヌド: 0 個、新芏むンストヌル: 8 個、削陀: 0 個、保留: 0 個。
1,502 kB のアヌカむブを取埗する必芁がありたす。
この操䜜埌に远加で 6,175 kB のディスク容量が消費されたす。
続行したすか? [Y/n] y

確認が出るのでyを入力しおEnterを抌したす.

取埗:1 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libapr1 amd64 1.6.2-1 [90.9 kB]
取埗:2 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libaprutil1 amd64 1.6.0-2 [84.2 kB]
取埗:3 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.0-2 [10.5 kB]
取埗:4 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libaprutil1-ldap amd64 1.6.0-2 [8,660 B]
取埗:5 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 apache2-bin amd64 2.4.27-2ubuntu3 [968 kB]
取埗:6 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 apache2-utils amd64 2.4.27-2ubuntu3 [82.5 kB]
取埗:7 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 apache2-data all 2.4.27-2ubuntu3 [161 kB]
取埗:8 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 apache2 amd64 2.4.27-2ubuntu3 [95.8 kB]
1,502 kB を 0秒 で取埗したした (5,591 kB/s)
以前に未遞択のパッケヌゞ libapr1:amd64 を遞択しおいたす。
(デヌタベヌスを読み蟌んでいたす ... 珟圚 113374 個のファむルずディレクトリがむンストヌルされおいたす。)
.../0-libapr1_1.6.2-1_amd64.deb を展開する準備をしおいたす ...
libapr1:amd64 (1.6.2-1) を展開しおいたす...
以前に未遞択のパッケヌゞ libaprutil1:amd64 を遞択しおいたす。
.../1-libaprutil1_1.6.0-2_amd64.deb を展開する準備をしおいたす ...
libaprutil1:amd64 (1.6.0-2) を展開しおいたす...
以前に未遞択のパッケヌゞ libaprutil1-dbd-sqlite3:amd64 を遞択しおいたす。
.../2-libaprutil1-dbd-sqlite3_1.6.0-2_amd64.deb を展開する準備をしおいたす ...
libaprutil1-dbd-sqlite3:amd64 (1.6.0-2) を展開しおいたす...
以前に未遞択のパッケヌゞ libaprutil1-ldap:amd64 を遞択しおいたす。
.../3-libaprutil1-ldap_1.6.0-2_amd64.deb を展開する準備をしおいたす ...
libaprutil1-ldap:amd64 (1.6.0-2) を展開しおいたす...
以前に未遞択のパッケヌゞ apache2-bin を遞択しおいたす。
.../4-apache2-bin_2.4.27-2ubuntu3_amd64.deb を展開する準備をしおいたす ...
apache2-bin (2.4.27-2ubuntu3) を展開しおいたす...
以前に未遞択のパッケヌゞ apache2-utils を遞択しおいたす。
.../5-apache2-utils_2.4.27-2ubuntu3_amd64.deb を展開する準備をしおいたす ...
apache2-utils (2.4.27-2ubuntu3) を展開しおいたす...
以前に未遞択のパッケヌゞ apache2-data を遞択しおいたす。
.../6-apache2-data_2.4.27-2ubuntu3_all.deb を展開する準備をしおいたす ...
apache2-data (2.4.27-2ubuntu3) を展開しおいたす...
以前に未遞択のパッケヌゞ apache2 を遞択しおいたす。
.../7-apache2_2.4.27-2ubuntu3_amd64.deb を展開する準備をしおいたす ...
apache2 (2.4.27-2ubuntu3) を展開しおいたす...
libapr1:amd64 (1.6.2-1) を蚭定しおいたす ...
ufw (0.35-5) のトリガを凊理しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
apache2-data (2.4.27-2ubuntu3) を蚭定しおいたす ...
libc-bin (2.26-0ubuntu2) のトリガを凊理しおいたす ...
libaprutil1:amd64 (1.6.0-2) を蚭定しおいたす ...
systemd (234-2ubuntu12) のトリガを凊理しおいたす ...
man-db (2.7.6.1-2) のトリガを凊理しおいたす ...
libaprutil1-ldap:amd64 (1.6.0-2) を蚭定しおいたす ...
libaprutil1-dbd-sqlite3:amd64 (1.6.0-2) を蚭定しおいたす ...
apache2-utils (2.4.27-2ubuntu3) を蚭定しおいたす ...
apache2-bin (2.4.27-2ubuntu3) を蚭定しおいたす ...
apache2 (2.4.27-2ubuntu3) を蚭定しおいたす ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
libc-bin (2.26-0ubuntu2) のトリガを凊理しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
systemd (234-2ubuntu12) のトリガを凊理しおいたす ...
ufw (0.35-5) のトリガを凊理しおいたす ...

Apacheのむンストヌルが完了したした。

プロセスの確認

Linuxではアプリケヌション1぀ひず぀にプロセスIDずいうIDが付䞎されたす。これによっおプロセスを区別しおいたす。Windowsのタスクマネヌゞャでプロセスが起動しおいる様子をむメヌゞするず分かりやすいです。

Apacheのむンストヌルが終わるずApacheは自動で起動したす。たず、Apacheのプロセスが存圚するかpsコマンドで確認したす。

ps aux | grep apache

ebi@ubuntu:~$ sudo ps -aux | grep apache
root       2590  0.0  0.4  73856  4588 ?        Ss   11:49   0:00 /usr/sbin/apache2 -k start
www-data   2592  0.0  0.4 821768  4428 ?        Sl   11:49   0:00 /usr/sbin/apache2 -k start
www-data   2593  0.0  0.4 821768  4428 ?        Sl   11:49   0:00 /usr/sbin/apache2 -k start
ebi        2853  0.0  0.1  15380  1052 pts/0    S+   11:57   0:00 grep --color=auto apache

衚瀺された結果の1番巊がプロセスが実行されたナヌザ、巊から2番目がプロセスID、䞀番右がプロセスの実行内容(コマンド)をそれぞれ衚しおいたす。これでApacheのプロセスが起動しおいるこずが確認できたす。

ポヌト状況の確認

ポヌト開攟状況はssを䜿っお確認したす。| grep -i xxxの郚分で倧文字小文字の区別なくxxxずいう文字列を怜玢したす。

ebi@ubuntu:~$ ss -ant | grep -i listen
LISTEN     0      128          *:22                       *:*
LISTEN     0      5      127.0.0.1:631                      *:*
LISTEN     0      128          *:5355                     *:*
LISTEN     0      128         :::22                      :::*
LISTEN     0      5          ::1:631                     :::*
LISTEN     0      128         :::5355                    :::*
LISTEN     0      128         :::80                      :::*

以䞋の行を芋るこずでTCP 80番ポヌトが開攟されおいるず分かりたす。

ebi@ubuntu:~$ ss -ant | grep -i listen
(略)
LISTEN     0      128         :::80                      :::*

以䞋に䞻芁なポヌトの䞀芧をあげたす。

ポヌト番号 プロトコル サヌビス名
80 TCP HTTP
53 UDP DNS
22 TCP SSH
443 TCP HTTPS

PHP(プログラミング蚀語)のむンストヌル

プログラミング蚀語PHPの実行に必芁なパッケヌゞをむンストヌルしたす。

sudo apt install libapache2-mod-php libapache2-mod-php7.1 php-common php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline php7.1-gd php7.1-xmlrpc php7.1-dev php7.1-mbstring php7.1-mysql

ebi@ubuntu:~$ sudo apt install libapache2-mod-php libapache2-mod-php7.1 php-common php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline php7.1-gd php7.1-xmlrpc php7.1-dev php7.1-mbstring php7.1-mysql
パッケヌゞリストを読み蟌んでいたす... 完了
䟝存関係ツリヌを䜜成しおいたす
状態情報を読み取っおいたす... 完了
以䞋の远加パッケヌゞがむンストヌルされたす:
  autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu build-essential debhelper dh-autoreconf
  dh-strip-nondeterminism dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gettext intltool-debian libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libarchive-cpio-perl libarchive-zip-perl libasan4 libatomic1 libbinutils libc-dev-bin libc6-dev libcc1-0
  libcilkrts5 libdpkg-perl libfakeroot libfile-fcntllock-perl libfile-stripnondeterminism-perl libgcc-7-dev libitm1 liblsan0 libltdl-dev
  libmail-sendmail-perl libmpx2 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libsigsegv2 libssl-dev libssl-doc libstdc++-7-dev
  libsys-hostname-long-perl libtool libtsan0 libubsan0 libxmlrpc-epi0 linux-libc-dev m4 make manpages-dev php-pear php-xml php7.1-xml
  pkg-php-tools po-debconf shtool zlib1g-dev
提案パッケヌゞ:
  autoconf-archive gnu-standards autoconf-doc binutils-doc dh-make debian-keyring g++-multilib g++-7-multilib gcc-7-doc libstdc++6-7-dbg
  gcc-multilib flex bison gdb gcc-doc gcc-7-multilib gcc-7-locales libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg
  liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg gettext-doc libasprintf-dev libgettextpo-dev
  glibc-doc libtool-doc libstdc++-7-doc gfortran | fortran95-compiler gcj-jdk m4-doc make-doc dh-php libmail-box-perl
以䞋のパッケヌゞが新たにむンストヌルされたす:
  autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu build-essential debhelper dh-autoreconf
  dh-strip-nondeterminism dpkg-dev fakeroot g++ g++-7 gcc gcc-7 gettext intltool-debian libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libapache2-mod-php libapache2-mod-php7.1 libarchive-cpio-perl libarchive-zip-perl libasan4 libatomic1
  libbinutils libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl libfakeroot libfile-fcntllock-perl libfile-stripnondeterminism-perl
  libgcc-7-dev libitm1 liblsan0 libltdl-dev libmail-sendmail-perl libmpx2 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libsigsegv2
  libssl-dev libssl-doc libstdc++-7-dev libsys-hostname-long-perl libtool libtsan0 libubsan0 libxmlrpc-epi0 linux-libc-dev m4 make
  manpages-dev php-common php-pear php-xml php7.1-cli php7.1-common php7.1-dev php7.1-gd php7.1-json php7.1-mbstring php7.1-mysql
  php7.1-opcache php7.1-readline php7.1-xml php7.1-xmlrpc pkg-php-tools po-debconf shtool zlib1g-dev
アップグレヌド: 0 個、新芏むンストヌル: 78 個、削陀: 0 個、保留: 0 個。
42.3 MB のアヌカむブを取埗する必芁がありたす。
この操䜜埌に远加で 185 MB のディスク容量が消費されたす。
続行したすか? [Y/n] y

キヌyを抌しおEnterで続行したす。

取埗:1 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libsigsegv2 amd64 2.11-1 [13.2 kB]
取埗:2 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 m4 amd64 1.4.18-1 [197 kB]
取埗:3 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 autoconf all 2.69-11 [322 kB]
取埗:4 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 autotools-dev all 20161112.1 [39.5 kB]
取埗:5 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 automake all 1:1.15-6ubuntu1 [509 kB]
取埗:6 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 autopoint all 0.19.8.1-4ubuntu1 [412 kB]
取埗:7 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 binutils-common amd64 2.29.1-4ubuntu1 [190 kB]
取埗:8 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libbinutils amd64 2.29.1-4ubuntu1 [502 kB]
取埗:9 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 binutils-x86-64-linux-gnu amd64 2.29.1-4ubuntu1 [1,824 kB]
取埗:10 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 binutils amd64 2.29.1-4ubuntu1 [3,342 B]
取埗:11 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libc-dev-bin amd64 2.26-0ubuntu2 [69.6 kB]
取埗:12 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 linux-libc-dev amd64 4.13.0-16.19 [954 kB]
取埗:13 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libc6-dev amd64 2.26-0ubuntu2 [2,524 kB]
取埗:14 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libcc1-0 amd64 7.2.0-8ubuntu3 [38.6 kB]
取埗:15 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libitm1 amd64 7.2.0-8ubuntu3 [27.6 kB]
取埗:16 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libatomic1 amd64 7.2.0-8ubuntu3 [8,954 B]
取埗:17 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libasan4 amd64 7.2.0-8ubuntu3 [360 kB]
取埗:18 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 liblsan0 amd64 7.2.0-8ubuntu3 [133 kB]
取埗:19 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libtsan0 amd64 7.2.0-8ubuntu3 [282 kB]
取埗:20 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libubsan0 amd64 7.2.0-8ubuntu3 [126 kB]
取埗:21 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libcilkrts5 amd64 7.2.0-8ubuntu3 [42.5 kB]
取埗:22 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libmpx2 amd64 7.2.0-8ubuntu3 [11.7 kB]
取埗:23 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libgcc-7-dev amd64 7.2.0-8ubuntu3 [2,378 kB]
取埗:24 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 gcc-7 amd64 7.2.0-8ubuntu3 [7,411 kB]
取埗:25 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 gcc amd64 4:7.2.0-1ubuntu1 [5,124 B]
取埗:26 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libstdc++-7-dev amd64 7.2.0-8ubuntu3 [1,456 kB]
取埗:27 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 g++-7 amd64 7.2.0-8ubuntu3 [7,551 kB]
取埗:28 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 g++ amd64 4:7.2.0-1ubuntu1 [1,482 B]
取埗:29 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 make amd64 4.1-9.1 [154 kB]
取埗:30 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libdpkg-perl all 1.18.24ubuntu1 [209 kB]
取埗:31 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 dpkg-dev all 1.18.24ubuntu1 [608 kB]
取埗:32 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 build-essential amd64 12.4ubuntu1 [4,758 B]
取埗:33 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libtool all 2.4.6-2 [194 kB]
取埗:34 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 dh-autoreconf all 14 [15.5 kB]
取埗:35 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libarchive-zip-perl all 1.59-1 [84.0 kB]
取埗:36 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libfile-stripnondeterminism-perl all 0.038-1 [13.3 kB]
取埗:37 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 dh-strip-nondeterminism all 0.038-1 [5,026 B]
取埗:38 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 gettext amd64 0.19.8.1-4ubuntu1 [1,093 kB]
取埗:39 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 intltool-debian all 0.35.0+20060710.4 [24.9 kB]
取埗:40 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 po-debconf all 1.0.20 [232 kB]
取埗:41 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 debhelper all 10.7.2ubuntu2 [877 kB]
取埗:42 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libfakeroot amd64 1.21-1ubuntu2 [25.9 kB]
php7.1-opcache (7.1.8-1ubuntu1) を蚭定しおいたす ...

Creating config file /etc/php/7.1/mods-available/opcache.ini with new version
binutils-x86-64-linux-gnu (2.29.1-4ubuntu1) を蚭定しおいたす ...
php-xml (1:7.1+54ubuntu1) を蚭定しおいたす ...
php7.1-cli (7.1.8-1ubuntu1) を蚭定しおいたす ...
update-alternatives: /usr/bin/php (php) を提䟛するために自動モヌドで /usr/bin/php7.1 を䜿いたす
update-alternatives: /usr/bin/phar (phar) を提䟛するために自動モヌドで /usr/bin/phar7.1 を䜿いたす
update-alternatives: /usr/bin/phar.phar (phar.phar) を提䟛するために自動モヌドで /usr/bin/phar.phar7.1 を䜿いたす

Creating config file /etc/php/7.1/cli/php.ini with new version
php-pear (1:1.10.5+submodules+notgz-1) を蚭定しおいたす ...
binutils (2.29.1-4ubuntu1) を蚭定しおいたす ...
libapache2-mod-php7.1 (7.1.8-1ubuntu1) を蚭定しおいたす ...

Creating config file /etc/php/7.1/apache2/php.ini with new version
Module mpm_event disabled.
Enabling module mpm_prefork.
apache2_switch_mpm Switch to prefork
apache2_invoke: Enable module php7.1
libapache2-mod-php (1:7.1+54ubuntu1) を蚭定しおいたす ...
gcc-7 (7.2.0-8ubuntu3) を蚭定しおいたす ...
g++-7 (7.2.0-8ubuntu3) を蚭定しおいたす ...
gcc (4:7.2.0-1ubuntu1) を蚭定しおいたす ...
dpkg-dev (1.18.24ubuntu1) を蚭定しおいたす ...
g++ (4:7.2.0-1ubuntu1) を蚭定しおいたす ...
update-alternatives: /usr/bin/c++ (c++) を提䟛するために自動モヌドで /usr/bin/g++ を䜿いたす
libtool (2.4.6-2) を蚭定しおいたす ...
build-essential (12.4ubuntu1) を蚭定しおいたす ...
php7.1-dev (7.1.8-1ubuntu1) を蚭定しおいたす ...
update-alternatives: /usr/bin/php-config (php-config) を提䟛するために自動モヌドで /usr/bin/php-config7.1 を䜿いたす
update-alternatives: /usr/bin/phpize (phpize) を提䟛するために自動モヌドで /usr/bin/phpize7.1 を䜿いたす
dh-autoreconf (14) を蚭定しおいたす ...
dh-strip-nondeterminism (0.038-1) を蚭定しおいたす ...
debhelper (10.7.2ubuntu2) を蚭定しおいたす ...
pkg-php-tools (1.35) を蚭定しおいたす ...
libc-bin (2.26-0ubuntu2) のトリガを凊理しおいたす ...

ApacheでPHPを䜿うためのパッケヌゞ

  • libapache2-mod-php
  • libapache2-mod-php7.1

WordPressで必芁ずなるPHPのパッケヌゞ

  • php-common
  • php7.1-cli
  • php7.1-common
  • php7.1-json
  • php7.1-opcache
  • php7.1-readline
  • php7.1-gd
  • php7.1-xmlrpc
  • php7.1-dev
  • php7.1-mbstring
  • php7.1-mysql

5. MySQLデヌタベヌスのむンストヌル

MySQLデヌタベヌスをむンストヌルしたす。

sudo apt install mysql-common mysql-server mysql-client

ebi@ubuntu:~$ sudo apt install mysql-common mysql-server mysql-client
[sudo] ebi のパスワヌド:
パッケヌゞリストを読み蟌んでいたす... 完了
䟝存関係ツリヌを䜜成しおいたす
状態情報を読み取っおいたす... 完了
mysql-common はすでに最新バヌゞョン (5.8+1.0.2ubuntu1) です。
mysql-common は手動でむンストヌルしたず蚭定されたした。
以䞋の远加パッケヌゞがむンストヌルされたす:
  libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.1-6 libfcgi-perl libhtml-mplate-perl mysql-client-5.7 mysql-client-core-5.7
  mysql-server-5.7 mysql-server-core-5.7
提案パッケヌゞ:
  libipc-sharedcache-perl mailx tinyca
以䞋のパッケヌゞが新たにむンストヌルされたす:
  libaio1 libcgi-fast-perl libcgi-pm-perl libevent-core-2.1-6 libfcgi-perl libhtml-mplate-perl mysql-client mysql-client-5.7
  mysql-client-core-5.7 mysql-server mysql-server-5.7 mysql-server-core-5.7
アップグレヌド: 0 個、新芏むンストヌル: 12 個、削陀: 0 個、保留: 5 個。
20.6 MB のアヌカむブを取埗する必芁がありたす。
この操䜜埌に远加で 161 MB のディスク容量が消費されたす。
続行したすか? [Y/n] y

確認が出るのでyを入力しおEnterを抌したす.

パスワヌド入力を求められるので任意のパスワヌドを蚭定したす。ここではk@pp@ebi1000ず蚭定したした。

(略)
以前に未遞択のパッケヌゞ libfcgi-perl を遞択しおいたす。
.../07-libfcgi-perl_0.78-2build1_amd64.deb を展開する準備をしおいたす ...
libfcgi-perl (0.78-2build1) を展開しおいたす...
以前に未遞択のパッケヌゞ libcgi-fast-perl を遞択しおいたす。
.../08-libcgi-fast-perl_1%3a2.12-1_all.deb を展開する準備をしおいたす ...
libcgi-fast-perl (1:2.12-1) を展開しおいたす...
以前に未遞択のパッケヌゞ libhtml-template-perl を遞択しおいたす。
.../09-libhtml-template-perl_2.95-2_all.deb を展開する準備をしおいたす ...
libhtml-template-perl (2.95-2) を展開しおいたす...
以前に未遞択のパッケヌゞ mysql-client を遞択しおいたす。
.../10-mysql-client_5.7.20-0ubuntu0.17.10.1_all.deb を展開する準備をしおいたす ...
mysql-client (5.7.20-0ubuntu0.17.10.1) を展開しおいたす...
以前に未遞択のパッケヌゞ mysql-server を遞択しおいたす。
.../11-mysql-server_5.7.20-0ubuntu0.17.10.1_all.deb を展開する準備をしおいたす ...
mysql-server (5.7.20-0ubuntu0.17.10.1) を展開しおいたす...
libevent-core-2.1-6:amd64 (2.1.8-stable-4) を蚭定しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
libc-bin (2.26-0ubuntu2) のトリガを凊理しおいたす ...
libaio1:amd64 (0.3.110-4) を蚭定しおいたす ...
systemd (234-2ubuntu12) のトリガを凊理しおいたす ...
libcgi-pm-perl (4.36-1) を蚭定しおいたす ...
man-db (2.7.6.1-2) のトリガを凊理しおいたす ...
mysql-client-core-5.7 (5.7.20-0ubuntu0.17.10.1) を蚭定しおいたす ...
libfcgi-perl (0.78-2build1) を蚭定しおいたす ...
libhtml-template-perl (2.95-2) を蚭定しおいたす ...
mysql-server-core-5.7 (5.7.20-0ubuntu0.17.10.1) を蚭定しおいたす ...
libcgi-fast-perl (1:2.12-1) を蚭定しおいたす ...
mysql-client-5.7 (5.7.20-0ubuntu0.17.10.1) を蚭定しおいたす ...
mysql-client (5.7.20-0ubuntu0.17.10.1) を蚭定しおいたす ...
mysql-server-5.7 (5.7.20-0ubuntu0.17.10.1) を蚭定しおいたす ...
update-alternatives: /etc/mysql/my.cnf (my.cnf) を提䟛するために自動モヌドで /etc/mysql/mysql.cnf を䜿いたす
Renaming removed key_buffer and myisam-recover options (if present)
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/stem/mysql.service.
mysql-server (5.7.20-0ubuntu0.17.10.1) を蚭定しおいたす ...
libc-bin (2.26-0ubuntu2) のトリガを凊理しおいたす ...
ureadahead (0.100.0-20) のトリガを凊理しおいたす ...
systemd (234-2ubuntu12) のトリガを凊理しおいたす ...

むンストヌルが完了したら、デヌタベヌスサヌバに接続したす。

デヌタベヌス・サヌバが起動しおいるかポヌト状況を確認したす。

ç·Žç¿’

デヌタベヌス・サヌバはTCP 3306番で起動したす。サヌバが起動しおいるか確認しおみよう。

ヒント: ssコマンド

ç·Žç¿’2

MySQLサヌバが起動しおいるか確認しおみたす。プロセス䞀芧にはmysqlずいう文字列が含たれおいたす。

ヒント: psコマンド


MySQLぞログむン

MySQLサヌバぞログむンしたす。

sudo mysql -uroot -pk@pp@ebi1000

ebi@ubuntu:~$ mysql -uroot -pk@pp@ebi1000
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.20-0ubuntu0.17.10.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQLにデヌタベヌスを远加

存圚しおいるデヌタベヌスをコマンドshow databases;で衚瀺したす。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
mysql>

WordPressで䜿甚するデヌタベヌスを䜜成したす。wordpressずいう名前のデヌタベヌスを䜜成したす。

mysql> create database wordpress;
mysql>

ç·Žç¿’

wordpressずいうデヌタベヌスが䜜成されおいるか確認しおみたしょう。

ヒント: show ???ずいうコマンド䜿う。

mysql> show ???;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.02 sec)

MySQLのナヌザを远加

MySQLのナヌザwp-userを远加したす。rootを䜿甚するこずも出来たすが、アカりントが悪甚された時の圱響範囲を小さくするために新たなナヌザを远加しおいたす。

  • ナヌザ名:wp-user
  • パスワヌド:kabayaki3taro

以䞋のコマンドでアカりントを远加したす。

mysql> create user 'wp-user'@'localhost' identified by 'kabayaki3taro';
Query OK, 0 rows affected (0.00 sec)

ナヌザwp-userにデヌタベヌスwordpressぞのフルアクセス暩を付䞎したす。

mysql> grant all privileges on wordpress.* to 'wp-user'@'localhost';
Query OK, 0 rows affected (0.00 sec)

ナヌザヌの远加ず暩限の付䞎は䞀぀のコマンドで远加するこずも可胜です。

grant all on wordpress.* to wp-user@localhost identified by 'kabayaki3taro';

デヌタベヌスのテヌブルを確認

デヌタベヌスwordpressの䞭身であるテヌブルを確認しおみたす。

たず、デヌタベヌスwordpressを遞択したす。

mysql> use wordpress;
Database changed
mysql>

次に、テヌブルの䞀芧を衚瀺したす。

mysql> show tables;
Empty set (0.03 sec)
mysql>

実行結果から、ただ䜕もテヌブルが䜜成されおいないこずが確認できたす。

䞀床、MySQLから抜けたす。

mysql> quit
Bye

6. WordPressのむンストヌル

WordPressに぀いお

WordPressはオヌプン゜ヌス(゜ヌスコヌドが公開されおいる)のブログシステムです。カスタマむズするこずでWebサむトずしお䜿甚するこずも出来たす。

安倍銖盞のWebサむト、孊内サむト、緊急連絡サむトなど身近なWebサむトでも䜿甚されおいたす。

WordPressのダりンロヌド

WordPressの公匏サむトぞアクセスし、WordPressをダりンロヌドしたす。次のリンクをブラりザで開きたす。

日本語 — WordPress

サむトの「WordPress 4.8.2 をダりンロヌド」にカヌ゜ルをおき、右クリック -> リンクのアドレスをコピヌを遞択したす。

適圓なディレクトリに移動し、Virtual Machineのタヌミナルでwget ず入力し、右クリック -> ペヌストからコピヌしたURLを貌り付けたす。

wget https://ja.wordpress.org/wordpress-4.8.2-ja.zip

実行したコマンドは䞊蚘です。wgetコマンドは指定したURLのファむルをダりンロヌドするコマンドです。぀たり、WordPressのプログラムをWebからダりンロヌドしたした。

WordPressの展開ず蚭眮

ダりンロヌドしたファむルwordpress-4.8.2-ja.zipをunzipコマンドで解凍したす。

ebi@ubuntu:~$ unzip wordpress-4.8.2-ja.zip
Archive:  wordpress-4.8.2-ja.zip
   creating: wordpress/
  inflating: wordpress/wp-trackback.php
   creating: wordpress/wp-admin/
  inflating: wordpress/wp-admin/media-upload.php
  inflating: wordpress/wp-admin/install-helper.php
  inflating: wordpress/wp-admin/ms-users.php
  inflating: wordpress/wp-admin/menu-header.php
  inflating: wordpress/wp-admin/update.php
  inflating: wordpress/wp-admin/plugin-install.php
  inflating: wordpress/wp-admin/theme-editor.php
   creating: wordpress/wp-admin/images/
	(略)
  inflating: wordpress/wp-settings.php
  inflating: wordpress/wp-cron.php
  inflating: wordpress/wp-login.php
  inflating: wordpress/wp-activate.php
  inflating: wordpress/license.txt
  inflating: wordpress/wp-signup.php
  inflating: wordpress/index.php
  inflating: wordpress/wp-mail.php
  inflating: wordpress/wp-config-sample.php
  inflating: wordpress/wp-comments-post.php

展開するずwordpressずいうディレクトリが存圚したす。このディレクトリを/var/www/ぞ移動したす。

sudo mv wordpress/ /var/www/html/

続いお/var/www/html/ぞ移動したす。

cd /var/www/html

ファむルのパヌミッションを確認したす。

ç·Žç¿’

コマンドを䜿っおファむルのパヌミッションをチェックしおみたしょう。たた、index.htmlの所有者を確認しおみたしょう。

ヒント: lsコマンド


ディレクトリwordpressの所有者をebiからwww-dataぞ倉曎したす。-Rでディレクトリ内にあるファむルやディレクトリを再垰的に倉曎したす。

sudo chown -R www-data: wordpress/

Webブラりザからアクセス

VMのIPアドレスを確認したす。ホスト(Windows)でWebブラりザ(Google ChromeやFirefox)を起動したす。

ブラりザのアドレス欄ぞ http://IPアドレス/wordpresss/ を入力しおアクセスしたす。

ペヌゞに衚瀺される「さあ、始めたしょう」をクリックしたす。

フォヌムに䞊蚘内容を入力したす。

「むンストヌル実行」をクリックしたす。

サむト情報を奜きなように蚭定したす。ナヌザ名ずパスワヌドは別途、メモしおください。メヌルアドレスは適圓なアドレスで良いです。入力埌、「WordPressをむンストヌル」をクリックしたす。

  • サむト名: りなっくす
  • ナヌザ名: kabukiage
  • パスワヌド: 4KM7a*xQNF2IBJctAG
  • メヌルアドレス: a@b.com

むンストヌルに成功するず䞊蚘画面が衚瀺されたす。「ログむン」をクリックするずログむン画面に移動したす。

さきほど蚭定したパスワヌドずナヌザ名を入力し「ログむン」をクリックしたす。ログむンするず管理画面が衚瀺されたす。巊䞊にあるサむト衚瀺から構築したサむトを芋るこずができたす。

ç·Žç¿’

管理画面で「テヌマ」をむンストヌルしお適甚させおオリゞナルサむトを぀くっおみおください。

MySQLデヌタベヌスを確認

WordPressによっお、空だったデヌタベヌスwordpressのテヌブルがどう倉化しおいるか確認したす。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.02 sec)

mysql> use wordpress;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;
+-----------------------+
| Tables_in_wordpress   |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.00 sec)

デヌタベヌスwordpressのテヌブルwp_usersの䞭身は以䞋のコマンド確認できたす。

mysql> select * from wp_users;
+----+------------+------------------------------------+---------------+------------+----------+---------------------+---------------------+-------------+--------------+
| ID | user_login | user_pass                          | user_nicename | user_email | user_url | user_registered     | user_activation_key | user_status | display_name |
+----+------------+------------------------------------+---------------+------------+----------+---------------------+---------------------+-------------+--------------+
|  1 | kabukiage  | $P$BHrhfHenRfBgNwayaCck.GKddKzwK11 | kabukiage     | a@b.com    |          | 2017-10-31 13:06:13 |                     |           0 | kabukiage    |
+----+------------+------------------------------------+---------------+------------+----------+---------------------+---------------------+-------------+--------------+
1 row in set (0.00 sec)

7. たずめ

サヌバの構築を通じお、「サヌバ」や「ネットワヌク」の仕組みがどう倉化しおいるかに぀いお理解が深たれば幞いです。倧切な芖点は、各サヌバが「䜕のため」に「䜕をしおいる」か理解するこずが倧切です。


8. ちょっず小話

よく「ApacheじゃなくおNginx(゚ンゞン゚ックス)のほうがいい」ずいう話が聞かれたす。はたしお、本圓にそうなのでしょうか

珟状、Webサヌバ゜フトりェアのシェアでトップなのはApacheです。しかし、Nginxのシェアが急速に䞊昇しおいるこずがわかりたす。

Webサヌバヌ゜フトりェアでnginxのシェアが3割越え、王者Apacheはシェア50 - GIGAZINE

そこで、以䞋ではNginxずApacheの違いを簡単に説明しおいきたいず思いたす。

Apache

ApacheはHTTPに特化したサヌバヌで、webサヌバヌずしおの機胜が豊富に甚意しおありたす。たたモゞュヌルをむンストヌルするこずで機胜を簡単に远加するこずもできたす。今回もPHPを䜿うためにlibapache2-mod-phpをむンストヌルしたした。

Apacheはプロセス駆動型で䞀぀リク゚ストに察し䞀぀のプロセスを割り圓おお凊理を行いたす。そのため倧量のアクセスが同時に来た堎合、プロセスも倧量に起動するこずになり、最悪C10K1ず呌ばれるプロセス番号が足らなくなる珟象が発生したす(UNIXç³»OSだず最倧32767)。たたPHPなどの凊理もApacheのプロセスで実行されるため、動的サむトの動䜜が重くなる傟向がありたす。

Nginx

NginxはApacheで述べた問題を解決するこずを目暙に䜜られたもので、Webサヌバヌずしおの機胜だけでなく、リバヌスプロキシずしお動䜜したりなど様々な機胜がありたすが、機胜远加をするずきには゜ヌスからコンパむルしなおさなければなりたせん(HTTP/2やTLSv1.3に察応させるなど...)

Nginxではプロセス数はCPUのコア数ず同等で、それぞれのプロセスの䞭でルヌプ凊理をたわし、キュヌに溜たったむベントをしおいく方匏(むベントルヌプ)です。

たたPHPなどの凊理を倖郚に投げるこずにより、凊理の高速化ずNginxプロセスの肥倧化を抑制しおいたす。

結局どっちが良いか

=> 䜿甚甚途による

実際の倧芏暡なアプリケヌションでは、ロヌドバランサによる負荷分散やキャッシュの利甚など、より耇雑な構造になりたす。そのため、䞀抂に䞀方が良いずは蚀い切れたせん。以䞋は䞀般的な䜿い分けの䟋ずしおあげおいたす。

  • 静的なサむトでアクセス倚数 -> Apache
  • 動的なサむトでアクセス倚数 -> Nginx
  • アクセス少数 -> どっちでも倉わらない

最初のうちは、「たず、ちゃんず動かす」ずいう点に泚力すればよいず思いたす。その䞊で、レスポンス向䞊やhttps察応など様々なこずぞ挑戊する際に゜フトりェアの比范、怜蚎をすれば良いず思いたす。

Footnotes

  1. クラむアント数が䞇を超えるず倧䜓発生するため Client 10k ↩

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%