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 に続いてファイル名「phpinfo.php」を指定。 ファイルが存在しない場合は新規に作成されるようです。
[root@localhost html]# vi phpinfo.php
viが起動しました。 ステータスバーに新規ファイルを示す「New File」という表記が見えます。 ただ、ディレクトリにはファイルが出てきていないので、この段階ではまだ作成されていませんね。 画面の左に並ぶ「~」は、そこにデータ(テキストの行)がないことを示しているようです。
vi は「コマンドモード」とか「挿入モード」「編集モード」といったモードがあって、キー入力でモードを切り替えながら操作するようです。
今から行いたい処理は次の2つ。
- "<?php phpinfo(); ?>"と入力する
- ファイルを保存して終了する
文字の入力は[i]で開始され、[ESC]で終了します。 ファイルの保存(上書き保存)は、コマンドモードで[:w]。 終了は[:q]。
予習完了。 では実践。
まずキーボードで[i]を押してテキスト入力モードに切り替え。 ステータスバーが「-- INSERT --」に変わりました。
続いて[<?php phpinfo(); ?>]とタイプ。 終わったら、[ESC]で入力モードを終了します。 ステータスバーから「-- INSERT --」が消えました。
次にファイルの保存。 [:w]とタイプします。 ステータスバーのところにカーソルが移動しました。 これが「コマンドモード」かな?
[:w]に続いて[ENTER]を押したら「1L, 20C written」と出ました。 「1L, 20C」ってなんだ? 「1L」は「1 Line」ってことかな? ならば「20C」は「20 Charactors」かな? 「<?php phpinfo(); ?>」は19文字だから、改行コード込み? まぁいいや。 「written」ってあるので、保存されたのでしょう。
ディレクトリにもファイルが作成されていますね。
最後に[:q]で終了。
端末に戻ってきました。
では、ブラウザでこのファイルにアクセスしてみます。 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のテキストエディタ。入力・編集・コマンドなど、モードを切り替えて使う。