LoginSignup
28
29

More than 5 years have passed since last update.

さくらVPSにPHP7 feat. Nginx&MySQLな環境をつくる

Last updated at Posted at 2015-12-04

PHP7

遂に正式版が出ました! :clap:
http://php.net/archive/2015.php#id2015-12-03-1

ちょうどロリポップ+Heroku体制に限界を感じ始めて、最近さくらVPSを契約したので、PHP7なWebアプリケーションの開発環境をつくってみました。

前提条件

OSはCentOS6.7(さくらVPSの標準OS)です。
公開鍵認証への変更、ファイアーウォールの設定など↓のページの内容は既にやっています。
https://help.sakura.ad.jp/app/answers/detail/a_id/2429

下準備編

パッケージのアップデート及びインストール

# yum -y update
# yum -y install yum-plugin-priorities
# yum -y groupinstall "Base" "Development tools" "Japanese Support"

リポジトリの追加

yum -y install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

MySQL編

5.6系をインストールします。

インストール関連

リポジトリ追加

# yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

インストール

# yum -y install mysql-community-server

バージョン確認

# mysqld --version
mysqld  Ver 5.6.27 for Linux on x86_64 (MySQL Community Server (GPL))

5.6系だよ的な表示があればOK!!

起動

# service mysqld start

設定関連

セキュリティ設定

# mysql_secure_installation

対話形式で色々と訊いてきますが、よく分からない人はrootのパスワードを変更して、全て"Yes"で答えるのがセキュリティ的によいです。

設定ファイル編集

文字コードをUTF8で統一します。

# vi /etc/my.cnf

事前にバックアップとるのを忘れずに!

my.cnf
# clientセクションを追加
[client]
default-character-set=utf8

[mysqld]
(省略)
character-set-server=utf8 #mysqldセクションの末尾に追加

要はdefault-character-setとcharacter-set-serverを追加する。

再起動

# service mysqld start
# mysql -u root -p

で新しく設定したパスワードでログイン出来ればOK!

Nginx前編

1.8系をインストールします。

インストール関連

リポジトリ追加

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

インストール

# yum install -y nginx

バージョン確認

# nginx -v
nginx version: nginx/1.8.0

1.8系だよ的な表示があればOK。

起動

# service nginx start

表示

http://xxx.xxx.xxx.xxx/index.html
にアクセスして、

nginx.png

こんな感じのページが表示されればOK!

Nginxはいったんここまで。

PHP7編

いよいよPHP7のインストールです!

インストール関連

もし、PHP5系が既に入っている場合は事前に削除してください。

インストール

# yum --enablerepo=remi-php70 -y install php php-mbstring php-pear php-fpm php-pdo php-intl php-mysqln php-mcrypt

(2015/12/05 追記)
CakePHP3をインストールした際にMySQLドライバー周りでエラー(Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency)が出たので、php-mysqlnを追加しました。

バージョン確認

# php -v
PHP 7.0.0 (cli) (built: Dec  3 2015 18:05:30) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

めでたく7がインストールされました。意外にあっさり。

設定関連

設定ファイル編集

# vi /etc/php-fpm.d/www.conf

事前にバックアップとるのを忘れずに!

www.conf
; ユーザー変更
;user = apache
user = nginx

; グループ変更
;group = apache
group = nginx

ユーザーとグループをapacheからnginxに変更するだけ。

起動

# service php-fpm start

サービス化やphp.iniの設定は各自でオナシャス!(飽きてきた)

Nginx後編

NginxとPHP-FPMを連携させます。

設定関連

# vi /etc/nginx/conf.d/default.conf

事前にバックアップとるのを忘れずに!

default.conf
 # index部にindex.phpを追加してください。
 location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
 }

 # serverセクションの末尾に追加してください。
 location ~ \.php$ {
        root   /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
 }

再起動

# service nginx restart

phpinfo表示編

やっとここまできた!

phpファイル作成

vi /usr/share/nginx/html/index.php
index.php
<?php phpinfo(); ?>

表示

http://xxx.xxx.xxx.xxx/index.php
にアクセスして、

php7.png

PHP Version 7.0.0が表示されていればめでたしめでたし。

phpinfoの情報はすぐ消してください!

おわりに

最近個人の開発では主にRubyやElixirを勉強してましたが、パフォーマンスも向上したらしいのでちょっとPHPerに戻るか!

参考サイト

PHP 7.0.0 RC7がリリースされたので、さくらのVPSで環境構築してみた。:
http://www.starlod.net/sakura-vps.html
CentOS 6 / RHEL 6 に MySQL 5.6 を yum インストールする手順:
http://weblabo.oscasierra.net/installing-mysql-rhel6-with-yum/
CentOSにnginx, php-fpm, mysqlの環境を構築する1:
http://qiita.com/puttyo_bubu/items/5bf554ef2790f6435c32
nginxとphp-fpmの設定:
http://qiita.com/MiyaseTakurou/items/923c28f7ac60b2ce761a
nginx + php-fpm で設定したが index.php にアクセスするとNOT FOUND(404)になってしまう:
http://blog.livedoor.jp/saba_nano/archives/28213171.html

28
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
29