ApacheとPHPのインストール~ SOCKET SERVER 'HAL'

ソケットサーバー「HAL」の実行には PHP のインストールが必要です。PHP のインストールは非常に簡単で、簡単なコマンドと簡単な設定を行うだけです。

また、併せて WEB サーバーである Apache をインストールすると、外出先から Raspberry Pi を操作出来るようになります。

ソケットサーバー「HAL」は PHP 言語で書かれているため、PHP 実行環境をインストールする必要があります。インストールと言ってもとても簡単ですので安心して下さい。

また、ソケットサーバー「HAL」を使っていると、外出先から Raspberry Pi を操作したくなるはずです。その場合、PHP を実行できる WEB サーバーアプリケーションを利用するのが便利です。

勿論、WEB サーバーをインターネットに公開するにはセキュリティについても考慮しなければなりませんが、お使いのインターネット回線がブロードバンドルーターを介しているのであれば、ルーターでお使いの Raspberry Pi を公開するように設定しない限り、それほど危険な事はないでしょう。

もし将来的に外部から Raspberry Pi を操作してみたいのであれば、ここで WEB サーバーをインストールし、簡単な設定だけ行っておくのが良いでしょう。

このページでは、WEB サーバーの代名詞でもある Apache をインストールし、その後で PHP をインストールします。

Apache 2.4 のインストール

現在最新の Raspbian jessie で apt-get で取得できる Apache のバージョンは、2.4.10 です。(2016/05/05)

Apache は、2.2 系と 2.4 系で設定項目が多少違うので、もし何らかの理由で 2.2 系をインストールされる方は 2.2 系の解説ページ等を併せて参照してください。

では、まず Apache のインストールです。以下のコマンドを入力して下さい。

sudo apt-get install apache2

これで、Apache がインストールされます。

apache2 -v

でバージョン情報が表示されればインストールは正常に行われています。

apache2

Apache の起動は

sudo service apache2 start

停止は

sudo service apache2 stop

再起動は

sudo service apache2 restart

です。

次は、簡単な Apache の設定です。Apache のディレクトリ構成は度々変わっているようですが、現在インストールされる apache2 の設定ファイルディレクトリは次のようになっています。

apache2 ディレクトリ

まず、/conf-available 内の security.conf を簡単に修正しておきます。

sudo vi /etc/apache2/conf-available/security.conf

ファイルの 36行目と37行目に

#ServerSignature Off
ServerSignature On

という記述があります。この ServerSignature が On にしてあると、エラードキュメントなどに WEB サーバーの情報が出力されてしまします。

error document

ですからここは、Off にしておくほうが良いでしょう。行頭の # が、それ以降をコメントにする記号ですので、

ServerSignature Off
#ServerSignature On

として、Off の方を有効にしておきます。

それともう一つ、Apache のデフォルトページを削除します。初期状態では Raspberry Pi の IP アドレスに WEB ブラウザでアクセスすると デフォルトページが表示されてしまいます。

apache のデフォルトページ

これでは ServerSignature を Off にした意味が無いので、このページを表示しないようにします。

現在の Raspbian でインストールされた Apache のドキュメントルートは /sites-available の 000-default.conf に記載されている /var/www/html ディレクトリです。(次のコマンドで確認できます)

sudo vi /etc/apache2/sites-available/000-default.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

先ほど表示されたデフォルトページは

/var/www/html/index.htm

というファイルです。このファイルを削除してしまいましょう。あるいは次のように、どこか DocumentRoot 外に移動させても構いません。

sudo mv /var/www/html/index.htm /var/www

これでデフォルトページは出力されなくなります。

あとは今後あなたのアプリケーション開発が便利になるように、先ほどの 000-default.conf に少しだけ設定を書き加えておきます。

sudo vi /etc/apache2/sites-available/000-default.conf
        ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

<Directory>で囲まれた内容を追記します。このような物を Apache ではディレクティブと呼びます。この Directory ディレクティブでは、/var/www/html 以下のディレクトリに対して Apache がどのような制限を行うかを定義しています。

Options FollowSymLinks

は、このディレクトリ以下にあるシンボリックリンクを有効にする設定です。

AllowOverride All

は、このディレクトリ以下にある .htaccess ファイルによる設定の上書きを全て有効にする設定です。

Require all granted

は、このディレクトリ以下へのあらゆる IP アドレスからのHTTPとHTTPSの接続を全て許可する設定です。つまり、このディレクトリ以下がインターネットに公開されます。勿論、お使いのブロードバンドルーターで、この Raspberry Pi を公開していなければこのような設定にしても、インターネットに公開される事はありません。

どれも、詳しい説明をすると長くなりますので、今はそれほど深く考えなくても大丈夫です。

(2016/06/05 追記)

あとひとつ書き忘れていましたが、Raspberry Pi で Apache を利用する場合には、ぜひ Apache から sudo コマンドを実行できるよう、sudoers に Apache ユーザーを登録しておくと良いでしょう。

sudo visudo

を実行すると、nano エディタで sudoers ファイルが編集できます。nanoエディタは vim 等と違って普通に編集が行えます。何も考えず、ただのテキストエディタだと思って編集してください。

なお、念のためですが、sudoers ファイルは本当に危険なので、絶対に vim などのエディタで直接ファイルを指定して編集しないで下さい。失敗すると、root 権限ですら何もできなくなります。必ず visudo コマンドを使って下さい。

sudoers ファイルの最後に

pi ALL=(ALL) NOPASSWD: ALL

という記述があるので、その次の行に Apache のユーザーである www-data を追加しておきましょう。

pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

これで、Apache 経由の PHP から sudo コマンドが実行できるようになります。

上記の場合、全てのコマンドを sudo でパスワード無しで実行できるようにしていますが、もしセキュリティが心配であれば、特定のコマンドのみ sudo で実行出来るようにすることも出来ます。

sudoers の保存方法は Ctrl + x でセーブ(保存)するか聞かれるので、保存してよければ y 、保存しない場合は n をタイプして下さい。Ctrl + c で、この確認をキャンセルできます。

y をタイプするとファイル名を聞かれるので、この場合は変更する必要はありませんからそのまま Enter を押して下さい。

Apache の設定は以上です。次は PHP のインストールと設定です。

PHP 5.6 のインストール

PHP のインストールも apt-get です。現在インストールされる PHP のバージョンは 5.6.20 です。(2016/05/05)

ここでは、PHP 本体以外に加えて画像編集ライブラリやデータベース用ライブラリ、暗号化ライブラリ等、便利なライブラリをインストールしています。これらの追加ライブラリは、必要な時に後からインストールすることも出来ます。

sudo apt-get install php5 php5-cli php5-gd php5-pgsql php5-mysqlnd php5-mcrypt php5-dev

インストールが終わったらバージョンを確認してみましょう。

php -v

phpのバージョン

後は、最低限のPHPの設定を行います。現在の PHP では、date.timezone の設定が必須になっていますので、これを設定します。

sudo vi /etc/php5/cli/php.ini

で、PHP の設定ファイルを編集します。date.timezone の記述を検索して下さい。(vimエディタでは、/ を入力した後 date.timezone と入力し ENTER で検索できます。その後は n で進む、N で戻るです)

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

という記述がみつかると思いますので、ここにあなたの地域のタイムゾーンを設定し、アンコメントして有効にします。( ; はコメント文という意味です)

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Tokyo

PHP ではコマンドライン実行の場合と Apache で実行する場合で、別々の php.ini が定義されています。

今編集したのは cli(コマンドラインインタフェース)用の php.ini ですので、同じように Apache 実行用の php.ini も編集しておきましょう。

sudo vi /etc/php5/apache2/php.ini

以上で Apache と PHP のインストール及び設定は終了です。

最後に Apache を再起動して設定を有効にしましょう。

sudo service apache2 restart

ご購入

ソケットサーバー「HAL」は以下のオンラインショップでご購入いただけます。ご購入に先立っては、ぜひ、体験版で動作の確認をお願いいたします。

体験版

ソケットサーバー「HAL」の体験版をダウンロード
hal_trial version 1.5
試用期限 2016/11/30 まで
※ sudo wget -O hal_trial_1_5.tar.gz 'http://feijoa.jp/getFile/?place=products&filename=hal_trial_1_5.tar.gz' でもダウンロードできます。
HAL の IP アドレス制限を解除してライセンス制に変更しました。お好きな IP アドレスで HAL をお試しいただけます。なお、ライセンスされていない製品では起動から 40 時間後に HAL は自動終了します。

この記事へのコメント

※現在コメントはMarkdown記法が強制です。>>Markdown の書き方


この記事に返信

このコメントに返信