Linux
Apache
初心者
サーバー構築
Tomcat8

初カキコ…ども…

俺みたいな業務中でQiitaに投稿してる腐れ野郎、他に、いますかっていねーか、はは

今日のクラスの会話
あの流行りのソースかっこいい とか あの機材ほしい とか
ま、それが普通ですわな

かたや俺は電子の砂漠で死体を見て、呟くんすわ
Hello wolrd.狂ってる?それ、誉め言葉ね。

好きな音楽 [ネクライトーキー]68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3236383133342f66626663373835622d353062372d396366382d626563652d3935356539323433366661632e6a706567.jpg

マジでおすすめです。

なんつってる間にお昼終わりっすよ(笑) あ~あ、社会人の辛いとこね、これ

と、冗談はさておき、これは初めてサーバ構築したときの参考にしたサイトやキーワードをまとめた覚書
また間違えたとこがあったら優しく指摘してくれたら幸い

Linuxのインストールからサーバ構築まで

CentOSインストール

ダウンロード先は公式ページから

このDVD ISOをダウンロードして、DVD-Rに書き込み
それをインストール用のPCに読み込ませて、もろもろの設定

参考ページはここ

大体の設定は参考ページでいいかと
実際にやったときはもともとWindowsが入っていたPCなので、その分のパーテーションの削除しないといけないのに初め気づかなかった…
セキュリティはデフォルトにしたかったけど妙なエラーが出るってことでRedHatなんたら〜というのにしました
ソフトウェアの設定はKDE

ネットワーク接続に関しては、別のpcのコマンドプロンプトからipconfigでからipアドレスとサブネットマスクがわかる
アドレスに関してはこの2つから振り分けられる範囲をもとに設定
デフォルトゲートウェイはこのままで良い
肝心のdnsアドレスはnslookup google.comなどで知ることができる

インストールが終わったら再起動し、まずはCentOSをyumでアップデート

以降各種サービス追加

サービス追加の流れ

大体のサーバーサービス追加の全体の流れは一緒なので、ここにそのメソッドを書いておく

まずはそのサービスの有無について次のコマンドで確認
[root]#systemctl list-unit|less
/#ここにサービス名(一部でもいい)

それがなかった場合や次の段階でconfファイルがなければ、サービスがないと見て、次のコマンドでインストール

[root]yum install #ここにサービス名

それが終わったらここからは各サービスによって設定をいじったり色々な事情がある

それが終わったら基本的にウェブ上でアクセスさせるため、firewalldのポート開放を行う
ちなみにこのfirewallはCentOS7以前ではiptablesで十分用が足りるということで停止するように設定する例が多かったが、7からはfirewalldがiptablesを活用する構図になったぽい(間違ってたらスミマセン)
そしてこのfirewalldは6〜9以上のゾーンファイルをもとにアクセスの可不可を判断する

とりあえず基本的なfirewalld-cmdはここのサイトを参考にした
これをもとにサービスをゾーンファイルに追加する
どこのゾーンファイルに追加するかはプロジェクトによって異なってくるかもしれないが、基本的にデフォルトのゾーンとなるであろう
設定を追加したらfirewalldを再起動することをお忘れなく

firewalldの設定も終えたらサービスを起動していく
最初に自動起動の設定を行い、サービス開始
$sudo systemctl enable #サービス名
$sudo systemctl start #サービス名

それを終えたら最後に接続の確認となる
各サービスに合わせたフリーソフトやwebブラウザから確認が行える
これが成功して初めてでサーバーを立てるのに成功と言える

それでは実際に各サーバーの立て方について見ていくとする

SSH接続

インフラ構築のイロハのイ、SSH接続
このサーバーを立てることで遠隔地からの安全な接続ができるようになる

まずはopenssh-serverをインストールする

このsshまではrootで作業するが、Rootで作業して事故らないよう、ユーザーにsudo権限を付与してユーザーで極力作業する

具体的にはまずsudoグループを作成し、一般ユーザーをそのグループに所属させる
そしてvisudoで以下の一文を追記

%sudo ALL=(ALL) NOPASSWD:ALL

これ以降はRoot権限の必要な場合はsudoをつけるだけで虎の威を借りれる
(一部のディレクトリ作成やファイルコピーの時はできないときもある模様)

権限付与とsshのインストールができたらさっそくsshdサーバを自動起動設定しつつ起動し、ポート開放も行う

無事サーバーが建てられたかの確認は別のpcからTeraTermを使用してアクセス

vsftp

ftpサーバーを立てていく
ftpサーバーはデータをやり取りするときに必要となる

まずはftpのインストール
名称はvsftpdとなる

インストールが終わったらまずはconfファイルを編集する
/etc/vsftp/vsftpd.conf

設定項目に関してはここを参考にした

このftpusersは拒否するユーザーについて定義するリストだったのとpaM認証を有効にしてしまったため、うっかりこのユーザーリストにユーザー名を入れてしまうと、そもそものユーザーログインすらできなくなってしまう…

またこのchroot_listはデフォルトで存在しない場合があるため、そのときは作成するように

最後にfirewalldのサービスにftpを追加して、サーバーを立てる

無事建てられたかどうかはffftpを使用して接続できるかどうかで確認する
できなければ大体configの問題であろう

apache

apacheはwebページを表示させる上で機能するサーバーだ

まずはhttpdをインストールする

その後confについて設定する

/etc/httpd/conf/httpd.conf

confの設定に関してはここを参考とした
使用する箇所のDirectoryのAllowOverrideの項目は要チェック
後のTomcatなどでアクセスできなくなったりする

ドキュメントルートの変更

その後はポート開放からのシステム起動でサーバーが立てられる

確認するにはドキュメントルートに指定されている箇所にindexページなどを作り、http://###.###.###.###/(#部はアドレス)へアクセス
初期ドキュメントルート/var/www/html/
echo hello_world >/var/www/html/index.html

Tomcat導入

apaheとtomcatは共にwebページを閲覧できるようにするシステム
そして前者が静的コンテンツ(html等)向けで後者が動的コンテンツ(jsp,servlet等)向けとなってる
厳密に言えばtomcatはサーブレットコンテナで、一部がサーバーとしての機能を持っている

tmcatの導入はここを参考とした
tomcatの導入の際の手順は以下のとおり

jdkをインストール(インストールするjdkはwebで確認すれば最新のをインストールできる)
次にjdkまでのパスを通す
tomcatユーザーを追加して、
tomcatのtar.gzファイルを/usr/local/srcへダウンロードする
それを展開してtomcatユーザーに所有権を変える

最後にサービス定義ファイルを作成して、パスを通したら、ファイアウォールの独自サービスの追加でtomcatを追加して、ポート開放を行った上で下記のコマンドで実行させる

ちなみに参考元ではシンボリックリンクを作成して、サービスファイルのパスを底に指定しているが、うまくいかなかったため、シンボリックリンクでのアクセスはやめた

```sudo service tomcat enable
sudo service tomcat start'''

確認するには、
http://###.###.###:8080にアクセスすることでtomcat独自のページにアクセスできる

apacheとtomcatの連携

ここまでの時点ではapacheとtomcatが入ってるだけで、厳密にどう働き分けをするかについて定義されていない
それらを改めて設定するためajpモジュールの設定を編集することで連携をさせる

まず、ポート8080の開放はあくまで確認のためであるため、
firemall-cmd --remove=tomcat --permanent で、ポートを閉じる

以下は/etc/httpd/conf/ディレクトリにて作業を行う
まずhttpd.confの設定に以下の一文を書き加える
Include /etc/httpd/conf/extra/httpd-proxy.conf
ここはアンダーバーじゃなくハイホン(ここで半日つぶしたなんていうのは内緒)
それができたらextraディレクトリを作成して、ディレクトリ内にhttpd-proxy.confを作成する
次はその中身

ProxyPass /html !
ProxyPass /images !
ProxyPass / ajp://localhost:8009/program/

それが終わったらhttp://local/program/このアドレスで確認できる

Struts2の導入

ここで最新バージョンのアドレスを確認する
したうえで/usr/local/src/にwgetでダウンロードして解凍する

解凍後は/opt/に移動して、struts2ディレクトリ内のapps内のstruts2-showcase.warとstruts2-rest-showcase.warを/opt/apache-tomcat-8.5.32/webapp/内へコピーする
コピー後は所有権を変更して置くこと

確認方法はこのアドレス(http://localhost/program/struts2-showcase/sshowcase.action)

PostgreSQLの導入

参考にしたサイトはここ
ここ

インストールはおおむね以下の通り

$sudo rpm -iUvh https://download.postgresql.org/pub/repos/yum/testing/11/redhat/rhel-7-x86_64/pgdg-centos11-11-1.noarch.rpm
$sudo yum install --enablerepo=pgdg11 postgresql11-server postgresql11-devel postgresql11-contrib

その後は新しいデータベースクラスタを作成
$sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

その後はサービスの自動化設定と起動を行って、postgresユーザーのパスワード設定

sudo passwd postgres

その後はpostgresユーザーになり、 $psql コマンドでpostgresモードに
そしてそこで

Postgres=# create role #ユーザー名 login created password ‘#パスワード’;

これで特定のユーザーにデータベースの権限が与えられる。

データベースの一覧を見たいときは次のコマンドを使用する

psql -l

駆け足気味だけれど、大体こんな感じでサーバー構築の初歩っぽいところをざっとまとめてみました。