概要 - この記事では何紹介すんの?? -
- 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導入
オラクル製仮想化ソフトウェア
ここからDLしてください。
Vagrant導入
仮想環境を操作・管理するツールと言えばいいでしょうか。ダメでしょうか。許してください。
ここからどーぞ。
CentOS7(box)導入
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」の省略コマンドです。
上記の29行目がOriginalだとコメントアウトされたままなので、外してください。
これで準備は完了です。
$ pwd
~/Vagrant/centos70
pwdでcetos70にいることを確認したら、
vagrant up
で起動します。
立ち上がったら、
vagrant ssh
でcentOS7にログインできます。
poderoaとか使いたい人は、先ほどコメントアウトを外したIPアドレスでsshしてください。
このデフォルトでsshだけ外部接続が上記IPで許可されてます。
おまけ
用が済んだvagrantは
vagrat halt
でシャットダウンしましょう。
今のstatus確認は
vagrant status
で確認できます。
PHP7導入
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