Linux　初期設定　自分用メモ　crossfish21

 root以外のユーザを追加する

```
useradd user21  でユーザ「user21」を追加

passwd user21　で、user21のパスワードを設定する

New password: に、パスワードを入力

新ユーザでログインしてみる
```
---

sudoの設定

```
usermod -G wheel user21  で、user21にsudoを設定する


CentOS6.9は、visudoで設定を書き換える必要があるが、CentOS7は必要が無いみたい


user21でログインし、sudo shutdown -h now　でシャットダウンしてみる。できれば問題なし
```
---
システムのアップデート

```
yum -y update  でアップデート実行
```
---

Java8のインストール

```
yum -y install java-1.8.0-openjdk-devel  でインストール
Complete!  と出力されればOK


インストール先は、/usr/share
```
---

apacheのインストール

```
yum -y install httpd

Complete  と出力されればＯＫ

systemctl start httpd
systemctl enable httpd
```
---
tomcat8のインストール

```
useradd -s /sbin/nologin tomcat   で「tomcat」という名前のTOM専用ユーザを作る



cd ~  でホームに移動



curl -OL http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz  で、tomcatのファイルをダウンロードする

※※※※※※※※  tomcatのバージョン番号は結構頻繁に変わっているみたいなので、tarファイルの解凍に失敗した時などはリンク先を確認しよう        ※※※※※※※



tar zxfv apache-tomcat-8.5.28.tar.gz　で解凍する



mkdir /opt/tomcat8   でディレクトリを作る



mv ~/apache-tomcat-8.5.28  /opt/tomcat8   でファイル移動する



chown -R tomcat:tomcat /opt/tomcat8   「/opt/tomcat8」以下のファイル等を、ユーザ名「tomcat」、グループ名「tomcat」で所有者を設定する



/etc/profile  に以下の3行を追加する。※JAVA_HOME=は、JDKのパスにしないと駄目らしい。JREのパスだと、CentOS7ではMAVENで不具合がおきるから

JAVA_HOME=/usr/lib/jvm/java-1.8.0
CATALINA_HOME=/usr/local/opt/tomcat8/apache-tomcat-8.5.28
export JAVA_HOME CATALINA_HOME

source /etc/profile　で、環境変数の設定を有効にする


echo $JAVA_HOME　　でJAVA_HOMEを確認。/usr/lib/jvm/java-1.8.0 になっていればいいかな



vi /etc/systemd/system/tomcat.service  で、/etc/systemd/system/にtomcat.serviceというファイルを新規作成する。内容は以下

[Unit]
 Description=Apache Tomcat 8
 After=network.target

[Service]
 User=tomcat
 Group=tomcat
 Type=oneshot
 PIDFile=/opt/apache-tomcat8/apache-tomcat-8.5.28/tomcat.pid
 RemainAfterExit=yes

 ExecStart=/opt/tomcat8/apache-tomcat-8.5.28/bin/startup.sh
 ExecStop=/opt/tomcat8/apache-tomcat-8.5.28/bin/shutdown.sh
 ExecReStart=/opt/tomcat8/apache-tomcat-8.5.28/bin/shutdown.sh;/opt/tomcat8/apache-tomcat-8.5.28/bin/startup.sh

[Install]
 WantedBy=multi-user.target
 
 
以下の2つのコマンドで、tomcatのサービスを有効にする
chmod 755 /etc/systemd/system/tomcat.service
systemctl enable tomcat



systemctl start tomcat  で、tomcatを起動する
※systemctl stop tomcatで停止、systemctl restart tomcatで再起動になる



systemctl stop firewalld　でfirewalldを無効にする



VPSのIP＋:8080　をURLに入れて、ブラウザでTOMのtopページに入ってみる
表示されれば成功
```
---
MriaDBのjdbcコネクタのインストール

```
MAVENが必要になるので、最初にインストールを実行する
http://maven.apache.org/download.cgi  で、MAVENのダウンロードリンク先を確認



cd ~/  で、ルートに戻ったほうが作業がやりやすい



curl -OL http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz  でダウンロードする
※今回の例はmaven-3.5.2



tar zxvf apache-maven-3.5.2-bin.tar.gz  で解凍する



mv apache-maven-3.5.2 /opt/maven　　で、/opt/mavenにファイルを移動する。ディレクトリは任意のところでいい


vi /etc/profile.d/maven.sh で、/etc/profile.dにmaven.shというファイルを新規作成。内容は以下にする

export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2:$PATH


source /etc/profile.d/maven.sh　で変更を反映


mvn --version　でMAVENのバージョンを確認する。MAVENの情報が表示されればOK



git clone https://github.com/MariaDB/mariadb-connector-j.git　で、GITを使用してMariaDBのJDBCを入手。
ソースをダウンロードしてMAVENでビルドする方法らしい



現在のディレクトリに、mariadb-connector-jというディレクトリが作成される
cd mariadb-connector-j/　でmariadb-connector-jに移動する


mvn -Dmaven.test.skip=true package　で、ビルド開始。結構時間がかかる。BUILD SUCCESSと表示されればOK



/target/　に、mariadb-java-client-*.*.*.jarというファイルが作成される。これがJDBCドライバ。


mariadb-java-client-*.*.*.jarを、/opt/tomcat8/apache-tomcat-8.5.28/libにコピーする

```
---

MriaDBのjdbcコネクタのインストール

```
MAVENが必要になるので、最初にインストールを実行する
http://maven.apache.org/download.cgi  で、MAVENのダウンロードリンク先を確認



cd ~/  で、ルートに戻ったほうが作業がやりやすい



curl -OL http://www-eu.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz  でダウンロードする
※今回の例はmaven-3.5.2



tar zxvf apache-maven-3.5.2-bin.tar.gz  で解凍する



mv apache-maven-3.5.2 /opt/maven　　で、/opt/mavenにファイルを移動する。ディレクトリは任意のところでいい


vi /etc/profile.d/maven.sh で、/etc/profile.dにmaven.shというファイルを新規作成。内容は以下にする

export M2_HOME=/opt/maven
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2:$PATH


source /etc/profile.d/maven.sh　で変更を反映


mvn --version　でMAVENのバージョンを確認する。MAVENの情報が表示されればOK



git clone https://github.com/MariaDB/mariadb-connector-j.git　で、GITを使用してMariaDBのJDBCを入手。
ソースをダウンロードしてMAVENでビルドする方法らしい



現在のディレクトリに、mariadb-connector-jというディレクトリが作成される
cd mariadb-connector-j/　でmariadb-connector-jに移動する


mvn -Dmaven.test.skip=true package　で、ビルド開始。結構時間がかかる。BUILD SUCCESSと表示されればOK



/target/　に、mariadb-java-client-*.*.*.jarというファイルが作成される。これがJDBCドライバ。


mariadb-java-client-*.*.*.jarを、/opt/tomcat8/apache-tomcat-8.5.28/libにコピーする
```
---

TOMとapacheの連携

```
grep AJP /opt/tomcat8/apache-tomcat-8.5.28/conf/server.xml　のコマンドで、server.xmlの内容を検索
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" ></Connector>　の記述があればOK(最初からあるはず)


httpd -M |grep proxy　のコマンドで検索
proxy_moduleと、proxy_ajp_module　が確認できればいいと思う(最初からあるはず)


/etc/httpd/modules　のディレクトリに、mod_proxy.soとmod_proxy_ajp.soがあることを確認


vi /etc/httpd/conf.d/proxy-ajp.conf  のコマンドで、/etc/httpd/conf.d/に"proxy-ajp.conf" という名前でファイルを作成。内容は以下のようにする

<Location /TEST01>
        ProxyPass ajp://localhost:8009/TEST01
        Order allow,deny
        Allow from all
</Location>
<Location /TEST02>
        ProxyPass ajp://localhost:8009/TEST02
        Order allow,deny
        Allow from all
</Location>

※　TEST01、TEST02はアプリケーション名。同じように追加すれば、ほかのアプリもできる


/opt/tomcat8/apache-tomcat-8.5.28/conf　にある、server.xmlの以下の部分をコメントアウトする

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" ></Connector>
               


systemctl restart tomcat　でTOMを再起動



systemctl restart httpd  でapacheを再起動  ※tomを再起動して、apacheを再起動する順番が必須らしい


これで、:8080をURLに入れなくてもOKになるはず
```
---

javaでDB接続する

```
MariaDB　Javaコネクターのインストールをしてあることが前提



/opt/tomcat8/apache-tomcat-8.5.28/conf/server.xml  の内容は以下のような感じ

  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" ></Resource>
    <Resource auth="Container" defaultAutoCommit="false" driverClassName="org.mariadb.jdbc.Driver"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              initialSize="1" maxIdle="1" maxWaitMillis="-1" name="jdbc/globalDBConnect" password="blueAxe21"
              type="javax.sql.DataSource" url="jdbc:mariadb://localhost:3306/DB01?characterEncoding=utf8mb4" username="user21"></Resource>
  </GlobalNamingResources>
  
  
        <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"></Realm>
        <Realm className="org.apache.catalina.realm.DataSourceRealm" dataSourceName="jdbc/globalDBConnect"
             roleNameCol="roleName" userCredCol="passWord" userNameCol="userCode" userRoleTable="role_manage" userTable="user_manage"></Realm>
      </Realm>
```
---

firewalldの設定

```
yum -y install iptables-services  で、iptablesを使えるようにする(CentOS7はfirewalldが本来なので、デフォルトでは使えない


systemctl stop iptables  で、iptablesをストップ

systemctl mask iptables　※これを実行すると、OS起動時にもiptablesが起動しないようになる
systemctl list-unit-files | grep iptables　で、iptables.service  masked　と表示されればOK



systemctl start firewalld
systemctl enable firewalld
でfirewalldを起動

systemctl status firewalld　でfirewalldの状態を確認



以下のコマンドで、各ポートを許可する  ※WEBサーバー用途なら、SSH・HTTP・HTTPDだけでいい
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=smtp --permanent
firewall-cmd --add-service=smtps --permanent
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --add-service=pop3s --permanent
firewall-cmd --add-service=imap --permanent
firewall-cmd --add-service=imaps --permanent


firewall-cmd --reload  で、設定を反映するため再起動する



firewall-cmd --list-service　で、設定を確認する


firewall-cmd --list-port  で、一応開けているポート番号が見える
```
---

javaアプリのデプロイと、tomcat,apacheの再起動

```
/opt/tomcat8/apache-tomcat-8.5.24/webapps/　に、javaアプリのwarファイルをコピーする(今回の例ではTEST01、TEST02)


※以下は、tomcat・apacheをインストール・設定してからの作業になる
systemctl restart tomcat  で、tomcatを再起動

systemctl restart httpd　で、apacheを再起動



systemctl start firewalld　で、firewalldの設定を有効にする



※これで、TEST01やTEST02のアプリが接続できるようになっているはず
```