wiz.code

PHPの確認

PHPのインストール状態を確認

仮想マシン(CentOS)のApacheへ外部からでも接続できることを確認したので、PHPのセットアップを行います。

まずは、CentOSにPHPがインストールされているかの確認。 Apacheの公開ディレクトリは「/var/www/html/」になっていたので、そこにphpinfo()を出力するファイルを設置し、アクセスしてみましょう。

ファイルを作成・・・できない!

ファイルマネージャで「/var/www/html/」に移動して、ファイルを…。 なっ…! 「右クリック」のメニューにファイル作成のコマンドがない…だと…? いや、それ以前に、「新しいフォルダ」がグレーアウトしてるんだけど、このディレクトリも管理者じゃないと変更できないのか?

右クリック→プロパティ

ディレクトリの権限を確認してみよう。 右クリックしたメニューに「プロパティ」があるから、これを選択。

ディレクトリのプロパティ

ディレクトリのプロパティが表示された。 「アクセス権」を見ると、「所有者」以外の「グループ」「その他」は「アクセスのみ」・・・。 「所有者」はrootだから、これってつまり、root以外のユーザーは「読み取り専用」ってことだよね。

ん~……これは、アクセス権を変更すればいいのだろうけど、いいのかな…。 セキュリティ的にも気になるので検索して確認。

すると「DocumentRootを公開してはいけない」という指摘を発見。 さらに、サーバープロセスはRoot権限で動かすのではなく、ユーザーやグループを作って云々…とありました。 確かに、WindowsのIISでもAdministratorで動かすようなことはしませんね。

この辺りも細かく設定したいところですが、まずはPHPの状態を確認することにします。

viコマンドでテキストファイルを操作

root権限でないとファイルの作成ができないので、端末を起動してrootになります。

ディレクトリを端末で開く

右クリックメニューの中に「端末の中に開く」があります。 Windowsにも、[Shift]+[右クリック]で出てくるフォルダのメニューに「コマンドウィンドウをここで開く」というのがあるので、これと同じでしょう。

端末

端末が起動したので、「su」コマンドを入力してrootになります。

ここから、geditは使わずにCUIでテキストファイルを編集します。 検索すると、LinuxにはCUIから使えるエディタとして「vi」コマンドが用意されているので、これを使いましょう。

テキストエディタ「vi」を起動

vi に続いてファイル名「phpinfo.php」を指定。 ファイルが存在しない場合は新規に作成されるようです。

[root@localhost html]# vi phpinfo.php
viの画面

viが起動しました。 ステータスバーに新規ファイルを示す「New File」という表記が見えます。 ただ、ディレクトリにはファイルが出てきていないので、この段階ではまだ作成されていませんね。 画面の左に並ぶ「~」は、そこにデータ(テキストの行)がないことを示しているようです。

vi は「コマンドモード」とか「挿入モード」「編集モード」といったモードがあって、キー入力でモードを切り替えながら操作するようです。

今から行いたい処理は次の2つ。

  • "<?php phpinfo(); ?>"と入力する
  • ファイルを保存して終了する

文字の入力は[i]で開始され、[ESC]で終了します。 ファイルの保存(上書き保存)は、コマンドモードで[:w]。 終了は[:q]。

予習完了。 では実践。

viを入力モードに

まずキーボードで[i]を押してテキスト入力モードに切り替え。 ステータスバーが「-- INSERT --」に変わりました。

viでテキストを入力

続いて[<?php phpinfo(); ?>]とタイプ。 終わったら、[ESC]で入力モードを終了します。 ステータスバーから「-- INSERT --」が消えました。

viのコマンドモード

次にファイルの保存。 [:w]とタイプします。 ステータスバーのところにカーソルが移動しました。 これが「コマンドモード」かな?

ファイルの保存完了

[:w]に続いて[ENTER]を押したら「1L, 20C written」と出ました。 「1L, 20C」ってなんだ? 「1L」は「1 Line」ってことかな? ならば「20C」は「20 Charactors」かな? 「<?php phpinfo(); ?>」は19文字だから、改行コード込み? まぁいいや。 「written」ってあるので、保存されたのでしょう。

ディレクトリにもファイルが作成されていますね。

viを終了

最後に[:q]で終了。

端末に戻ってきました。

では、ブラウザでこのファイルにアクセスしてみます。 PHPが動いていれば、バージョンや稼働状況を表す内容が表示されるはずです。

ブラウザでphpinfo.phpにアクセス

うん。 まぁそうなるよね。 phpinfo.phpの中身がそのまま出てきました。 PHPはインストールされていないってことです。

確かにApacheをインストールしたからといって、必ずしもPHPが付属するわけではないですよね。 バージョンの選択とかもあるし。

なので、パッケージ管理システム(yum)からPHPを入手・インストールしましょう。 現在、PHPの最新バージョンは7ですが、今まで作ってきたサイトもあるので、それに合わせて5.6をインストールします。

予想だと「yum install php」みたいなコマンドを打つのだろうけど、バージョンの指定方法が分からないので検索。

む? CentOS 7でPHPを導入すると、Version 5.4がインストールされる、という記事がありました。 Version 5.6をインストールするには、「remiリポジトリの追加」という手順が必要なようです。

remiリポジトリってなんだ?

「remi」っていうと、にぎやかに料理を作りだしそうな名前ですが、これは「リポジトリ(Repository)」という種類の名前とみてよいでしょう。 英和辞典を引くと「貯蔵庫」や「倉庫」という意味ですが、ここは検索してみます。 日経BP社「ITPro」の用語集から「リポジトリ」の解説を要約すると、 「ソフトウェア・パッケージを集約した場所」を指すようです。

つまり、CentOS 7のインストールDVD(ISOイメージ)に含まれるリポジトリには、PHP 5.6のパッケージに関する情報が含まれていないから、 「remi」というリポジトリを追加して、そこから入手しなければならない、ということでしょう。 念のため「remi」も調べると、CentOSの元になっているRed Hatの開発者が管理しているリポジトリで、比較的新しいもののようです。

この章のまとめ

  • ApacheでDocumentRootは(セキュリティ保持のため)公開しない方がいい。
  • Apacheは、root以外のユーザーで起動した方がいい。
  • パッケージ管理システムにリポジトリを登録することで、導入できるソフトウェアが増える。
  • viコマンド:CUIのテキストエディタ。入力・編集・コマンドなど、モードを切り替えて使う。