Kqna's Blog

Archive for the ‘PHP’ Category

プログラミングPHP 第2版 の「14章PHPの拡張」に誤植があったのでメモしておきます。

#ただ、第3版(まだ日本語版はない)だと該当の章自体がなくなってるみたいですね。

p369の「14.7 パラメータの処理」で以下のPHP拡張のコードがあります。

long l;
char *s;
ints_len;
doubld d = 0.0;
if (zend_parse_parameters(ZEND_NUM_AGRS() TSRMLS_CC, “ls|d”, &l, &s, &s_len)
== FAILURE) return;

このように作った関数をPHP側から

add_item($num, $desc, $price);

のように呼ぶと第3引数に指定した値が、PHP拡張のコード側に渡せると書いてあります。

ですが、実際には

long l;
char *s;
ints_len;
doubld d = 0.0;
if (zend_parse_parameters(ZEND_NUM_AGRS() TSRMLS_CC, “ls|d”, &l, &s, &s_len&d)
== FAILURE) return;

のようにしないと渡せないです。

広告

前回作成したvagrantの環境の上で
「blogチュートリアル | Symfony2 Blog チュートリアル」
試してみます。

Symfony2のインストール


$ cd /var/www/
$ sudo chown vagrant.vagrant .
$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.11.tgz
$ tar xzf download\?v\=Symfony_Standard_Vendors_2.0.11.tgz

これで「http://localhost/Symfony/web/config.php」にアクセスする。
そうすると「This script is only accessible from localhost.」というメッセージが表示されてアクセスができない。
今回は「/var/www/Symfony/web/config.php」を直接編集してこれを回避する

header('HTTP/1.0 403 Forbidden');
exit('This script is only accessible from localhost.');

となっているところを

# header('HTTP/1.0 403 Forbidden');
# exit('This script is only accessible from localhost.');

に書き換えればとりあえず、先ほどのURLに正しく表示できるようになる。

 

 

ここでいろいろと変更が求められるので、今回は以下のコマンドで対応しました。
$ chmod o+wx /var/www/Symfony/app/cache/ /var/www/Symfony/app/logs/

$ sudo apt-get install php5-sqlite sqlite3

$ sudo sed  -i -e ‘/;date.timezone/ c date.timezone=Asia/Tokyo’ /etc/php5/apache2/php.ini
$ sudo service apache2 restart

ここまでで重要な変更にはすべて対応できます。ついでに推奨の設定も以下のコマンドで対応しておきます

$ sudo apt-get install php-apc php5-intl

$ sudo sed  -i -e '/short_open_tag/ c short_open_tag = off' /etc/php5/apache2/php.ini

$ sudo service apache2 restart
これでひとまずSymfonyのインストールは完了です。

タグ:

vagrantでphpの開発環境を作ってみました。

vagrantで仮想マシンを作る


$ vagrant -v
Vagrant version 1.0.1
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
$ vagrant init # 初期設定ファイルの生成
$ emacs Vagrantfile

以下のように編集します。

config.vm.box = "lucid32"  # baseをlucid32に変更する
config.vm.forward_port 80, 8080 # コメントアウトを解除


$ vagrant up # 仮想マシンの起動
$ vagrant ssh # 仮想マシンへSSH接続

PHPのパッケージをそろえる

とりあえず必ず必要そうなものだけ入れておきます。

$ apt-get update
$ apt-get upgrade
$ apt-get install php5-common libapache2-mod-php5 php5-cli
$ sudo apt-get install php-pear php5-dev

Apacheの設定ファイルを用意します。
これからPHP用の設定が増えてくるかも知れないので、defaultの設定をコピーして使用しています。


$ sudo a2dissite default
$ cd /etc/apache2/sites-available
$ sudo cp default php
$ sudo a2ensite php
$ sudo /etc/init.d/apache2 reload

次にPHPが正しく動作しているかを調べます

$ cd /usr/lib/cgi-bin/
$ sudo chown vagrant.vagrant .
$ cat > info.php
<?php
phpinfo();

これで、「http://localhost:8080/cgi-bin/info.php」にアクセスして、
phpinfo();のページが表示されればOKです。

 

2012.03.24

誤植があったので、少し修正しました

タグ: ,

カテゴリー