PHP7
遂に正式版が出ました!
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
事前にバックアップとるのを忘れずに!
# 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
にアクセスして、
こんな感じのページが表示されれば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
事前にバックアップとるのを忘れずに!
; ユーザー変更
;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
事前にバックアップとるのを忘れずに!
# 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 phpinfo(); ?>
表示
http://xxx.xxx.xxx.xxx/index.php
にアクセスして、
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