尝试体验了一下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

虚拟盒子的安装

vb.png

请从这里下载Oracle的虚拟化软件。

Vagrant的引入

vagrantimage.png

可以说是操作和管理虚拟环境的工具吗?不可以吗?请原谅。
从这里开始吧。

将CentOS7操作系统引入到虚拟机中。

centos7.png
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” 的简写命令。

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

请移除上面第29行代码的注释,因为它仍然在原始版本中注释掉了。

准备已经完成了。

$ pwd
~/Vagrant/centos70

当您确认在Cetos 7.0上执行pwd命令时,

vagrant up

启动。

一旦站起来,

vagrant ssh

你可以登录到CentOS7。
如果想要使用Poderoa等工具的人,请使用先前取消注释的IP地址进行SSH连接。
默认情况下,只有通过SSH才允许从外部连接到该IP。

給你一個小禮物

使用完之后的vagrant

vagrat halt

关机吧。
我们来确认一下当前状态。

vagrant status

可以在中文环境中确认。

引入PHP7

elephpant.png

由于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

广告
将在 10 秒后关闭
bannerAds