7
8

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.

PHP7触ってみた

Last updated at Posted at 2015-12-12

概要 - この記事では何紹介すんの?? -

  • Vagrant
  • VirtualBox
  • CentOS7
  • PHP7(CUIまで。次回にnginxとの連携 = php-fpmを取り扱います。)

遅ればせながら、PHP7を弄りたくなったので、その方法と感想を載せます。
最終的にはLaravel5と連携して、サービスをリリースさせます。
その時にはきっと以下のような組み合わせになるでしょう。
ただ今回の記事は導入までなので、上記の組み合わせまでを紹介します。

  • Vagrant
  • VirtualBox
  • CentOS7
  • PHP7
  • php-fpm
  • nginx
  • Laravel5
  • Blade
  • Github
  • CircleCI
  • ScrutinizerCI
  • heroku
  • Angular
  • TypeScript
  • Sass
  • Compass
  • Grunt

VirtualBox導入

vb.png

オラクル製仮想化ソフトウェア
ここからDLしてください。

Vagrant導入

vagrantimage.png

仮想環境を操作・管理するツールと言えばいいでしょうか。ダメでしょうか。許してください。
ここからどーぞ。

CentOS7(box)導入

centos7.png

vagrat box add 【CDN】

上記コマンドでOSのイメージをインストールします。
今回はCentOS7入れます。実は6.xまでしか触れたことがなく、噂では7にしてどハマりすると聞いていたので、どれくらいハマるか楽しみです。
※後述しますが、しっかりとハマりました。

さっそくboxを追加します。

cd ~
mkdir -p vagrant/centos70
vagrant box add centos70 https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
※しばらく時間かかります。待ちましょう。

ホーム下に「vagrant/centos70」ディレクトリを作成しておき、vagrantにcentos7のboxを追加しました。

追加できたら、VirtualBoxにもイメージが反映されているはずです。お手すきで確認してみましょう。

cd ~/vagrant/centos70/
pwd
vagrant init centos70

先ほど作成した作成した「vagrant/centos70/」に移動し、centos7を初期化します。
するとこんな形でtreeができあがります。

hoge:centos70 hoge$ tree
.
└── Vagrantfile

Vagrantfileという設定ファイルが作成されます。
こいつを一箇所修正します。

cp Vagrantfile ./Vagrantfile.org
vi Vagrantfile

viしたら、コマンドモードのまま

se nu

で便宜上ラインを表示させます。
※「se nu」は「set number」の省略コマンドです。

スクリーンショット 2015-12-12 15.41.04.png

上記の29行目がOriginalだとコメントアウトされたままなので、外してください。

これで準備は完了です。

$ pwd
~/Vagrant/centos70

pwdでcetos70にいることを確認したら、

vagrant up

で起動します。

立ち上がったら、

vagrant ssh

でcentOS7にログインできます。
poderoaとか使いたい人は、先ほどコメントアウトを外したIPアドレスでsshしてください。
このデフォルトでsshだけ外部接続が上記IPで許可されてます。

おまけ

用が済んだvagrantは

vagrat halt

でシャットダウンしましょう。
今のstatus確認は

vagrant status

で確認できます。

PHP7導入

elephpant.png

yumにphp7のrepositoryが存在しないので、追加登録・instalします。

  • 追加登録
sudo vi /etc/yum.repos.d/php7-nightly.repo

開いたら、以下をそのまま記載する

[zend-php7]
name = PHP7 nightly by Zend Technologies
baseurl = http://repos.zend.com/zend-server/early-access/php7/repos/centos/
gpgcheck=0

これで準備OK

sudo yum install --enablerepo=zend-php7 php7-nightly

無事にinstallがされれば、パスを通して完了

export PATH=${PATH}:/usr/local/php7/bin/:/usr/local/php7/sbin/
source /etc/profile
php -v
PHP 7.0.2-dev (cli) (built: Dec 11 2015 20:27:52) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

キタ―――(゜∀゜)―――!!!

さっそく使ってみよう。
とりあえず、CUIで。

cd ~
mkdir work
cd work
vi test.php

以下の内容をtest.phpに記載

<?php
echo 1 <=> 1;
echo $hoge ?? 'nothing!';

:wqしたら実行してみよう。

php test.php
0nothing!

使えてるね!!
??演算子は今後のスタンダードになると思うね。
issetからの解放。

今回はここまで。PHP7の新機能を試して見る記事と、GUIでもPHP7を使う記事(nginx)は別の記事で書きます。

CentOS7ではまったこと

  • ifconfigが使えない!!?

驚きました。参考リンクにもありますが、net-tools系のコマンドは標準でインストールされなくなったと。なので

yum install net-tools

しないと使えない。
もしくは、

ip addr show

で。

  • iptablesがない!!?

centos7からはfirewalldがwrapして使うみたい。
ただ、ipdtables自体は使える。今後はfirewalldが標準になるだろうから、ナレッジ積まないと。
とりあえず、まだ全然使いこなせていないので、勉強します。
iptableの時同様、httpとhttpsを許可させたいのだが、firewalldでうまくいっていないのが現状。今は

systemctl stop firewalld

してしまいました。。。まあ、localのvmだから良いだろうけど、これは逃げですね。

[参考リンク]

【php7】: http://qiita.com/onishik/items/810fd840530d4fb6970c
【firewalld】: http://qiita.com/shrkw/items/8410e9cb65eb789a40e1
【ifconfig】: http://qiita.com/s_makinaga/items/ce45f3e20b8edafab9dd

7
8
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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?