BRISKはウェブ制作会社ですので、レンタルサーバーを契約してサイトを制作するわけですが、
最初からLAMP環境などが整っているレンタルサーバーを契約すると便利な面も多々ありますが、
半面自由度が低くなる部分もあります。
自由度やセキュリティなどの関係で、OSだけ入った新規のサーバーを契約してLAMP環境構築から行うような案件が最近続いているので、手順等について纏めてみました。
※CentOS7での内容です。CentOS6以前はシステムを起動するコマンドが違うので注意が必要です。
目指す環境
Linux : CentOS7
Apache : Apache2
MySQL : MySQL5.6
PHP : PHP7.1
手順
サーバーリポジトリの更新
まず、サーバーのソフト管理ツールともいうべき「yum」コマンド自体の更新を行います。
1 | yum update |
次に、EPERLという外部リポジトリを追加します。
1 2 | yum install epel-release rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm |
これで、サーバーにLAMPをインストールための準備が整いました。
PHP
PHP7.1をインストールします。
1 | yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt |
※PHPのバージョンを変更したいときは「remi-php71」のところを例えば「remi-php56」などに変更する。
インストールができたら、「php.ini」の設定を行います。全角文字を上手く扱えるように設定したり、タイムゾーンを東京に合わせたりします。
1 2 3 4 5 6 7 8 9 10 11 12 13 | vi /etc/php.ini . . . (それぞれの場所を検索して変更) 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
Apacheをインストールし、起動します。
1 2 3 | yum install --enablerepo=remi,remi-php71 -y httpd systemctl start httpd.service |
MySQL
MySQLをインストールします。
1 | yum install mysql-community-server |
MySQLの設定を変更し、絵文字の入力にも対応する設定にします。デフォルトでは1文字に3バイト使っているところを4バイト使うような設定に変更します。
後からハマるよりも最初から設定しておいたほうが無難なのでやっておきましょう。
1 2 3 4 5 6 7 8 | vi /etc/my.cnf . . . [client] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 |
MySQLを起動します。
1 | systemctl start mysqld.service |
※socketのエラーが出た場合はバージョンの違うMySQLが残っている場合がある。(MySQLを入れなおした場合など)
MySQLをアンインストール&設定フォルダを削除してリトライ
1 2 | yum remove mysql-server mysql-devel rm -rf /var/lib/mysql |
時刻とタイムゾーンの設定
ntpという外部サーバーと時間を同期してくれるソフトをインストールします。
1 2 3 | yum install ntp ntpdate ntp.nict.jp |
設定ファイル「ntp.conf」を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 | vi /etc/ntp.conf . . . # server 0.centos.pool.ntp.org iburst # server 1.centos.pool.ntp.org iburst # server 2.centos.pool.ntp.org iburst # server 3.centos.pool.ntp.org iburst server -4 ntp.nict.jp server -4 ntp1.jst.mfeed.ad.jp server -4 ntp2.jst.mfeed.ad.jp server -4 ntp3.jst.mfeed.ad.jp |
ntpの起動とタイムゾーンの設定
1 2 3 4 5 | service ntpd start chkconfig ntpd on cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime |
「date」コマンドで時刻が合っているか確認しましょう。
FTP
FTP用のユーザーを作成します。「/var/www/html/」以下のみにアクセスできるユーザーを作成する、という手順になります。
FTPサーバーのインストールをします。
1 | yum install vsftpd |
設定ファイル「/etc/vsftpd/vsftpd.conf」を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | vi /etc/vsftpd/vsftpd.conf . . . 【変更】 anonymous_enable=NO 【追記】 userlist_deny=NO userlist_file=/etc/vsftpd/user_list chroot_local_user=YES chroot_list_file=/etc/vsftpd/chroot_list allow_writeable_chroot=YES |
FTP接続を許可するユーザを設定します。(以下の例では「testuser」を作成する)
設定ファイル「user_list」を変更します。
1 2 3 4 5 6 | rm user_list (一度ファイルを消して空で作成する) vi user_list . . . testuser |
FTP接続後に上の階層に移動できないようにします。
設定ファイル「chroot_list」を変更します。
1 2 3 4 5 6 | rm chroot_list (一度ファイルを消して空で作成する) vi chroot_list . . . testuser |
ユーザーを作成し、パスワードを設定します。
1 2 | useradd -d /var/www/html -s /sbin/nologin testuser passwd testuser |
FTPサーバーの起動します。
1 | systemctl start vsftpd.service |
WinSCPなどのFTPソフトで接続確認を行います。
.htaccessの有効化
LAMPを入れたデフォルト状態だと「.htaccess」が効かない設定になっています。
Basic認証、WPなどのシステムでは必須の「.htaccess」が無効では都合が悪いので有効化を行います。
Apacheの設定を変更します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | vi /etc/httpd/conf/httpd.conf . . . コマンド「/www\/html」 で検索して次の行を探し <Directory "/var/www/html"> . . . その下くらいある以下の行を変更します。 AllowOverride None ↓ AllowOverride All |
Apacheを再起動します。
1 | systemctl restart httpd.service |
これでWPを入れて使えるLAMP環境が整いました。
SSL設定などについてもまた後日纏める予定です。
南本貴之