Diary over Finite Fields

515ひかるの日記と雑文

PHP のためのローカル環境メモ.

諸事情で PHP を書く機運が高まっているので, PHP のローカルでの環境をメモしてみる. たぶん Arch Linux 系統の OS なら全部同じ方法でいけます. たぶん. 自分は Antergos でやりました.

この記事では, Apache, Twig についてのみ書きます.

Apache

PHP 本体と, 当然まずはサーバーが必要. 次でインストール.

 % yaourt  -S php php-apache apache

設定

Arch Wiki がものすごく頼りになるので基本はここを見てくれればいいと思います. 以下の記述もほとんど Arch Wiki の抜粋です.

Apache HTTP Server - ArchWiki

/etc/httpd/conf/httpd.conf に次の内容の変更を加える.

  • LoadModule mpm_event_module modules/mod_mpm_event.soコメントアウト
  • LoadModule mpm_prefork_module modules/mod_mpm_prefork.so をアンコメント
  • LoadModule dir_module modules/mod_dir.so より下に次の文を追加
LoadModule php5_module modules/libphp5.so
  • Include のリストの一番最後に次の行を追加
Include conf/extra/php5_module.conf

動作確認

srv/http/index.php に次のように書いて保存.

<?php phpinfo(); ?>

あとはサーバーを起動して, 動作確認をする. 次のコマンドを叩いたあとで http://localhost/ にアクセス.

 % sudo systemctl start httpd.service

Twig

Twig っていうのは PHP のテンプレートエンジンのことです. 公式サイト: Homepage - Twig - The flexible, fast, and secure PHP template engine

こちらの記事が参考になりました.

qiita.com

composer

公式によれば, 推奨インストールは composer を用いる方法とのことなので, まずは composer をインストールしよう.

 % yaourt -S php-composer

twig のインストール

composer を使って twig をインストール.

 % cd /path/to/project_dir/
 % composer require twig/twig:~1.0
 % ls 
composer.json  composer.lock vendor/

こんな感じになれば O.K.

動作確認

公式の PHP ファイルをそのまま使って動作確認を一応.

たとえば, composer をインストールしたディレクトリが test だったとして話をすすめる. まずは /test/index.php を次のように書く(Twig 公式からの引用)

<?php
require_once '/path/to/vendor/autoload.php';

$loader = new Twig_Loader_Array(array(
    'index' => 'Hello {{ name }}!',
));
$twig = new Twig_Environment($loader);

echo $twig->render('index', array('name' => 'Fabien'));
?>

test/srv/http/ に移動して apache を起動してブラウザでチェック. http://localhost/test/ にアクセス.

 % sudo cp -r /path/to/test /srv/http/
 % sudo systemctl start httpd.service

これで, Hello Fabien! と表示されたらO.K.

Twig の使い方

とりあえずテンプレートエンジンとしてテストしてみよう. 以下の記述はここを参考にした.

akisi.tabiyaku.net

以下では特に断りのない限りカレントディレクトリは test であるものとして話をすすめる.

テンプレートディレクトリ

まずはテンプレートファイルを入れるディレクトリを作る. ここでは, twigtmp とした. Twig のテンプレートファイルの拡張子.twig が標準っぽいのでそれにならう.

 % mkdir tiwgtmp

てきとうなエディタで default.html.twig を作成し, test/twigtmp に保存. テストなので適当な HTML コードを書くことに.

<!DOCTYPE html>
<html lang="ja">
    <head>
       <title>{{ title }} | サンプル</title>
   </head>
    <body>
        <h1>サンプルテンプレート</h1>
    </body>
</html>

{{ title }} は変数にあたる.

test/index.php を次のように編集する.

<?php
require_once './vendor/autoload.php';
$loader = new Twig_Loader_Filesystem('./twigtmp/'); // テンプレートディレクトリを指定
$twig = new Twig_Environment($loader);
$template = $twig->loadTemplate('default.html.twig'); // テンプレートファイルを指定
$template->display(array('title' => 'トップページ')); // 変数 title をアサイン
?>

こんな感じで, あとは例のごとく /srv/http/test にでもおいてチェック.

機能はいろいろあるようだが, とりあえず最低限動くことを確認して今日は終わり.