この記事は公開されてから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を学習し、その結果をまたブログとして残していけたらと考えています。(^^)