CentOS7インストール, LAMP, Java, COBOL, eclipse, spring, Git, TeX

--------------------------------------------------------------------------------

備考:
  ・Windows10上にVirtualBoxでLinux環境を構築します。
  ・インターネットにつながっていない環境にも対応しています。

--------------------------------------------------------------------------------

・前処理

 ・用意するもの

    CentOS-7-x86_64-DVD-1810.iso
    apache-tomcat-9.0.19.tar.gz
    eclipse-jee-2019-03-R-linux-gtk-x86_64.tar.gz
    git-2.9.5.tar.xz
    git-htmldocs-2.9.5.tar.xz
    gnucobol-3.0-rc1.tar.xz
    jdk-12.0.1_linux-x64_bin.rpm
    nkf-2.1.5.tar.gz
    php-7.3.2.tar.gz
    spring-tool-suite-4-4.2.1.RELEASE-e4.11.0-linux.gtk.x86_64.tar.gz
    texlive2018-20180414.iso

 ・準備

  ・マウント: CentOS-7-x86_64-DVD-1810.iso

--------------------------------------------------------------------------------

・Oracle VM VirtualBox マネージャ で 新規作成

 ・名前    c7
 ・タイプ   Linux
 ・バージョン Other Linux (64bit)

 ・メモリサイズ 1024MB
 ・仮想ハードディスクを作成する
 ・ハードディスクのファイルタイプ: VDI(VirtualBox Disk Image)
 ・物理ハードディスクにあるストレージ: 可変サイズ
 ・ファイルの場所とサイズ: c7, 80GB
 ・[作成]

--------------------------------------------------------------------------------

・ネットワーク設定

 ・[設定(S)] - ネットワーク
  ・割り当て(A): ブリッジアダプター
  ・[OK]

--------------------------------------------------------------------------------

・インストール

 ・起動(T)
 ・Install CentOS 7
  ・Language: English (United States)
  ・DATE & TIME: Asia Tokyo
  ・KEYBOARD: Japanese
  ・SOFTWARE SELECTION: Server with GUI; Development Tools;
  ・KDUMP: disabled
  ・NETWORK & HOST ; Ethernet = ON;
  ・[Begin Installation]

  ・ROOT PASSWORD
  ・USER CREATION

  ・(処理終了を待つ)

  ・Reboot

  ・(再起動後に仮想ドライブをアンマウント)

  ・LICENSE INFORMATION: I accpt the license agreement.
  ・[FINISH CONFIGURATION]

  ・Log-in and Initial GUI settings...

  ・固定IP
      $ su -
      # cd /etc/sysconfig/network-scripts
      # cp ifcfg-enp0s3 _ifcfg-enp0s3_org
      # vi ifcfg-enp0s3
      # diff _ifcfg-enp0s3_org ifcfg-enp0s3
      < BOOTPROTO="dhcp"
      ---
      > BOOTPROTO="static"
      > IPADDR="192.168.3.223"
      > NETMASK="255.255.255.0"
      > GATEWAY="192.168.3.1"
      # 

  ・Disable SELINUX
      # cd /etc/selinux
      # vi config
      # grep '^SELINUX=' config
      SELINUX=disabled
      #

  ・Not GUI
      # systemctl set-default multi-user.target
      # shutdown -r now

  ・DNS Client (外部接続しない場合は不要。)
      # vi /etc/resolv.conf
      # cat /etc/resolv.conf
      nameserver 192.168.3.1
      #

--------------------------------------------------------------------------------

・以降、client端末からsshでログインし、処理します。

--------------------------------------------------------------------------------

・パッケージの構築

 ・クライアント側から、以下のファイルをサーバのどこか(例えば/...anywhere...)にコピー。
    CentOS-7-x86_64-DVD-1810.iso
    apache-tomcat-9.0.19.tar.gz
    eclipse-jee-2019-03-R-linux-gtk-x86_64.tar.gz
    git-2.9.5.tar.xz
    git-htmldocs-2.9.5.tar.xz
    gnucobol-3.0-rc1.tar.xz
    jdk-12.0.1_linux-x64_bin.rpm
    nkf-2.1.5.tar.gz
    php-7.3.2.tar.gz
    spring-tool-suite-4-4.2.1.RELEASE-e4.11.0-linux.gtk.x86_64.tar.gz
    texlive2018-20180414.iso

 ・サーバ側はrootで処理。

    # mount -o loop -t iso9660 /...anywhere.../CentOS-7-x86_64-DVD-1810.iso /mnt
    # mkdir /Packages
    # cd /Packages
    # cp /mnt/Packages/* .
    # umount /mnt
    # rm -f /...anywhere.../CentOS-7-x86_64-DVD-1708.iso

--------------------------------------------------------------------------------

・ソフトウェアのインストール

 ・ImageMagick

    # cd /Packages
    # rpm -ivh \
    ImageMagick-6.7.8.9-15.el7_2.x86_64.rpm \
    libwmf-lite-0.2.8.4-41.el7_1.x86_64.rpm \
    ilmbase-1.0.3-7.el7.x86_64.rpm \
    OpenEXR-libs-1.7.1-7.el7.x86_64.rpm

 ・emacs

    # cd /Packages
    # rpm -ivh \
    emacs-24.3-22.el7.x86_64.rpm \
    emacs-common-24.3-22.el7.x86_64.rpm \
    libotf-0.9.13-4.el7.x86_64.rpm \
    libXaw-1.0.13-4.el7.x86_64.rpm \
    liblockfile-1.08-17.el7.x86_64.rpm

 ・lynx, wget

    # cd /Packages
    # rpm -ivh lynx-2.8.8-0.3.dev15.el7.x86_64.rpm
    # rpm -ivh wget-1.14-18.el7.x86_64.rpm

 ・nkf

    # cd /usr/local/src
    # tar xzf /...anywhere.../nkf-2.1.5.tar.gz
    # rm -f /...anywhere.../nkf-2.1.5.tar.gz
    # cd nkf-2.1.5
    # make
    # cp nkf /usr/local/bin
    # cd /usr/local/src
    # rm -Rf nkf-2.1.5

 ・MariaDB(MySQL)

    # cd /Packages
    # rpm -ivh \
    mariadb-5.5.60-1.el7_5.x86_64.rpm \
    mariadb-server-5.5.60-1.el7_5.x86_64.rpm \
    perl-DBD-MySQL-4.023-6.el7.x86_64.rpm

 ・Apache Web Server : HTTPD

    # cd /Packages
    # rpm -ivh \
    mailcap-2.1.41-2.el7.noarch.rpm \
    httpd-devel-2.4.6-88.el7.centos.x86_64.rpm \
    httpd-2.4.6-88.el7.centos.x86_64.rpm \
    apr-devel-1.4.8-3.el7_4.1.x86_64.rpm \
    apr-util-devel-1.5.2-6.el7.x86_64.rpm \
    httpd-tools-2.4.6-88.el7.centos.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 \
    mod_ssl-2.4.6-88.el7.centos.x86_64.rpm

 ・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 \
    pcre-devel-8.32-17.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 /...anywhere.../php-7.3.2.tar.gz
    # rm -f /...anywhere.../php-7.3.2.tar.gz
    # cd php-7.3.2
    # ./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/bin/apxs
    # make && make install

 ・TeX

    # cd /Packages
    # rpm -ivh \
    perl-Digest-MD5-2.52-3.el7.x86_64.rpm \
    perl-Digest-1.17-245.el7.noarch.rpm
    # mount -t iso9660 -o loop /...anywhere.../texlive2018-20180414.iso /mnt
    # cd /mnt
    # ./install-tl

    [I] <--- check

    .........
    .........
    .........

    Welcome to TeX Live!

    See /usr/local/texlive/2018/index.html for links to documentation.
    The TeX Live web site (http://tug.org/texlive/) contains any updates and
    corrections. TeX Live is a joint project of the TeX user groups around the
    world; please consider supporting it by joining the group best for you. The
    list of groups is available on the web at http://tug.org/usergroups.html.

    Add /usr/local/texlive/2018/texmf-dist/doc/man to MANPATH.
    Add /usr/local/texlive/2018/texmf-dist/doc/info to INFOPATH.
    Most importantly, add /usr/local/texlive/2018/bin/x86_64-linux
    to your PATH for current and future sessions.

    Logfile: /usr/local/texlive/2018/install-tl.log
    # cd
    # umount /mnt
    # rm -f /...anywhere.../texlive2018-20180414.iso

--------------------------------------------------------------------------------

・ミドルウェアの設定

 ・MariaDB

    # cd /etc
    # cp my.cnf _my.cnf
    # vi my.cnf
    # diff _my.cnf my.cnf
    9a10
    > character-set-server=utf8
    # systemctl enable mariadb.service
    # systemctl start mariadb.service
    # /usr/bin/mysql_secure_installation
    # mysql -u root -p

 ・Apache WEB Server

    # systemctl enable httpd
    # systemctl start httpd
    # cd /etc/httpd/conf
    # cp httpd.conf _httpd.conf
    # vi httpd.conf
    # diff _httpd.conf httpd.conf
    104c104
    <     AllowOverride none
    ---
    >     AllowOverride All
    152c152
    <     AllowOverride None
    ---
    >     AllowOverride All
    165c165
    <     DirectoryIndex index.html
    ---
    >     DirectoryIndex index.php index.html
    257c257
    <     AllowOverride None
    ---
    >     AllowOverride FileInfo
    354a355,360
    >
    > #
    > # PHP
    > #
    > AddType application/x-httpd-php .php
    > AddType application/x-httpd-php-source .phps
    # 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

--------------------------------------------------------------------------------

MariaDBを外部らかアクセス

CREATE USER 'root'@'192.168.3.%' IDENTIFIED BY '..password..';
GRANT ALL ON *.* TO 'root'@'192.168.3.%';
SELECT User,Host FROM mysql.user;

# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-ports

--------------------------------------------------------------------------------
Java-SE

# rpm -ivh /...anywhere.../jdk-12.0.1_linux-x64_bin.rpm
# rm -f /...anywhere.../jdk-12.0.1_linux-x64_bin.rpm

--------------------------------------------------------------------------------

TOMCAT

# useradd -s /sbin/nologin tomcat
# cd /usr/local
# tar xzf /...anywhere.../apache-tomcat-9.0.19.tar.gz
# chown -R tomcat:tomcat /usr/local/apache-tomcat-9.0.19
# ln -s /usr/local/apache-tomcat-9.0.19 /usr/local/tomcat
# vi /etc/profile
<<< 追加
JAVA_HOME=/usr/java/default
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
>>>
# exit

ここでOSをリブートし、再びrootでログイン。

# cp /usr/local/tomcat/bin/commons-daemon-native.tar.gz /tmp
# rm -f /usr/local/tomcat/bin/commons-daemon-native.tar.gz
# cd /tmp
# tar xvzf commons-daemon-native.tar.gz
# cd commons-daemon-1.1.0-native-src/unix
# ./configure
# make
# cp jsvc /usr/local/tomcat/bin
# chown tomcat:tomcat /usr/local/tomcat/bin/jsvc

# vi /etc/systemd/system/tomcat.service
# cat /etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Servlet Container
After=syslog.target network.target

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
KillMode=none

[Install]
WantedBy=multi-user.target
# chmod 755 /etc/systemd/system/tomcat.service
# vi /etc/sysconfig/tomcat
# cat /etc/sysconfig/tomcat
JAVA_HOME=/usr/java/default
TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
#

# systemctl daemon-reload
# systemctl enable tomcat.service
# systemctl start tomcat.service
# systemctl status tomcat.service
# firewall-cmd --zone=public --add-port=8080/tcp --permanent
# firewall-cmd --reload

--------------------------------------------------------------------------------

Java

# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib

リブート

--------------------------------------------------------------------------------

eclipse

# cd /usr/local
# tar -xvzof /...anywhere.../eclipse-jee-2019-03-R-linux-gtk-x86_64.tar.gz
# rm -f /...anywhere.../eclipse-jee-2019-03-R-linux-gtk-x86_64.tar.gz

$ cd
$ mkdir eclipse-workspace
$ /usr/local/eclipse/eclipse &

--------------------------------------------------------------------------------

STS (Spring Tool Suite)

# cd /usr/local/
# tar xzf /...anywhere.../spring-tool-suite-4-4.2.1.RELEASE-e4.11.0-linux.gtk.x86_64.tar.gz
# rm -f /...anywhere.../spring-tool-suite-4-4.2.1.RELEASE-e4.11.0-linux.gtk.x86_64.tar.gz

$ cd
$ mkdir sts-workspace
$ /usr/local/sts-4.2.1.RELEASE/SpringToolSuite4 &

--------------------------------------------------------------------------------

COBOL

# cd /Packages
# rpm -ihv gmp-devel-6.0.0-15.el7.x86_64.rpm

# xz -dv /...anywhere.../gnucobol-3.0-rc1.tar.xz
# cd /usr/local
# tar xf /...anywhere.../gnucobol-3.0-rc1.tar
# rm -f /...anywhere.../gnucobol-3.0-rc1.tar
# chown -R root:root gnucobol-3.0-rc1
# cd gnucobol-3.0-rc1
# ./configure
# make && make install

Manual
  https://open-cobol.sourceforge.io/doc/gnucobol.html

$ cd
$ vi .bash_profile
$ tail -2 .bash_profile
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
$ exit

再ログイン
$ vi hello.cob
$ cat hello.cob
      * コメント
      *
      *
      *
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE-01.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       PROCEDURE DIVISION.
       MAIN.
       DISPLAY "Hello world!" UPON CONSOLE.
       STOP RUN.
$ cobc -x hello.cob
# ./hello
Hello world!
$

--------------------------------------------------------------------------------

GIT

# rpm -ivh \
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch.rpm \
perl-ExtUtils-Install-1.58-293.el7.noarch.rpm \
perl-ExtUtils-Manifest-1.61-244.el7.noarch.rpm \
perl-devel-5.16.3-293.el7.x86_64.rpm \
perl-ExtUtils-ParseXS-3.18-3.el7.noarch.rpm \
gdbm-devel-1.10-8.el7.x86_64.rpm \
systemtap-sdt-devel-3.3-3.el7.x86_64.rpm \
pyparsing-1.5.6-9.el7.noarch.rpm

本来ならば以下のrpmも必要だが、これらは既にインストールされている。
  zlib-devel-1.2.7-18.el7.x86_64.rpm \
  openssl-devel-1.0.2k-16.el7.x86_64.rpm \
  autoconf-2.69-11.el7.noarch.rpm \
  gettext-devel-0.19.8.1-2.el7.x86_64.rpm \
  expat-devel-2.1.0-10.el7_3.x86_64.rpm \
  libcurl-devel-7.29.0-51.el7.x86_64.rpm \

# cd /usr/local
# xz -dv /...anywhere.../git-2.9.5.tar.xz
# tar xf /...anywhere.../git-2.9.5.tar
# rm -f /...anywhere.../git-2.9.5.tar
# cd git-2.9.5
# make configure
# make all && make install
# git --version

--------------------------------------------------------------------------------