--------------------------------------------------------------------------------
備考:
・Windows10上にVirtualBoxでLinux環境を構築します。
・インターネットにつながっていない環境にも対応しています。
--------------------------------------------------------------------------------
・前処理
・用意するもの
Oracle VM VirtualBox
CentOS-7-x86_64-DVD-1810.iso
emacs-26.2.tar.gz
httpd-2.4.39.tar.gz
mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
nkf-2.1.5.tar.gz
perl-5.30.0.tar.gz
php-7.3.7.tar.gz
・準備
・マウント: /...Anywhere.../CentOS-7-x86_64-DVD-1810.iso
--------------------------------------------------------------------------------
・Oracle VM VirtualBox マネージャ で 新規作成
・名前 t02
・タイプ Linux
・バージョン Other Linux (64bit)
・メモリサイズ 1024MB
・仮想ハードディスクを作成する
・ハードディスクのファイルタイプ: VDI(VirtualBox Disk Image)
・物理ハードディスクにあるストレージ: 可変サイズ
・ファイルの場所とサイズ: t02, 80GB
・[作成]
--------------------------------------------------------------------------------
・ネットワーク設定
・[設定(S)] - ネットワーク
・割り当て(A): ホストオンリーアダプター Host Only Adapter
・[OK]
--------------------------------------------------------------------------------
・インストール
・起動(T)
・Install CentOS 7
・Language: English (United States)
・DATE & TIME: Asia Tokyo
・KEYBOARD: Japanese
・SOFTWARE SELECTION: Infrastructure Server
・KDUMP: disabled
・NETWORK & HOST ; Ethernet = ON;
・[Begin Installation]
・ROOT PASSWORD
・USER CREATION
・(処理終了を待つ)
・Reboot
・固定IP
# cd /etc/sysconfig/network-scripts
# cp ifcfg-enp0s3 _ifcfg-enp0s3_
# vi ifcfg-enp0s3
# diff _ifcfg-enp0s3_ ifcfg-enp0s3
4c4,7
< BOOTPROTO=dhcp
---
> BOOTPROTO=static
> IPADDR=192.168.137.12
> NETMASK=255.255.255.0
> GATEWAY=192.168.137.1
15c18
< ONBOOT=no
---
> ONBOOT=yes
#
--------------------------------------------------------------------------------
・Disable SELINUX
# cd /etc/selinux
# vi config
# grep '^SELINUX=' config
SELINUX=disabled
# shutdown -r now
--------------------------------------------------------------------------------
・以降、client端末からsshでログインし、処理します。
--------------------------------------------------------------------------------
・パッケージの構築
・クライアント側から、以下のファイルをサーバのどこか(/home/devusr/wrk)にコピー。
CentOS-7-x86_64-DVD-1810.iso
emacs-26.2.tar.gz
httpd-2.4.39.tar.gz
mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
nkf-2.1.5.tar.gz
perl-5.30.0.tar.gz
php-7.3.7.tar.gz
・サーバ側はrootで処理。
# mount -o loop -t iso9660 /home/devusr/wrk/CentOS-7-x86_64-DVD-1810.iso /mnt; \
mkdir /Packages; cd /Packages; \
cp /mnt/Packages/* .; \
umount /mnt; rm -f /home/devusr/wrk/CentOS-7-x86_64-DVD-1810.iso
--------------------------------------------------------------------------------
・ソフトウェアのインストール
・gcc, c++, cmake, bison
# cd /Packages; \
rpm -ivh \
gcc-4.8.5-36.el7.x86_64.rpm \
cpp-4.8.5-36.el7.x86_64.rpm \
glibc-devel-2.17-260.el7.x86_64.rpm \
libmpc-1.0.1-3.el7.x86_64.rpm \
mpfr-3.1.1-4.el7.x86_64.rpm \
glibc-headers-2.17-260.el7.x86_64.rpm \
kernel-headers-3.10.0-957.el7.x86_64.rpm \
gcc-c++-4.8.5-36.el7.x86_64.rpm \
libstdc++-devel-4.8.5-36.el7.x86_64.rpm \
cmake-2.8.12.2-2.el7.x86_64.rpm \
libarchive-3.1.2-10.el7_2.x86_64.rpm \
bison-3.0.4-2.el7.x86_64.rpm \
m4-1.4.16-10.el7.x86_64.rpm
・ImageMagick
# cd /Packages; \
rpm -ivh \
ImageMagick-6.7.8.9-15.el7_2.x86_64.rpm \
ilmbase-1.0.3-7.el7.x86_64.rpm \
libICE-1.0.9-9.el7.x86_64.rpm \
OpenEXR-libs-1.7.1-7.el7.x86_64.rpm \
libSM-1.2.2-2.el7.x86_64.rpm \
libX11-1.6.5-2.el7.x86_64.rpm \
libXext-1.3.3-3.el7.x86_64.rpm \
libXt-1.1.5-3.el7.x86_64.rpm \
cairo-1.15.12-3.el7.x86_64.rpm \
fontconfig-2.13.0-4.3.el7.x86_64.rpm \
gdk-pixbuf2-2.36.12-3.el7.x86_64.rpm \
ghostscript-9.07-31.el7.x86_64.rpm \
jasper-libs-1.900.1-33.el7.x86_64.rpm \
libjpeg-turbo-1.2.90-6.el7.x86_64.rpm \
libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm \
pango-1.42.4-1.el7.x86_64.rpm \
librsvg2-2.40.20-1.el7.x86_64.rpm \
libtiff-4.0.3-27.el7_3.x86_64.rpm \
libwmf-lite-0.2.8.4-41.el7_1.x86_64.rpm \
libX11-common-1.6.5-2.el7.noarch.rpm \
libxcb-1.13-1.el7.x86_64.rpm \
mesa-libEGL-18.0.5-3.el7.x86_64.rpm \
mesa-libGL-18.0.5-3.el7.x86_64.rpm \
libXrender-0.9.10-1.el7.x86_64.rpm \
fontpackages-filesystem-1.44-8.el7.noarch.rpm \
ghostscript-fonts-5.50-32.el7.noarch.rpm \
lcms2-2.6-3.el7.x86_64.rpm \
mesa-libgbm-18.0.5-3.el7.x86_64.rpm \
cups-libs-1.6.3-35.el7.x86_64.rpm \
poppler-data-0.4.6-3.el7.noarch.rpm \
urw-fonts-2.4-16.el7.noarch.rpm harfbuzz-1.7.5-2.el7.x86_64.rpm \
libXft-2.3.2-2.el7.x86_64.rpm \
libthai-0.1.14-9.el7.x86_64.rpm \
jbigkit-libs-2.0-11.el7.x86_64.rpm \
libXau-1.0.8-2.1.el7.x86_64.rpm \
libxshmfence-1.2-1.el7.x86_64.rpm \
libXdamage-1.1.4-4.1.el7.x86_64.rpm \
libXfixes-5.0.3-1.el7.x86_64.rpm \
graphite2-1.3.10-1.el7_3.x86_64.rpm \
mesa-libglapi-18.0.5-3.el7.x86_64.rpm \
avahi-libs-0.6.31-19.el7.x86_64.rpm \
xorg-x11-font-utils-7.5-21.el7.x86_64.rpm \
libXfont-1.5.4-1.el7.x86_64.rpm \
libfontenc-1.1.3-3.el7.x86_64.rpm \
gnu-free-mono-fonts-20120503-8.el7.noarch.rpm \
gnu-free-fonts-common-20120503-8.el7.noarch.rpm \
dejavu-sans-fonts-2.33-6.el7.noarch.rpm \
fribidi-1.0.2-1.el7.x86_64.rpm \
libglvnd-egl-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm \
libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm \
dejavu-fonts-common-2.33-6.el7.noarch.rpm \
libwayland-server-1.15.0-1.el7.x86_64.rpm \
libglvnd-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm \
libwayland-client-1.15.0-1.el7.x86_64.rpm \
libXxf86vm-1.1.4-1.el7.x86_64.rpm
・emacs
# cd /Packages; \
rpm -ivh \
ncurses-term-5.9-14.20130511.el7_4.noarch.rpm \
ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm; \
cd /usr/local/src; \
tar xzf /home/devusr/wrk/emacs-26.2.tar.gz; \
rm -f /home/devusr/wrk/emacs-26.2.tar.gz; \
cd emacs-26.2; \
./configure --with-gnutls=no; \
make && make install
・nkf
# cd /usr/local/src; \
tar xzf /home/devusr/wrk/nkf-2.1.5.tar.gz; \
rm -f /home/devusr/wrk/nkf-2.1.5.tar.gz; \
cd nkf-2.1.5; \
make; \
cp nkf /usr/local/bin
・Apache Web Server : HTTPD
# cd /Packages; \
rpm -ivh \
apr-1.4.8-3.el7_4.1.x86_64.rpm \
apr-devel-1.4.8-3.el7_4.1.x86_64.rpm \
apr-util-1.5.2-6.el7.x86_64.rpm \
apr-util-devel-1.5.2-6.el7.x86_64.rpm \
expat-devel-2.1.0-10.el7_3.x86_64.rpm \
libdb-devel-5.3.21-24.el7.x86_64.rpm \
openldap-devel-2.4.44-20.el7.x86_64.rpm \
cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm \
cyrus-sasl-2.1.26-23.el7.x86_64.rpm \
cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm \
pcre-devel-8.32-17.el7.x86_64.rpm; \
cd /usr/local/src/; \
tar xzf /home/devusr/wrk/httpd-2.4.39.tar.gz; \
rm -f /home/devusr/wrk/httpd-2.4.39.tar.gz; \
cd httpd-2.4.39; \
./configure; \
make && make install
・PHP7
# cd /Packages; \
rpm -ivh \
libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm \
zlib-devel-1.2.7-18.el7.x86_64.rpm \
xz-devel-5.2.2-1.el7.x86_64.rpm \
openssl-devel-1.0.2k-16.el7.x86_64.rpm \
krb5-devel-1.15.1-34.el7.x86_64.rpm \
keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm \
libverto-devel-0.2.5-4.el7.x86_64.rpm \
libcom_err-devel-1.42.9-13.el7.x86_64.rpm \
libkadm5-1.15.1-34.el7.x86_64.rpm \
libselinux-devel-2.5-14.1.el7.x86_64.rpm \
libsepol-devel-2.5-10.el7.x86_64.rpm \
bzip2-devel-1.0.6-13.el7.x86_64.rpm \
libzip-0.10.1-8.el7.x86_64.rpm \
libcurl-devel-7.29.0-51.el7.x86_64.rpm; \
cd /usr/local/src; \
tar xzf /home/devusr/wrk/php-7.3.7.tar.gz; \
rm -f /home/devusr/wrk/php-7.3.7.tar.gz; \
cd /usr/local/src/php-7.3.7; \
./configure \
--enable-mbstring \
--enable-zip \
--enable-bcmath \
--enable-pcntl \
--enable-ftp \
--enable-exif \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-mysqlnd \
--with-curl \
--with-iconv \
--with-openssl \
--with-gettext \
--with-zlib \
--with-bz2 \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--without-libzip \
--with-apxs2=/usr/local/apache2/bin/apxs; \
make && make install
・Perl 5.30
# cd /usr/local/src; \
tar xzf /home/devusr/wrk/perl-5.30.0.tar.gz; \
rm -f /home/devusr/wrk/perl-5.30.0.tar.gz; \
cd perl-5.30.0; \
./configure.gnu; \
make && make install
・MySQL
# cd /Packages; \
tar xf /home/devusr/wrk/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar; \
rm -f /home/devusr/wrk/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar; \
rpm -e mariadb-libs postfix; \
rpm -ivh mysql-community-* \
perl-Data-Dumper-2.145-3.el7.x86_64.rpm \
perl-JSON-2.59-2.el7.noarch.rpm
--------------------------------------------------------------------------------
・ミドルウェアの設定
・MySQL
# systemctl enable mysqld
# systemctl start mysqld
# grep password /var/log/mysqld.log
2019-07-18T03:06:45.089426Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: eR01yeGLq<Av
#
# mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'x@=y1q84Z';
\s
\q
# cp /etc/my.cnf /etc/_my.cnf_
# vi /etc/my.cnf
# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
sql_mode = ""
[client]
default-character-set=utf8mb4
#
# systemctl restart mysqld
・Apache WEB Server
# vi /usr/lib/systemd/system/httpd.service
# cat /usr/lib/systemd/system/httpd.service
[Unit]
Description=Apache httpd daemon
[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl -k start
ExecReload=/usr/local/apache2/bin/apachectl restart -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
[Install]
WantedBy=multi-user.target
#
# systemctl daemon-reload
# systemctl enable httpd
# systemctl start httpd
# cd /usr/local/apache2/conf
# cp httpd.conf _httpd.conf
# vi httpd.conf
# diff _httpd.conf httpd.conf
205c205
< AllowOverride none
---
> AllowOverride All
242c242
< AllowOverride None
---
> AllowOverride All
255c255
< DirectoryIndex index.html
---
> DirectoryIndex index.php index.html
355c355
< AllowOverride None
---
> AllowOverride FileInfo
507a508,512
> #
> # PHP
> #
> AddType application/x-httpd-php .php
> AddType application/x-httpd-php-source .phps
#
# cp /usr/local/src/php-7.3.7/php.ini-development /usr/local/lib/php.ini
# vi /usr/local/lib/php.ini
# diff /usr/local/src/php-7.3.7/php.ini-development /usr/local/lib/php.ini
581a582
> error_log = /var/log/php_error.log
953c954
< ;date.timezone =
---
> date.timezone = Asia/Tokyo
1047c1048
< pdo_mysql.default_socket=
---
> pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
#
# touch /var/log/php_error.log
# chmod 666 /var/log/php_error.log
# systemctl restart httpd
--------------------------------------------------------------------------------
・その他の設定
・Webサーバー(http)のサービス(ポート)を永続的に許可
間違えて設定してしまった場合は「add」の箇所を「remove」にする。
# firewall-cmd --permanent --add-service=http
・httpsサーバーのサービス(ポート)を永続的に許可
# firewall-cmd --permanent --add-service=https
・firewalldを状態の情報を失わずにリロードする。これで設定が有効になる。
# firewall-cmd --reload
・現在有効な機能とゾーンを一覧表示します。
# firewall-cmd --list-all
# firewall-cmd --list-all-zones
# firewall-cmd --list-all --permanent
・アクティブゾーンの確認
# firewall-cmd --get-active-zones
・設定内容の確認
# cat /etc/firewalld/zones/public.xml
・設定内容の確認 個別 https
# ls /usr/lib/firewalld/services
# less /usr/lib/firewalld/services/https.xml
--------------------------------------------------------------------------------
EOL
--------------------------------------------------------------------------------