̃Gg[͂ĂȃubN}[Nɒlj

SAKURA VPS :: LAMP 環境の構築 (2019年09月編)



以下、root になっている前提の説明です

yum リポジトリの追加

作業ディレクトリの作成(必要であれば)

% mkdir ~/sysad
% cd ~/sysad

yum リポジトリの追加

下記3つのレポジトリを追加します。

  • Fedora EPEL
  • remi

リポジトリのダウンロード & インストール

# Fedora EPEL
% wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
 ⇒ ※もともと存在していた(インストールされていた)

# remi
% wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
% sudo rpm -Uvh remi-release-6.rpm

通常は利用しない

「–enablerepo」オプションで指定しない場合は、今回追加したリポジトリは利用しないように設定しておきます。

% sudo vi /etc/yum.repos.d/epel.repo
enabled=0 ← 一番上の「enabled」を0に変更

% sudo vi /etc/yum.repos.d/remi.repo
enabled=0 ← 一番上の「enabled」を0に変更(※もともと0になっている)


LAMP のインストール

パッケージのインストール

apache

% sudo yum --enablerepo=remi,epel,rpmforge install httpd-devel

mysql5.6

yumリポジトリの追加 for MySQL5.6
% sudoy um install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

バージョンの確認
% yum info mysql-community-server

インストール
% sudo yum install mysql-community-server

php7.3

% yum install --enablerepo=remi,remi-php73 php php-devel php-mysql php-mbstring php-mcrypt php-pecl-apc php-gd php-xml php-pdo

エラーの場合

エラー: パッケージ: php-pecl-mcrypt-1.0.3-1.el6.remi.7.3.x86_64 (remi-php73)
  要求: libmcrypt.so.4()(64bit)
エラー: パッケージ: gd-last-2.2.5-10.el6.remi.x86_64 (remi)
  要求: libwebp.so.5()(64bit)
問題を回避するために --skip-broken を用いることができません
これらを試行できます: rpm -Va --nofiles --nodigest
  • 上記エラーの場合、下記にて「libmcrypt」と「libwebp」をインストールして回避できます。
% yum -y install libmcrypt --enablerepo=epel
% yum -y install libwebp --enablerepo=epel


Apache の設定

% cd /etc/httpd/conf/
% sudo cp httpd.conf httpd.conf.YYYYMMDD
% sudo vi httpd.conf

# Include conf.d/*.conf の下に追加
Include conf/vhosts/*.conf

# 変更: OS -> ProductOnly
ServerTokens ProductOnly

# 変更: On -> Off
ServerSignature Off

# コメントアウトを外す
NameVirtualHost *:80

# SSLを使う場合は最下部に追加
<IfModule mod_ssl.c>
NameVirtualHost *:443
</IfModule>

# 追加
TraceEnable Off
重要

「Include conf/vhosts/*.conf」を追加した場合、実際に「vhosts」が存在しないと apache が起動しないので注意!


php の設定

% sudo cp /etc/php.ini /etc/php.ini.YYYYMMDD
% sudo vi /etc/php.ini

 :
short_open_tag = On
 :
expose_php = Off
 :
html_errors = Off
 :


MySQL の設定

起動させてみる

% sudo /etc/init.d/mysqld start

※起動エラーになる場合

% sudo /etc/init.d/mysqld start
mysqld を起動中:                                           [失敗]

エラーログを確認

% tail -f /var/log/mysqld.log

以下のエラーが出ていたら

[ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!

my.cnf で datadir の場所を確認

% cat /etc/my.cnf
  :
datadir=/var/lib/mysql
  :

datadir に移動して、以下の3ファイルを削除

# cd /var/lib/mysql
# rm -rf ib_logfile0
# rm -rf ib_logfile1
# rm -rf ibdata1

起動できた!

%  sudo /etc/init.d/mysqld start
mysqld を起動中:                                           [  OK  ]

ウィザード形式にて設定を行う(mysql_secure_installation)

% sudo /usr/bin/mysql_secure_installation

Enter current password for root (enter for none):← デフォルトではパスワードが無いので、そのままエンター

Set root password? [Y/n]  ← 「y」と入力してエンター
New password: ← rootパスワードとして設定したい文字列を入力してエンター
Re-enter new password: ← もう一度入力してエンター

Remove anonymous users? [Y/n]   ← 「y」と入力してエンター

Disallow root login remotely? [Y/n]   ← 「y」と入力してエンター

Remove test database and access to it? [Y/n]  ← 「y」と入力しエンター

Reload privilege tables now? [Y/n]   ← 「y」と入力してエンター

mysqlの文字エンコーディング設定(必要なら)

% sudo cp /etc/my.cnf /etc/my.cnf.YYYYMMDD
% sudo vi /etc/my.cnf

[mysql] の末行に追加([mysql] がなければ、[mysql] ごと追加)
default-character-set=utf8

[mysqld] の末行に追加
character-set-server=utf8


自動起動設定

Apache と MySQL が自動起動するように設定しておきます。

% sudo chkconfig httpd on
% sudo chkconfig mysqld on
chkconfig --list | grep -E "httpd|mysqld"

再起動させて、正しく自動起動しているか確認する

% sudo shutdown -r now

[おまけ] 再起動させるなら以下も検討(要再起動のため)

ssh のプロンプトが

<user>@localhost

のように「localhost」になるのがちょっと嫌なので、ホスト名を myserver に変更します。

下記2ファイルの変更が必要になります。

% sudo vi /etc/hosts
 :
127.0.0.1 localhost.localdomain localhost myserver
 :
  • myserver を追加


% sudo vi /etc/sysconfig/network
 :
HOSTNAME=serversman
 :
  • myserver に書き換え


ログイン後、確認

% pstree | grep -E "httpd|mysqld"
     |-httpd---8*[httpd]
     |-mysqld_safe---mysqld---21*[{mysqld}]


iptables の設定

Apache 用にポート 80, 443 を開放します。

作成中 … (メモを参照)




server/sakura_vps/lamp_201909.txt