概要
「さくらのクラウドでLAMP環境を構築したい」「インフラ初心者」「初心者でないが苦手なほう...」という方向けに簡単な手順書を作成してみました。
初心者の方向けなので、インフラ構成はシンプルなものにしています。
手順に従って作業していけばLAMP環境ができると思うので、ハンズオン的に使っていただければ幸いです。
※全ての動作を保証するものではないため、その点ご了承ください。
※さくらのクラウドのOS仕様などで、「設定すべきものが既に設定されている」ものについては割愛します。
※詳細なセキュリティ設定などは割愛しています。本番環境を構築される際は、運用する環境や搭載するシステムの仕様にあわせて追加設定が必要な場合があります。
手順書のボリュームがあるため、
PART1:さくらのクラウド操作編(https://qiita.com/happy41111/items/394a17536a45a2226f4a)
PART2:コマンド操作編 ※本記事
の2本立てとしています。
構築する環境
WEBサーバ:2GB/2仮想コア
ディスク:20GB SSDプラン
OS:CentOS7.5 64bit
WEB:Apache2.4
DB:MariaDB10.2 10GBプラン ※さくらのクラウドのデータベースアプライアンスを利用。
その他:PHP7.1
全体手順 ※PART2では2以降の手順を記載。「1.さくらのクラウド」はPART1に記載。
1.さくらのクラウド
① WEBサーバを作成
② ローカルスイッチを作成
③ DBサーバを作成
④ WEBサーバとローカルスイッチの接続(NIC追加)
⑤ 接続確認
2.CentOSのセットアップ
3.Apacheのセットアップ
4.PHPのセットアップ
5.WEBサーバからDBサーバに接続できるよう設定
2.CentOSのセットアップ
以降はコマンド実行系の作業が中心になってきます。
まずはターミナル、コマンドライン、コマンドプロンプトなどを立ち上げる。
WEBサーバにSSH接続する。「xxx.xxx.xxx.xxx」の箇所にはWEBサーバのグローバルIPアドレスを入力する。
ssh root@xxx.xxx.xxx.xxx
root@xxx.xxx.xxx.xxx's password:
※入力するIPアドレスは以下の赤枠に記載されているものを利用する。このIPアドレスはグローバルIPアドレスと呼び、基本的にインターネット上からアクセスが可能。
開発用ユーザを作成
ユーザを作成し、パスワードを設定。
# useradd userA
# passwd userA
New password:xxxxx
Retype new password:xxxxx
passwd: all authentication tokens updated successfully.
ユーザ一覧にuserAがいるか確認。
# cat /etc/passwd
開発用ユーザにsudo権限を付与
userAをwheelグループに追加。
# usermod -G wheel userA
「%wheel ALL=(ALL) ALL」がコメントになっている場合、コメントを外す(行頭の#を外す)。
それにより、開発用ユーザ(wheelグループに所属しているユーザ)にsudo権限を付与することができる。
※「sudo権限」とは一般ユーザがroot権限を利用してコマンド実行できるというもの。
※ sudo権限を利用する際は、コマンドの先頭に「sudo」をつけて実行する。
# visudo
%wheel ALL=(ALL) ALL
開発用ユーザにsu権限を付与
「auth required pam_wheel.so use_uid」がコメントになっている場合、コメントを外す(行頭の#を外す)。
それにより、開発用ユーザ(wheelグループに所属しているユーザ)にsu権限を付与することができる。
※「su権限」とは一般ユーザがrootになる(ログインする)ことができるというもの。su権限があるユーザでsuコマンドを実行しても、rootのパスワードを知らないとrootになることはできないため注意。
# vi /etc/pam.d/su
auth required pam_wheel.so use_uid
yumのアップデート(パッケージの更新)
# yum -y update
3.Apacheのセットアップ
インストール
# yum install httpd
自動起動設定
自動起動するようにしないと、サーバ再起動時にサービスが自動で起動しない。毎回、手動起動する必要がある。
自動起動設定を確認。
# systemctl is-enabled httpd
↑の結果が、enableなら自動起動するよう設定されている。disableなら以下のコマンドで有効にしておく。
# systemctl enable httpd
firewallの設定
HTTP(port80)アクセスを許可。
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --reload
Apache起動
以下コマンドの「start」の箇所を「stop」に変えると停止、「restart」に変えると再起動という動きになる。
# systemctl start httpd.service
動作確認
Apacheのステータス確認
エラーのような表示がないか念のため確認する。
# systemctl status httpd
Apacheのバージョン確認
# httpd -v
接続確認
WEBブラウザからApacheにアクセスする。
http://(SSH接続で使用したWEBサーバのグローバルIPアドレス)
4.PHPのセットアップ
インストール
remiリポジトリの公開鍵を取り込む
# rpm --import https://rpms.remirepo.net/RPM-GPG-KEY-remi
yum-config-manager コマンドのインストールと remiリポジトリの追加
# yum install yum-utils https://rpms.remirepo.net/enterprise/remi-release-7.rpm
remi-php71 リポジトリを有効化
# yum-config-manager --enable remi-php71
PHP と拡張モジュールなどをインストール
# yum install php php-mbstring php-intl php-mysqlnd
初期設定
vim /etc/php.ini
# レスポンスヘッダにPHPのバージョンを表示しない
expose_php = Off
date.timezone = "Asia/Tokyo"
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = pass
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_charset = none
Apache再起動
# systemctl restart httpd.service
動作確認
PHPのバージョン確認
# php -v
PHPのバージョン確認(詳細)
以下のファイルを作成&配置し、WEBブラウザで確認する。
<?php
phpinfo();
?>
http://(SSH接続で使用したWEBサーバのグローバルIPアドレス)/index.php
5.WEBサーバからDBサーバに接続できるよう設定
SQLコマンドツールをインストール
# yum install mariadb
NICの設定
既存NIC(eth0)の設定をコピーする。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
GATEWAY=xxx.xxx.xxx.xxx
PREFIX=24
DNS2=xxx.xxx.xxx.xxx
IPADDR=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx
ZONE=private
新NIC(eth1)を設定する。
- 既存NICからコピーした内容を貼り付ける。
- DEVICEは「eth1」に書き換えておく。
- GATEWAY、PREFIXはPART1のDBサーバ作成時に設定した内容を記入。
- IPADDRは「192.169.0.XXX」で入力すればOK。XXXの範囲は2~100にする。既存のものと被らないように。
- ZONEは「private」に書き換えておく。
- それ以外の項目は既存NIC(eth0)と同じ。
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
GATEWAY=xxx.xxx.xxx.xxx
PREFIX=24
DNS2=xxx.xxx.xxx.xxx
IPADDR=xxx.xxx.xxx.xxx
DNS1=xxx.xxx.xxx.xxx
ZONE=private
ネットワークを再起動し、設定したIPアドレスが設定されているか確認。
「eth1」に「inet 192.168.0.xxx/24」の記載があればOK。
# systemctl restart network
# ip addr show
動作確認
新NIC(eth1)を設定したことで、WEBサーバとローカルスイッチ、DBサーバで通信ができるようになった。
DBサーバのコマンド例に記載されていたコマンドをコピーし、WEBサーバ上で実行。
接続できたらパスワードの入力を求められるので、入力&認証後、DBに接続できる。
mysql -h xxx.xxx.xxx.xxx -P ポート番号 -u データベース名 -D データベース名 -p
Enter password: xxxxxx
MariaDB [データベース名]>
まとめ
以上でPART2は終了です。PART1は以下のページに書いてあります。
【初心者の方向け】さくらのクラウドでLAMP(CentOS7.x + Apache2.4 + MariaDB10.x + PHP7.x)環境構築から基本設定までの手順 PART1 (さくらのクラウド操作編)
https://qiita.com/happy41111/items/88bef300a057f48cdc39