2021/04/03
Webサーバー構築
1. apacheインストール
```
sudo yum install httpd
```
1. サーバー起動時に自動起動するよう設定
```
sudo systemctl enable httpd.service
```
1. サーバー設定
```
sudo vi /etc/httpd/conf/httpd.conf
```
```conf
- ServerAdmin root@localhost
+ ServerAdmin <<YOUR E-MAIL ADDRESS>>
- ServerName www.example.com:80
+ ServerName YourServerName:80
- AllowOverride None
+ AllowOverride All
```
1. phpインストール
```
sudo amazon-linux-extras install php7.4
```
※ amzn2-coreのphpバージョンが古いためamazon-linux-extrasでインストール
※ リポジトリのバージョン確認コマンド
```
sudo yum list | grep php
```
※ インストール済みか確認
```
rpm -qa | grep php
```
※ インストール済みPHP削除
```
yum remove php-*
```
1. phpモジュールインストール
```
sudo yum install php-cli php-common php-devel php-fpm php-gd php-mysql php-mysqlnd php-mbstring php-pdo php-xml
```
1. php.ini編集
```
sudo vi /etc/php.ini
```
```ini
# HTTPヘッダにPHPのバージョンを記載しない
- expose_php = On
+ expose_php = Off
# メモリ上限を引き上げる
- memory_limit = 128M
+ memory_limit = 512M
# エラーログのパスを変更
- error_log = php_errors.log
+ error_log = /var/log/php_errors.log
# POST送信の許容サイズを引き上げる
- post_max_size = 8M
+ post_max_size = 16M
# アップロードファイルの許容サイズを引き上げる
- upload_max_filesize = 2M
+ upload_max_filesize = 8M
# timezoneの設定
- date.timezone =
+ date.timezone = Asia/Tokyo
# デフォルト言語を日本語に設定
- mbstring.language = Japanese
+ mbstring.language = Japanese
# 文字コード検出のデフォルト値を定義
- mbstring.detect_order = auto
+ mbstring.detect_order = auto
```
- php-fpmのプロセス数を制限(オーバーフロー防止)
```
sudo vi /etc/php-fpm.d/www.conf
```
```conf
# dynamic:以下の設定の範囲内で子プロセスの数を動的に制御します(デフォルトのまま)
pm = dynamic
# 子プロセスの最大数を変更します
- pm.max_children = 50
+ pm.max_children = 10
# php-fpm起動時の初期プロセス数を変更します
- pm.start_servers = 5
+ pm.start_servers = 2
# 待機中の最小プロセス数を変更します
- pm.min_spare_servers = 5
+ pm.min_spare_servers = 2
# 待機中の最大プロセス数を変更します
- pm.max_spare_servers = 35
+ pm.max_spare_servers = 5
```
1. サーバー再起動
```
sudo systemctl restart php-fpm.service
```
```
sudo systemctl restart httpd
```
※ 設定ファイル記述ミス確認
```
sudo service httpd configtest
```
1. Composer インストール
```
cd /tmp && sudo curl -sS https://getcomposer.org/installer | php
```
1. Composerのパスを通す
```
sudo mv composer.phar /usr/bin/composer
```
1. npm、node.jsインストール
```shell
# ビルドツール(gcc-c++)を入れておく
$ yum install gcc-c++ make
# rootユーザーに切り替え
$ sudo su -
# リポジトリ取得
$ curl -sL https://rpm.nodesource.com/setup_12.x | bash -
# インストール
$ yum install nodejs
# Node.js確認
$ node -v
v12.18.0
# npm確認
$ npm -v
6.14.4
```
1. mysql インストール
※ amzn2-coreはmariaDBをインストールしてしまうためMySQLリポジトリからインストール
```
$ sudo yum install http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
$ sudo yum install --enablerepo=mysql57-community mysql-community-server
```
1. mysql自動起動設定
```
sudo chkconfig mysqld on
```
1. mysql起動
```
sudo service mysqld start
```
1. mysql rootパスワード設定
1. デフォルトパスワード確認
```
sudo cat /var/log/mysqld.log | grep "temporary password"
```
1. rootログイン
```
set password for root@localhost=password('password');
```
1. git インストール
```
sudo yum install git
```
1. git アカウント設定
```
$ git config --global user.name "【アカウント名】"
$ git config --global user.email 【メールアドレス】
```
## 参考
- https://miyabi-lab.space/blog/16