事務員として入社したのにCentOSにLAMPをインストールすることになったときの備忘録

# 前提：未経験初心者事務入射なのに社内唯一のバックエンドエンジニアになってしまった
　わたし「やってらんね～～～～！！！事務として入ったんですけどどうしてこうなった？？」

# ある日
##上司「新しいVPSサーバにLAMP入れといて…えっ、LAMP知らない？ハ～～～～～～マジで？（クソデカため息）」
　上司「[これ](https://weblabo.oscasierra.net/setup-lamp-rhel7/)読んでインストールよろしく」
　わたし「ぴえん…webなんて何も知らないよう、そもそも私は事務で入ったはず……。いやそんなこと言ってても誰も助けてくれんからね…調べるか…。」

###LAMPとは
> LAMP（ランプ）とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。[※1](https://ja.wikipedia.org/wiki/LAMP_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%90%E3%83%B3%E3%83%89%E3%83%AB))　

わたし「上司オジはアパッチアパッチ言ってたな。これ入れればいいんですね」

#インストールしていく
##Apache httpd のインストール

```コマンド
 # yum -y install httpd
 # httpd -v
```
わたし「うまくいくじゃん、余裕だわ。」

##MySQL Community Server のインストール

```コマンド
 # yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
 # httpd -v
```
わたし「なんで…？さっき上司が渡してきた資料どおりやったけどコマンドが通らないよぅ。
　　　　これってもしかして、令和対応じゃないのかも…。」
わたし「コマンドよくわかんないけど壊してもいいって言ってたしいろんなの試してこ。当たったらラッキーや。」

```コマンド
 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
 # rpm -Uvh mysql-community-release-el7-5.noarch.rpm
 # yum -y install mysql-community-server
 # mysqld --version
```
わたし「通った！なんでだろ。知らんけど、**パッケージがyumのリポジトリに登録されていないまたはバージョンが古いためwgetによってパッケージをダウンロードして何らかのコマンドでインストールされた**んかな。」[2](https://okwave.jp/qa/q3019533.html)


##PHPのインストール

```コマンド
 # yum -y install php php-mysql
 # php --version
```
##サーバーの起動

```コマンド
 # systemctl start httpd.service
 # systemctl start mysqld.service
```

上司「サーバの再起動でサーバが自動的に起動するようにしておいてね。」
わたし「（ふつう再起動したら起動するんじゃないんか？再起動とは？）はい。」

####↑サーバ（=CentOS)の再起動でサーバ（=httpd・MySQL）が自動的に起動するようにしておいてね。
わたし「分かるか。」

```
サーバーを再起動しても起動時に自動的にサーバーが起動するように設定
 # systemctl enable httpd.service
 # systemctl enable mysqld.service
```

わたし「インストールおわりました！」
上司「遅いね。どれどれ…。」
わたし「（事務なのでね。じゃあご自分でやれ）すみません。」
上司「Apacheが起動してないんだけど？httpdはあるの？」
わたし「アパッチが起動してないんですか…？」

### httpdがないとダメらしいので調べる

```
# yum info httpd
```

わたし「（は～？あるやんけ）httpdあります。」
上司「起動して。」

```
# systemctl start httpd.service
# systemctl status httpd.service
```

わたし「この後にhttp ://IPアドレスで検索すると、初期画面が表示されるんやね。OK。…あれ？真っ白やね…。」
わたし「もしかしてファイアウォールの設定がかかってるのかもしれへん。いっつもとなりの席のフロントエンドの人がワフワフ言ってるしたぶんそれや。」

```
一時的にファイアウォールを無効にする
# systemctl stop firewalld
```

わたし「**『Failed to issue method call: Unit firewalld.service not loaded.』**…？じゃあこれはどや。」

```
 firewalld に httpd (80番ポート)への通信を許可
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --reload
```

わたし「**『-bash: firewall-cmd: command not found』**…。詰んだ…。」
上司「まだ？」
わたし「自分でやってくださ～～い！（まだです。）」

##コマンド実行ファイルがないっぽいので、インストールする
わたし「sudoも効かないし、なんか色々なんも入ってないんやな。FW入れればいいんしょ。」
わたし「**iptablesとfirewalldは共存できない**…だと…。」[3](http://centos.server-manual.com/centos7_firewalld.html)

わたし「デフォルトがFWならFWでいいか…？iptablesのメリット調べるか。」
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318675/35cc29c9-33ba-10e3-a28b-34a7a627b5e4.png)
](https://www.atmarkit.co.jp/ait/articles/1602/18/news019.html)
わたし「FWでよくない？」

##firewalldをインストールする
```
IPTABLES停止
# systemctl stop iptables
# systemctl disable iptables
# systemctl is-enabled iptables

firewalldインストール
# yum -y install firewalld
# systemctl start firewalld
# systemctl enable firewalld
# systemctl is-enabled firewalld
→enabledと出力される
# firewall-cmd --list-all #設定確認
```

##再度firewallにhttpdの通信許可に挑戦
```
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload
```

わたし「できた～～～～！！！！！！！！！！！！！！！！！！！」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318675/a37ba107-cb65-941a-41e0-b4b1794da88a.png)


わたし「上司～～！できたよ～～！」
上司「遅かったな。じゃあこれからそのVPSサーバの構成について説明していくで。」
わたし「ぴえん…。」



#まとめ（ここだけ読めばいい）

```
Apacheインストール
 # yum -y install httpd
 # httpd -v
```

```
MySQLインストール
 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
 # rpm -Uvh mysql-community-release-el7-5.noarch.rpm
 # yum -y install mysql-community-server
 # mysqld --version
```
```
PHPインストール
 # yum -y install php php-mysql
 # php --version
```

```
サーバーの起動
 # systemctl start httpd.service
 # systemctl start mysqld.service
```

```
サーバーを再起動しても起動時に自動的にサーバーが起動するように設定
 # systemctl enable httpd.service
 # systemctl enable mysqld.service
```

```
IPTABLES停止
# systemctl stop iptables
# systemctl disable iptables
# systemctl is-enabled iptables
```
```
firewalldインストール
# yum -y install firewalld
# systemctl start firewalld
# systemctl enable firewalld
# systemctl is-enabled firewalld
→enabledと出力される
# firewall-cmd --list-all #設定確認
```
```
Firewallにhttpdの通信許可
# firewall-cmd --permanent --add-service=http
# firewall-cmd --reload
```

以上

次はphpmyadminのインストール
ゲーーーーーーーーーー吐きそう！！！！！！！！！