shindigインストール

Shindigも再インストールしたら、ふつーに動いたのでメモメモ。
とりあえず定番のメモアプリの動作確認。
因みにUbuntu

環境は
Subversion
mod_rewrite
PHP各種拡張 (json, simplexml, mcrypt, curl)

が必要である。

SubVersionからShindigの2.02をチェックアウトする。
配置ディレクトリは/var/www/opensocial

cd /var/www/opensocial
svn co http://svn.apache.org/repos/asf/shindig/tags/shindig-project-2.0.2/ shindig

apacheにVirtualHostを設定する。


cd /etc/apache2/sites-enabled/
vim opensocial

以下の内容

                                                            • -



ServerAdmin webmaster@localhost
ServerName shindig
DocumentRoot /var/opensocial/shindig/php

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all

ErrorLog /var/log/apache2/shindig-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/shindig-access.log combined

                                                            • -

また、hostsファイルにIPアドレス、ホスト名の関連付けを記述

vim /etc/hosts
127.0.0.1 shindig

以上の設定で以下URLにアクセス。
パラメータとして外部メモアプリが書かれたガジェットXMLのURLを渡す。

http://shindig/gadgets/ifr?url=http://www.labpixies.com/campaigns/todo/todo.xml

APCのインストール

sudo pecl install apc

extension=apc.so
php.iniに追加。

make時に失敗するエラーが発生するならばpcre-devが必要。

apt-get install libpcre3-dev

apc:Alternative PHP Cache

Zend Engine(PHPの根幹)は、スクリプトを実行する前に中間形式にコンパイルし、それを実行。このコンパイルは、スクリプトにアクセスがあるたびに毎回実行されるため、同じファイルをコンパイルしてできる中間形式は常に同じであるため、行うごとに無駄が生じる。
APCは、アクセスがあった際に生成した中間コードを捨てずに、ファイル、もしくは共有メモリに記憶し、以後、同じファイルにアクセスされたときに、記憶された中間コードを再利用することで高速化を実現。

らしい。

phpの覚え書き

全然phpのことが分かっていないのでメモを書きなぐり。

まず、/etc/php5ディレクトリ。
この中にはapach2,cli,conf.dディレクトリが存在する。
特にapache2とcliにはphp.iniがそれぞれ存在しており、区別がついていなかったのだが、
どうやらapache2のほうはapache読み込みの際の設定ファイル、cliのほうはコマンドラインからphpを使用するときの設定ファイルだったらしいことが判明した。
cli:command line interpriter
なるほど。わけもわからずとphp-cliをインストールしていた弊害が今ここに..(苦笑)

であるから、extension設定をする際に、
apache2のほうのphp.iniではmcryptやpdo(phpmyadminに必要)などの.soライブラリファイルを記述しておくが、cliのほうにはこれらextensionを記述してはダメ。

私はわけも分からずに両方同じetension設定にしていたので、php -i やpear list などで確認すると、これらextensionの項目にてエラーがずらずら並ぶことが確認できた。

特にphp -i の方では、○○(←extension名 PDOとかXMLとか) is already loaded などというエラーが吐かれたおかげでこれを解決することができた。

ついでにconf.dディレクトリにはそれぞれ拡張(curlmcryptなど)の.iniファイルが入っていることになる。

OpenPNEのためのphpの設定

PHPは拡張ライブラリ等が多いので、やはりここに逐一インストールしたものをしるしていくことにする。
後でパッケージリストを照合していく作業は面倒くさいし、つい最近地獄をみたところなので・・
とりあえずphpizeをつかえるように
phpize・・・PECL(拡張ライブラリ、パッケージ提供サービス)の使用できない場合に、さらに低レベルでビルドを行う

<使い方>
拡張モジュールのソースが存在するディレクトリに移動して
$ phpize
$ ./configure
$ make
# make install


apt-get install php5-dev

                                                                                • -

以下の特別パッケージがインストールされます:
libssl-dev libssl-doc shtool zlib1g-dev
以下のパッケージが新たにインストールされます:
libss
l-dev libssl-doc php5-dev shtool zlib1g-dev

                                                                                • -

以下をapt-get
php5-mysql php5-mcrypt php5-gd php5-xmlrpc php5-symfony1.0

apt-get install php-pear
以下のパッケージが新たにインストールされます:
php-pear

ここらでかくのが面倒になってしまい色々インストールしたんだけど忘れた。

とりあえずOpenPNEの再インストール時に、
Couldn’t locate driver named mysql

というメッセージが。これはpdo-mysqlというエクステンションが入ってないかららしい。
pdoとはphpとデータベースをつなぐもので、多分pdo-sqliteとかもあるのかな。


続く。

Androidで遊ぶ

※設定->セキュリティからサードパーティ制アプリのインストールを許可

http://code.google.com/p/android-scripting/
からScripting Layer for Android (SL4A)なるものをダウンロードする。これはスクリプト言語によるプログラム開発を可能にするものらしく、Python,Perl,PHPなどなど使える言語は多数あるらしい。ふむ。
そういえば以前にWindowsMobileでもPythonの勉強をしようと思って対話型シェルのアプリをインストールしたがまったく使いものにならなかったので(そりゃそうだ)、あまり期待はせずに・・。

アプリ起動後
Menu -> View -> Interpreters -> Menuキー -> Add
で言語を追加できる。
試しにJRuby,Python 2.6.2
(恐らく)githubからそれぞれをインストールするためのアプリをダウンロードしている。
いちいちアプリという形態をとるところが煩わしいですね。

インストール完了後、Terminal IDEで動作チェック。
TerminalIDEではtelnetdが使えるということでせっかくなのでそちらで。(ログも残せるし)


Python

                                                                            • -

terminal++@192.168.24.61:~$
terminal++@192.168.24.61:~$ python
Could not find platform independent libraries
Consider setting $PYTHONHOME to [:]
'import site' failed; use -v for traceback
Python 2.6.2 (r262:71600, Feb 23 2012, 00:29:44)
[GCC 4.4.3] on linux-armv7l
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello"

>>> hello
>>> >>>[Ctrl+D]
terminal++@192.168.24.61:~$

                                                                                • -

また、それぞれ言語をインストールした時にサンプルも用意されていたようでScriptsとしてSL4Aに残っていました。
暇な時にでも遊ぼう

Twitter bot

この忘備録がTwitter上で言及されているというメールがやたらと届く。
php_hatena_botというもののトラックバックも残っている。

Twitterは使ったことがないので分からないが通称botと呼ばれる自動つぶやきプログラムがあるらしいことは知っていた。
恐らくはてなブログの中からPHP関連の記事を自動で吐き出しているのだろうか。

因みにいうと自分はトラックバックという言葉もよくわかっていない。
というかブログそのものがわかっていないんだがこんな感じでいいんだろうか。
メモ書きにしか使うつもりはないんだけれども。

OpenPNEのためのapacheの再設定

一度(どころじゃなかったかw)OpenPNE導入はCentOs,Ubuntuともに完了しているので、忘れていた所だけメモ。
a2enmod rewrite ->mod_rewriteを有効にする。
そうだ。Ubuntuはこれがあるから楽ちんなんだった
ln -s
シンボリックリンク。/opt以下にインストールしたため、/var/wwwにリンク。
service apache2 restart
あ、これだ。/etc/init.d/apache2とやらなくていいやつ。忘れてた。どうでもいいが。