こんにちは、さるまりんです。
PHPを勉強していくにあたってそれを動かす環境が必要ですね。
今回はその準備についてまとめていこうと思います。
僕は普段からMacを使っています。MacにもMac OS版のPHPというものがあるのですが、いくつもの開発が並行して走っていると必要とされるPHPのバージョンが違うことがよくあるので、開発案件ごとに仮想環境を一つずつ作ってそこで開発するようにしています。
Mac上で仮想環境を作る方法はいろいろあります。VirtutalBoxやVMware、Parallels Desktopを利用してMac上にLinuxの環境を用意してそこでWebサーバーをインストールし、そこでPHPを動かせるようにします。
今回はこれを書いている時点での最新であるPHP7.2を勉強していきたいので、そのための環境を作ろうと思います。
利用するのは次の通りです。
- macOS High Sierra (ホストOS)
- VMware Fusion
- CentOS 7 (ゲストOS)
- Apache httpd 2.4 (Webサーバー)
- PHP 7.2
では、手順をおっていきますね。
前準備
と言いましたが、前提のお話です。僕の利用している環境はmacOS High Sierraでして、そこに仮想マシンを作成するためにVMware Fusionをインストールしています。このVMware Fusionを利用して、PHPを動作させる環境となるCentOSの仮想マシンを作成します。
CentOSをインストール
WindowsでのサーバーOSを使ってIISでWebの環境を整える方もいらっしゃるでしょう。今回は違います。今回LinuxのOS、CentOS 7で環境を作りたいと思います。
ダウンロード
こちらからCentOSのDVD ISO(こんな名前のファイルCentOS-7-x86_64-DVD-xxxx.iso)をダウンロードしてきます。
インストール
VMwareを起動して、ファイルから「新規」
「インストール方法を選択」の画面が表示されるので「ディスクまたはイメージから」を選択し「続ける」
「新しい仮想マシンを作成」の画面で「オペレーティングシステムのインストールディスクまたはイメージを選択」でダウンロードしたCentOSのイメージファイルを選択し「続ける」
「完了」画面で「設定のカスタマイズ」ボタンをクリックしてファイル名をつけて仮想マシンに名前をつけて保存します。設定画面が表示されるので設定を変更します。
それぞれ用途によって色々とあると思いますが、僕はプロセッサを「2個のコア」メモリーを「2048MB」に変更しました。
設定変更したらマシンを起動してインストールを続けます。
CentOSのインストール画面が表示されたら、「Test this media & install CentOS 7」でインストールを開始、画面の指示に従い次の項目を選択、決定し進めていきます。
まずはインストール時に利用する言語の選択で日本語を選びました。
続いてインストールの概要画面が表示されたら基本ほとんどの項目でデフォルトのままにしますが次の項目をせってします。
「ソフトウェア」より「ソフトウェアの選択」をクリックして「ベース環境」より「最小限のインストール」を選択して「完了」をボタンをクリックします。
次に「システム」より「インストール先」をクリックすると「インストール先」とタイトルされた画面が表示されるので「デバイスの選択」から「ローカルの標準ディスク」を選んで「完了」ボタンをクリックします。
「システム」より「ネットワークとホスト名」をクリックしてEthernetをOnに切り替え、ホスト名を設定したい文字列(「salumarine.localhost」など)に変更して「適用」して「完了」ボタンをクリックします。
元の画面に戻ったら「インストールの開始」をクリックして進みます。
続いて「設定」の画面で「ROOTパスワード」をROOTユーザーのパスワードを設定、「ユーザーの作成」でROOTユーザー以外のユーザーを作成します。僕は”salumarine”というユーザーを作っておきました。ユーザーの作成時に「このユーザーを管理者にする」のチェックボックスをOnにしました。
上記が終わったら「設定完了」をクリック、インストーラーが必要な設定を進めてくれますので「再起動」ボタンが表示されたらクリックして進みます。
CentOSが起動されるのでログイン画面が表示されたら先ほど設定したROOTユーザーでログインします。
ログインできましたか?インストール後の設定を続けていきます。
設定などなど
インストール後、使いやすいように設定を変更していったりします。
CentOSを最新の状態に更新
インストール後最初にCentOSを最新の状態に更新します。
yum update
yum
はCentOSのパッケージ管理ツールで、このプログラムを利用してソフトウェアのインストールや更新をします。
次に作成したマシンのIPアドレスを固定したいので/etc/sysconfig/network-scripts/ifcfg-ens[xx]
のファイルを編集します。
vi /etc/sysconfig/network-scripts/ifcfg-ens[xx]
次のように編集して
BOOTPROTO="static" # "dhcp" -> "static"
# 環境に合わせて
IPADDR=192.168.250.130 # 設定するIPアドレス
NETMASK=255.255.255.0
GATEWAY=192.168.250.2
DNS1=192.168.250.2
Networkを再起動します。
systemctl restart NetworkManager
systemctl restart network
SELinuxをoffにします
vi /etc/selinux/config
SELINUX=disabled
Firewallをoffにします
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
一度、CentOSを再起動します。
reboot
これでMacのターミナルからsshで接続できるはずです。
ssh salumarine@192.168.250.130
(環境に合わせてくださいね。)
コマンドのインストール
利用するコマンドのインストールをします。yum
によって様々なコマンドがインストールできますがwget
をインストールしておきます。
yum install wget
ここまででCentOSのひとまず準備完了です。
Webサーバーのインストール
次はWebサーバー、Apache httpdのインストールです。これもyum
を利用してインストールします。
インストール
yum install httpd
これでApache httpd 2.4がインストールされます。
インストールされたhttpdの確認
[root@salumarine ~]# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built: Jun 27 2018 13:48:59
自動起動の設定をします
systemctl enable httpd.service
上記のコマンドを実行すると
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
と出力されます。
起動
systemctl start httpd.service
起動できているかは
systemctl status httpd.service
で確認できます。Activeとなっていれば起動に成功しています。
ちなみに停止するときは
systemctl stop httpd.service
です。
ブラウザでアクセス
固定で設定したIPアドレスで接続できます。ブラウザから
http://[設定したIPアドレス]/
(http://192.168.250.130/
– 環境に合わせてくださいね。)
です。
どうですか?「Testing 123..」と大きく書かれた画面が表示されましたか?表示されてればOKです。
上の方でfirewallを停止しているのでこのままアクセスできるはずです。本来ならfirewallは動作させたままで、外部からWebサーバーへのアクセスだけを許可するとした方がいいのだと思いますのでその話はまた改めてさせてください。
PHPのインストール
お待たせしました。本題、PHPのインストールです。これもyum
を利用して行います。yum
、とっても楽ちん!
しかし、いきなり
yum install php
とすると、CentOS 7の標準のyumリポジトリーではPHP 5.4が提供されていますのでPHP 5.4がインストールされます。今回はPHP 7.2が欲しいのでRemiというリポジトリからインストールします。
リポジトリってなんだ?ですよね。簡単にいうと、コマンド、アプリケーションの置き場です。これがいろいろと用意されていて、提供されているものが異なります。利用者は必要なものに応じてこれを追加し、切り替えていくことになります。リポジトリについてはまた改めて。ここではPHP 7.2をインストールするためのことをやります。
EPEL
Remiを利用するためにEPELリポジトリが必要なので追加します。
yum install epel-release
Remi
続いてRemiを追加します。
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHP 7.2のインストール
これでPHP 7.2をインストールする準備が整いました。
yumコマンドは次のように「Remiのphp7.2を指定」して実行します。
yum --enablerepo=remi-php72 install php
これで最低限のPHPがインストールされました。PHPはモジュールという単位で必要なものを後からインストールできるのですがこれについてはまた改めて。PHP 7.2がインストールできているかの確認をコマンドラインで行います。
[root@salumarine ~]# php -v
PHP 7.2.9 (cli) (built: Aug 15 2018 09:19:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
PHP 7.2.9となっていますよね。こんな風に表示されたら大丈夫です。
後一息です。今度はPHPがWebサーバー上で動作するかを確認します。
まずはWebサーバーを再起動します。
systemctl restart httpd.service
CentOS上で/var/www/htmlにtest.phpというファイルを作ります。
vi test.php
<?php phpinfo();
これだけです。
これはPHPの情報を表示してくれるプログラムです。phpinfo()
ブラウザから
http://[IPアドレス]/test.php
にアクセスしてください。どんな画面が表示されましたか?
こんなのが表示されたら成功です!
お疲れさまでした。
設定しないといけない項目などまだあるにはあるのですが、利用していく中で一つずつやっていきます。
ここまでやってきた内容はそのときインストールするバージョン等々によって少し違ったりするかもしれません。読みかえが必要になるかもしれないですが参考になれば嬉しいです。
次はHello World。プログラミング開始です!
読んでくださってありがとうございます。
ではまた!
Onto PHP 目次