CentOS7でLAMP(さくらVPS)
さくらVPSのCentOS7で以下の様なバージョンのLAMPを構築する手順です。独自ドメインを使いたい場合、仮想マシンのプロビジョニング後、IPアドレスが決定したら、浸透時間を考慮して、ネームサーバー設定かDNSレコード編集を作業の一番最初に行うことを強く推奨します。DNSレコードのTTLについて、作業中は最短の60などに変えておき、作業が終わったら3600などに変えます。尚、今回の環境バージョンは以下の通りです。
- Apache2.4.6
- MariaDB10.2.22
- php7.2.15
アップデート
クラウドやVPSのマシンイメージでCentOS7を選択しプロビジョニング、そしてrootユーザーでssh接続の後、アップデートを実行します。以下、基本的には、rootユーザーで実行しています。
yum -y update
Linuxの一般ユーザー作成
Linuxの一般ユーザーを作り、パスワードを設定し、rootユーザーによるログインを禁止します。※セキュリティ性が必要とされる本番環境では、パスワード認証から鍵認証への変更も行います。後日追記します。
adduser nissy
passwd nissy
一度、ssh接続を終えて、作成した一般ユーザー nissy でssh接続します。
exit
ssh nissy@ホスト名
一般ユーザーnissyでssh接続出来たら、rootユーザーに昇格出来ることを確認します。
su -
rootユーザーに昇格したら、以下のコマンドでsshの設定ファイルのバックアップを行います。
cd /etc/ssh
cp sshd_config sshd_config.bk
sshd_configファイルの編集を行います。行数も表示させます。
//エディタ起動
vi sshd_config
//行数表示(半角英数になっているか?確認してから)
:set number
49行目あたりを以下のようにアンコメントに変えてyesをnoに書き換えます。そしてsshdを再起動してください。
//書き換え
PermitRootLogin no
//再起動
systemctl restart sshd.service
念のために、rootユーザーでssh接続ログイン出来ないことを確認し、新しく作ったユーザーでsshでパスワードログインしてください。
Apacheインストール
以下コマンドです。途中でインストール確認が出てきますが半角英数 y でEnterでそのまま進んでください。
//Apacheインストール(バージョン指定してないので気をつけてください)
yum install httpd
//Apacheバージョン確認
httpd -v
Apacheデーモンのhttpdを起動します。
systemctl start httpd
Firewallでhttpとhttpsの通信を開けます。ファイヤーウォール再起動します。
//http開ける
firewall-cmd --add-service=http --zone=public --permanent
//https開ける
firewall-cmd --add-service=https --zone=public --permanent
//Firewallデーモンのfirewalld再起動
systemctl restart firewalld
httpdの自動起動設定。サーバーが落ちた時や再起動時に自動でapacheが起動するようにします。
systemctl enable httpd
ドキュメントルートの所有者、グループ、パーミッションを変更。ユーザーはapache、グループはnissyとしました。
cd /var/www
chown apache:nissy html
chmod 755 html
php7.2インストール
EPELリポジトリ、remiリポジトリを取得して、php7.2をインストールします。CentOS7が持つデフォルトのphpリポジトリはphp5.4なので他のリポジトリを使ってphp7.2を連れてきます。尚、さくらVPSについては、EPELが既に入っていますのでご注意下さい。
//EPELリポジトリ取得
yum install epel-release
//remiリポジトリ取得
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
php7.2インストール(パッケージは適宜必要なものを入れてください)
yum install --enablerepo=remi,remi-php72 php php-devel php-mbstring php-mysqlnd php-pdo php-gd php-xml php-pecl-zip php-imap
httpd再起動
systemctl restart httpd
php.iniでpost_max_sizeとupload_max_filesizeの上限を引き上げます。※php.iniの場所は、phpinfo();で調べてください。調べ終わったらファイルを削除してください。
//php.ini編集
vi /etc/php.ini
//行数表示
:set number
//検索
/post_max_size
//672行目あたりを以下の様に変更
post_max_size = 128M
//検索
/upload_max_filesize
//825行目あたりを以下のように変更
upload_max_filesize = 128M
httpd再起動
systemctl restart httpd
phpが動いていることを確認
この段階で 、以下の様に /var/www/index.phpを作ってホスト名にリクエストを送り、phpが動いていることを確認してください。ブラウザでIPアドレスとホスト名の両方で確認してもいいです。
vi /var/www/index.php
/var/www/index.phpファイル内にvimで記載。ブラウザでIPアドレスやhostname、初期ドメイン等を叩いて確認してください。終わったらファイルを削除してください。
<?php phpinfo();
パーミッション、所有者、グループ設定
chmod 755 /var/www/index.php
chown apache:nissy /var/www/index.php
MariaDB(MySQL)インストール
以下にてMariaDB最新版リポジトリをインストール。CentOS7標準はMariaDB5系となるため気をつけてください。
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
MariaDBリポジトリバージョン指定したい場合
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.2
MariaDBインストール
sudo yum install MariaDB-server MariaDB-client
MariaDBの自動起動設定と起動を行う
//自動起動設定
systemctl enable mariadb
//起動
systemctl start mariadb
MariaDB(MySQL)初期設定。コマンド実施後、画面指示にしたがってすすめてください。
mysql_secure_installation