PHPビギナーが挑むZend Framework 1(インストール)
こんにちは。最近PHPの学習を始めましたクラスメソッドの稲毛です。
PHPと関わりの深いゼンド・テクノロジーズ社つながりということで、Zend Frameworkをエントリポイントとして学習しています。
中身がだいぶ異なるようなのですが、「2」を知るにはまず「1」からということで、Zend Framework 「1」のLAMP環境を構築してみました。
環境
今回は、VirtualBox仮想マシン上のUbuntuにZend Frameworkをインストールしました。
- 仮想環境
- VirtualBox 4.2.16 r86992
- ホストOS
- Windows 7 Professional SP1 64bit
- ゲストOS
- Ubuntu 12.04.2 LTS 64bit
- Zend Framework
- Zend Framework 1.12.3 Full
コマンドヒストリ
下記はZend Frameworkをインストールした際のコマンドヒストリです。
$ sudo -s # apt-get install python-software-properties # add-apt-repository ppa:ondrej/php5 # apt-get update # apt-get upgrade -y # apt-get install aptitude -y # aptitude update # aptitude dist-upgrade -y # aptitude install -y \ apache2-mpm-prefork \ libapache2-mod-php5 \ php-apc \ php5-cli \ php5-common \ php5-dev \ php5-curl \ php5-mysqlnd \ php5-xdebug \ php-pear \ git-all \ mysql-server \ mysql-client \ subversion \ make # git clone git://github.com/facebook/xhprof.git # cd xhprof/extension # phpize # ./configure # make # make install # cd # wget -c https://packages.zendframework.com/releases/ZendFramework-1.12.3/ZendFramework-1.12.3.tar.gz # tar zxvf ZendFramework-1.12.3.tar.gz -C /usr/share/php/ # sed -i 's~^;include_path = ".:/usr/share/php"~include_path = ".:/usr/share/php:/usr/share/pear:/usr/share/php/ZendFramework-1.12.3/library"~' /etc/php5/apache2/php.ini # /etc/init.d/apache2 restart
コマンドの解説
コマンドについては、同じくPHPのWEBアプリケーションフレームワークである「BEAR.Sunday」の設定を参考にさせて頂きました。
機会があれば今後「BEAR.Sunday」についても触れてみたいと思います。
1. PHPを最新のバージョンへ更新する為のAPTリポジトリ追加
apt-get install python-software-properties add-apt-repository ppa:ondrej/php5
「add-apt-repository」を使用する為に「python-software-properties」をインストールし、リポジトリ「ppa:ondrej/php5」を追加しています。
2. apt-getで管理されるパッケージ一覧の更新・適用
apt-get update apt-get upgrade -y
yオプションを付与すると、確認「Yes/No」について全て「Yes」で進行するそうです。
3. aptitudeのインストールおよび管理されるパッケージ一覧の更新・適用
apt-get install aptitude -y aptitude update aptitude dist-upgrade -y
dist-upgradeではupgradeよりも依存性を考慮した処理が行われるそうです。
4. 必要(そう)なソフトウェアパッケージのインストール
aptitude install -y \ apache2-mpm-prefork \ libapache2-mod-php5 \ php-apc \ php5-cli \ php5-common \ php5-dev \ php5-curl \ php5-mysqlnd \ php5-xdebug \ php-pear \ git-all \ mysql-server \ mysql-client \ subversion \ make
必要の無いパッケージなどもあるかもしれません。(-_-;)
5. プロファイラツール「XHProf」のインストール
git clone git://github.com/facebook/xhprof.git cd xhprof/extension phpize ./configure make make install
6. Zend Frameworkのダウンロード・解凍
cd wget -c https://packages.zendframework.com/releases/ZendFramework-1.12.3/ZendFramework-1.12.3.tar.gz tar zxvf ZendFramework-1.12.3.tar.gz -C /usr/share/php/
7. PHPの参照パスを有効化およびZend Frameworkの追加
sed -i 's~^;include_path = ".:/usr/share/php"~include_path = ".:/usr/share/php:/usr/share/pear:/usr/share/php/ZendFramework-1.12.3/library"~' /etc/php5/apache2/php.ini
「sed」コマンドで文字列置換していますが、「vi」などのエディタで直接編集しても問題ありません。
8. Apacheの再起動
/etc/init.d/apache2 restart
プロジェクトの作成
Zend Frameworkに付属している「zf.sh」を利用して「quickstart」プロジェクトを作成します。
$ /usr/share/php/ZendFramework-1.12.3/bin/zf.sh create project quickstart $ sudo ln -s ~/quickstart/public/ /var/www/quickstart
「http://localhost/quickstart/」にアクセスして下のようなページが表示されればZend Frameworkは正常に動作しています。
MySQLの動作確認
プロジェクト内のテンプレートを編集して確認してみました。
~/quickstart/application/views/scripts/index/index.phtml
<style> a:link, a:visited { color: #0398CA; } span#zf-name { color: #91BE3F; } div#welcome { color: #FFFFFF; background-image: url(http://framework.zend.com/images/bkg_header.jpg); width: 600px; height: 400px; border: 2px solid #444444; overflow: hidden; text-align: center; } div#more-information { background-image: url(http://framework.zend.com/images/bkg_body-bottom.gif); height: 100%; } </style> <div id="welcome"> <h1>Welcome to the <span id="zf-name">Zend Framework!</span></h1> <h3>This is your project's main page</h3> <h3><?php echo $this->result; ?></h3> <div id="more-information"> <p><img src="http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png" /></p> <p> Helpful Links: <br /> <a href="http://framework.zend.com/">Zend Framework Website</a> | <a href="http://framework.zend.com/manual/en/">Zend Framework Manual</a> </p> </div> </div>
~/quickstart/application/controllers/IndexController.php
<?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller here */ } public function indexAction() { // action body $con = mysql_connect("localhost", "root", "") or die($this->view->result = "Connection failed!"); $this->view->result = "Connection successful!"; mysql_close($con); } }
ハイライトされている行が追記した箇所です。
「http://localhost/quickstart/」にアクセスして「Connection successful!」と表示されればMySQLの準備もOKです。
VirtualBoxホストOSからのアクセス
ホストOSからゲストOSへアクセスする場合は、VirtualBoxのネットワーク設定で「ポートフォワーディング」を利用すると簡単です。
ホストOSのポート「8080」へのアクセスをゲストOSのポート「80」へ転送させます。
ホストOSのブラウザから「http://localhost:8080/quickstart/」へアクセスすると、前述と同様のページが表示される筈です。
まとめ
とりあえずZend Frameworkが動作する環境を構築することはできました。
既存のLAMP環境へ設定する場合にも基本は「Zend Frameworkの設置」と「php.iniの編集」だけなので簡単に環境を構築できるかと思います。
この環境を使ってZend Frameworkを学習し、その結果をまたブログとして残していけたらと考えています。(^^)