28
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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](https://qiita-image-store.s3.amazonaws.com/0/48990/f37f58d7-c207-a63a-0558-4e2e2c6cd666.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
```

```php:index.php
<?php phpinfo(); ?>
```
## 表示

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

![php7.png](https://qiita-image-store.s3.amazonaws.com/0/48990/0ecbb24a-04d4-51e2-965e-be6554c24d74.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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?