尝试体验了一下PHP7
概要 – 这篇文章中要介绍什么?
-
- 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
虚拟盒子的安装
请从这里下载Oracle的虚拟化软件。
Vagrant的引入
可以说是操作和管理虚拟环境的工具吗?不可以吗?请原谅。
从这里开始吧。
将CentOS7操作系统引入到虚拟机中。
vagrat box add 【CDN】
使用上述命令安装操作系统映像。
这次将安装CentOS7。事实上,我只接触过6.x版本,听说升级到7会遇到一些问题,所以很期待遇到的麻烦有多大。
※如后面所述,果然遇到了不少麻烦。
我立刻会添加一个箱子。
cd ~
mkdir -p vagrant/centos70
vagrant box add centos70 https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
※しばらく時間かかります。待ちましょう。
我在Home目录下创建了一个名为“vagrant/centos70”的文件夹,并向Vagrant添加了CentOS 7的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
进入命令模式后停留在其中
se nu
为了方便起见,显示行数。
※”se nu” 是 “set number” 的简写命令。
请移除上面第29行代码的注释,因为它仍然在原始版本中注释掉了。
准备已经完成了。
$ pwd
~/Vagrant/centos70
当您确认在Cetos 7.0上执行pwd命令时,
vagrant up
启动。
一旦站起来,
vagrant ssh
你可以登录到CentOS7。
如果想要使用Poderoa等工具的人,请使用先前取消注释的IP地址进行SSH连接。
默认情况下,只有通过SSH才允许从外部连接到该IP。
給你一個小禮物
使用完之后的vagrant
vagrat halt
关机吧。
我们来确认一下当前状态。
vagrant status
可以在中文环境中确认。
引入PHP7
由于yum上没有php7的存储库,所以我们需要添加并安装。
- 追加登録
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
准备完成
sudo yum install --enablerepo=zend-php7 php7-nightly
如果成功安装并顺利添加了路径,则表示完成了。
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!';
结束编辑后,尝试执行一下。
php test.php
0nothing!
真厉害啊!这个演算子我觉得会成为未来的标准。终于摆脱了isset的限制。
本次到此为止。关于试用PHP7新功能和在GUI中使用PHP7(nginx)的文章,将在另一篇文章中进行撰写。
在CentOS7上遇到问题
- ifconfigが使えない!!?
我感到吃惊。正如参考链接所述,net-tools系列命令不再作为标准安装了。因此,
yum install net-tools
不这样做就不能使用。
或者,
ip addr show
所以。
- iptablesがない!!?
CentOS7开始使用了firewalld进行包装操作。然而,iptables本身仍然可以使用。由于未来firewalld将成为标准,所以要积累相关知识。目前为止,我对其还没能完全熟悉,所以需要学习。类似于iptables时,我希望在firewalld中能成功地允许http和https。现在的情况是还没有实现。目前将使用iptables配置。
systemctl stop firewalld
我搞砸了…嗯,因为是本地的虚拟机,所以还好,但这就是逃避了。
[链接供参考]
【php7】: http://qiita.com/onishik/items/810fd840530d4fb6970c
【firewalld】: http://qiita.com/shrkw/items/8410e9cb65eb789a40e1
【ifconfig】: http://qiita.com/s_makinaga/items/ce45f3e20b8edafab9dd
【php7】:http://qiita.com/onishik/items/810fd840530d4fb6970c
【firewalld】:http://qiita.com/shrkw/items/8410e9cb65eb789a40e1
【ifconfig】:http://qiita.com/s_makinaga/items/ce45f3e20b8edafab9dd