連載のはじめに
こんにちは、
プログラミング言語などの動作環境の構築というのは面倒で、
また触れる範囲がインフラの深いところにも伸びる場合があり、
近年ではJSFiddleなどのオンライン実行環境など、
そのような人たちに向けて、
なお、
今回は、
PHPのバージョン
PHPは大きく分けて5.
現在広く利用されているのが5.
PHP7は2015年の12月にリリースされた新しいバージョンで、
いまから新しくPHPを始める場合はPHP7をおすすめします。世の中にある古いライブラリやフレームワークはPHP7に対応していない場合がありますが、
- 参考:PHP: Supported Versions
- http://
php. net/ supported-versions. php
PHPの動作環境の構築
それではPHPが動作する環境を作っていきましょう。
phpコマンドを動作させる
まずphp
コマンドを実行できるまでの手順を簡単にまとめます。
PHPは基本的に、
$ brew tap homebrew/php $ brew install php70 # もしくは brew install php56
またphpenv
やphpbrew
など、
MacでははじめからPHPがインストールされていてphp
コマンドが動作しますが、
PHPのインストールが完了したら、
$ php -v PHP 7.0.7 (cli) (built: Jun 17 2016 10:02:49) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
もちろんパッケージマネージャを使わずにソースからビルドすることもできます。ただwebサーバ
インストールできたら、
<?php
echo 'Hello world.' . "\n";
$ php hello-world.php Hello world.
PHPはコンパイルの必要がない言語なので、
webサーバで動作させる
次はPHPをwebサーバで動作させる場合です。webアプリケーションを開発する場合は必須になります。
最も簡単な方法がPHPのビルトインサーバを利用する方法です。以下のようなコマンドで、
$ php -S localhost:8888
モダンなwebアプリケーションフレームワークではこの機能を利用して開発を行えるものもあります。Laravelのartisan serve
コマンドなどがその例です。
デフォルトの設定では、index.
というファイル名でファイルと作っておくと、http://
にブラウザからアクセスした際に自動的にこのファイルが実行されます。つまりhttp://
というURLを指定した場合と同様の動作になります。
以下のようにphpinfo()
を実行するファイルを作成してそこでビルトインサーバを立ち上げ、http://
で確認してみましょう。phpinfo()
はPHPの設定項目などをHTMLで見やすく表示するための確認用の関数です。
<?php
phpinfo();
また簡単にApacheやnginxなどで動作させる際は、
実際にサーバにセットアップする際はApache上でPHPを動かすのが最もシンプルに行えます。パッケージマネージャでApache(httpd)とphpをインストールすれば自動的にwebサーバがPHPを実行可能になることが多いです。
$ yum install httpd php
動作を試してみて、
webサーバが動作していてもそのままコードが見えてしまう場合は、
PHPの基本的な設定
PHPの設定は php.
というファイルに記述します。いま動作しているPHPのphp.
の場所は、php -i
コマンドの出力から確認することができます。
$ php -i | grep php.ini Configuration File (php.ini) Path => /etc
PHPのスクリプト内でini_
という関数を利用することでも設定値を変更することができます。アプリケーションフレームワークなどでは、
まず設定すべきはdate.
です。これはPHPで利用するタイムゾーンの設定で、date()
関数などの動作に関わります。日付を日本に設定したい場合はAsia/
に設定します。
date.timezone = Asia/Tokyo
PHP5.
PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 0
次に知っておくべきはmemory_
です。デフォルトでは128MBになっており、
Fatal error: Allowed memory size of *** bytes exhausted (tried to allocate *** bytes) in ...
こういった場合はプログラムのメモリ使用量を減らすと同時にmemory_
の値を大きくすることを検討します。
他にもさまざまな設定項目があります。エラーの表示レベルを操作するerror_
や、default_
やmbstring.
などです。詳細はPHPのドキュメントを読んでみてください。
webサーバでPHPを動作させている場合、
おわりに
今回はPHPの動作環境を構築するために必要な部分をまとめました。PHPは動作環境の構築は比較的簡単ではありますが、
次回は実際にPHPのアプリケーションを作る際のポイントやデプロイの方法などについてみていきます。
- teratail
【テラテイル】 |思考するエンジニアのためのQAプラットフォーム - https://
teratail. com/