Archive for September, 2009|Monthly archive page
PHP on Google App Engine

1. Quercusライブラリダウンロード
http://quercus.caucho.com/ から Quercus 3.1.6をダウンロードする(Quercus 4.0.1は文字化けが発生するので、今回は3.1.6を使うようにする)
jar xf quercus-3.1.6.war
(quercus.jar, resin-util.jar, script-10.jar)
2. Jettyライブラリダウンロード
http://dist.codehaus.org/jetty/jetty-6.1.17/ から jetty-6.1.17.zip をダウンロード
(jetty-6.1.17.jar, jetty-util-6.1.17.jar)
3. ライブラリをlibフォルダに入れる
1と2で取得したjarファイルを war/WEB-INF/lib に入れる
4. 設定ファイル修正
4-1 appengine-web.xml
<static-files> <exclude path="/**.php" /> </static-files> <resource-files> <include path="/**.php" /> </resource-files>
4-2 web.xml
<servlet>
<servlet-name>Quercus Servlet</servlet-name>
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
<init-param>
<param-name>script-encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ini-file</param-name>
<param-value>WEB-INF/php.ini</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Quercus Servlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
4-3 php.ini ファイル作成
war/WEB-INF の下に php.ini ファイルを新規作成
unicode.semantics=on unicode.http_input_encoding=UTF-8 unicode.output_encoding=UTF-8 unicode.runtime_encoding=UTF-8
5. info.php
warの下にinfo.phpを作成
<?php phpinfo(); ?>
6. アクセスしてみる。
http://localhost:8080/info.php
Snow LeopardでSymfony環境を作ろう
環境確認:
$ httpd -v
Server version: Apache/2.2.11 (Unix)
Server built: May 18 2009 12:37:03
$ php -v
PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
$ pear -V
PEAR Version: 1.8.0
PHP Version: 5.3.0
Zend Engine Version: 2.3.0
0. php環境設定
$ sudo cp /etc/php.ini.default /etc/php.ini
$ sudo vi /etc/php.ini
[Date]
date.timezone = Asia/Tokyo
[Pdo_mysql]
pdo_mysql.default_socket=/tmp/mysql.sock
1. Symofnyインストール(1.0.21は不具合が発生したので、1.2.8にする)
$ sudo pear channel-discover pear.symfony-project.com
$ sudo pear install symfony/symfony-1.2.8
確認:
$ symfony -V
symfony version 1.2.8 (/usr/lib/php/symfony)
インストール先:
/usr/lib/php/symfony/
/usr/lib/php/doc/symfony/
/usr/lib/php/data/symfony/
2. プロジェクト・アプリケーション作成
$ cd Sites
$ mkdir mysymfony
$ cd mysymfony
$ symfony init-project mysymfony
$ symfony init-app myapp
3. Web(Apache)サーバー環境設定
$ sudo vi /etc/apache2/users/{username}.conf
Alias /~{username}/mysymfony/ /Users/{username}/Sites/mysymfony/web/
<Directory "/Users/{username}/Sites/mysymfony/web">
AllowOverride All
Allow from All
</Directory>
4. .htaccess修正
RewriteRule ^(.*)$ index.php [QSA,L]
↓↓↓
RewriteRule ^(.*)$ /~{username}/mysymfony/index.php [QSA,L]
5. テーブル作成
以下のようにテーブルを作成(データベース名は各自の環境にあわせる)

6. データベース接続設定
mysymfony/config/databases.yml 編集
all:
propel:
class: sfPropelDatabase
param:
classname: PropelPDO
dsn: mysql:dbname={databasename};host=localhost
username: {username}
password: {password}
encoding: utf8
persistent: true
pooling: true
mysymfony/config/propel.ini 編集
propel.database.url = mysql:dbname={databasename};host=localhost
propel.database.creole.url = ${propel.database.url}
propel.database.user = {username}
propel.database.password = {password}
propel.database.encoding = utf8
7. データベース定義ファイルの生成
$ symfony propel-build-schema
8. オブジェクトモデルの生成
$ symfony propel-build-model
9. フォーム作成
$ symfony propel:build-forms
10. CRUD機能の自動生成(scaffolding)
$ symfony propel-generate-crud myapp bbs Bbs
$ symfony cc
11. アクセスしてみる
http://localhost/~{username}/mysymfony/bbs
Jailbreak iPhone 3G OS 3.1
環境:
Mac OS X 10.6 (Snow Leopard)
iTunes 9
PwnageTool_3.1.dmg
iPhone 3G OS 3.1
PwnageToolをダウロード
http://blog.iphone-dev.org/post/188779017/3-o-fun
http://torrents.thepiratebay.org/5089960/PwnageTool_3.1.dmg.5089960.TPB.torrent
JailBreak
PwnageTool.appを起動

Expert ModeとiPhone 3Gを選択して次へ

iPhone OS 3.1に該当する ipswを選択して次へ

Generalを選択して、次へ

Activate the phoneのチェックを外して、Root partition sizeを適当に入力して次へ

デフォルトのまま次へ

デフォルトのまま次へ

デフォルトのまま次へ(CydiaとIcyをインストールしたくなければチェックを外す)

iPhone起動時、リカバリ時のロゴをカスタマイズするかどうかを選択して、次へ

Buildを選択して次へ

カスタムipswファイルの保存先を選択して、次へ

ビルド開始(途中でMacのユーザパスワードが聞かれるので入力)

Noを選択

画面に指示に従って電源ボタンを押して電源をOFF

5秒待ち

電源ボタンとホームボタンを10秒間押す

ホームボタンを押したまま、電源をボタンを離して10秒間待つ

DFU Modeになり成功

iTunesのほうで以下の警告が出ますが、気にせず、OKボタンを押してiPhoneをUSBケーブルから外してから再度コネクト

再コネクトすると、リカバリモードになる。

[option]キーを押しながら復元ボタンを押して、デスクトップに生成させたカスタムipswファイル(iPhone1,2_3.1_7C144_Custom_Restore.ipsw)を選択して、開く

JailBreak処理が開始され、後は待つだけ。
Mac OS X での httpd 設定メモ
1. 各ソフトウェア確認
$ perl -v
This is perl, v5.10.0 built for darwin-thread-multi-2level
$ php -v
PHP 5.3.0 (cli) (built: Jul 19 2009 00:34:29)
$ python -V
Python 2.6.1
2. confファイル修正
$ sudo vi /private/etc/apache2/httpd.conf
#コメントを外す(php用)
LoadModule php5_module libexec/apache2/libphp5.so
#コメントを外す(perl, python CGI用)
AddHandler cgi-script .cgi
$ sudo vi /private/etc/apache2/users/{username}.conf
# ExecCGI追加
<Directory "/Users/{username}/Sites/">
#Options Indexes MultiViews
Options Indexes MultiViews ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
3. 確認
perl.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach(sort keys %ENV){
print "$_: $ENV{$_}\n";
}
python.cgi
#!/usr/bin/python import os print "Content-type: text/html\n\n"; for param in os.environ.keys(): print "%20s %s<br/>" % (param,os.environ[param])
test.php
<?php
phpinfo();
?>
Mac OS X に MySQL をインストール
1. セットアップファイルダウンロード
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg こちらから Mac OS X 10.5 (x86_64) をダウンロード
2. インストール

ディスクイメージを開いたら、デフォルトのオプションのまま、まず「mysql-5.1.38-osx10.5-x86_64.pkg」をインストール。次に、同じくデフォルトオプションのまま「MySQLStartupItem.pkg」をインストールし、さらに「MySQL.prefPane」をダブルクリック
3. 起動
システム環境設定を起動して、その他のところに「mysql」があるのでクリックして、「Start MySQL Server」
4. アンインストール
$ sudo rm -rf /usr/local/mysql
$ sudo rm -rf /Library/StartupItems/MySQLCOM/
$ sudo rm -rf /Library/PreferencePanes/MySQL.prefPane/
※ 公式とキュメントでは、「/Library/Receipts/mysql-.pkg にある旧バージョンの Package Receipt ディレクトリも削除してください」と書いてあるが、Snow Leopardではなかったので
5. 文字コードをutf8に設定
$ sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
$ sudo vi /etc/my.cnf
[client]
default-character-set=utf8[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
mysqlサーバー再起動。
Mac OS X に Tomcat6 をインストール
1. Tomcatセットアップファイルをダウンロード
http://tomcat.apache.org/ こちらから Tomcat 6.x をクリックして、tar.gzファイルをダウンロード
2. インストール
インストールと言っても、単なる解凍、配置だけ
ターミナルを起動
$ sudo mv apache-tomcat-6.0.20.tar /usr/local/
$ cd /usr/local/
$ sudo tar xvf apache-tomcat-6.0.20.tar
$ sudo ln -s apache-tomcat-6.0.20 tomcat
$ sudo chown -R {username}:staff tomcat
$ sudo chown -R {username}:staff apache-tomcat-6.0.20
3. 起動
$ /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
4. プラウザでアクセス
http://localhost:8080/
5. 管理者画面にアクセスする為に設定
$ vi /usr/local/tomcat/conf/tomcat-users.xml
<tomcat-users>
<!–
<role rolename=”tomcat”/>
<role rolename=”role1″/>
<user username=”tomcat” password=”tomcat” roles=”tomcat”/>
<user username=”both” password=”tomcat” roles=”tomcat,role1″/>
<user username=”role1″ password=”tomcat” roles=”role1″/>
–>
<user username=”admin” password=”admin” roles=”standard,manager,admin”/>
</tomcat-users>
Tomcat6 + jre6でのエラー解決法
エラー内容:
[info] Starting service...
[174 javajni.c] [error] 指定されたモジュールが見つかりません。
[994 prunsrv.c] [error] Failed creating java
C:\Program Files\Java\jre6\bin\client\jvm.dll
[1269 prunsrv.c] [error] ServiceStart returned 1
[info] Run service finished.
解決法:
C:\Program Files\Java\jre6\bin\下の「msvcr71.dll」をC:\WINDOWS\system32にコピーする。
Snow LeopardでRuby On Rails環境構築

1. Snow Leopardでのデフォルト環境確認
$ ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] $ gem -v 1.3.1 $ rails -v Rails 2.2.2
2. mysql インストール
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg こちらから Mac OS X 10.5 (x86_64) をダウンロード。ディスクイメージを開いたら、デフォルトのオプションのまま、まず「mysql-5.1.38-osx10.5-x86_64.pkg」をインストール。次に、同じくデフォルトオプションのまま「MySQLStartupItem.pkg」をインストールし、さらに「MySQL.prefPane」をダブルクリック
3. mysql 操作
$ /usr/local/mysql/bin/mysql -u root -p Enter password:
mysql> create database mysqldemo default character set utf8;
mysql> grant all privileges on mysqldemo.* to
testuser@localhost identified by 'password';
4. gem install mysql
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
(以下のエラーが発生した場合はXcodeをインストールしてください)
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config
mkmf.rb can’t find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out
5. rails プロジェクト作成
$ rails -d mysql mysqldemo
database.yml ファイル編集
development:
adapter: mysql
encoding: utf8
database: mysqldemo
pool: 5
username: testuser
password: password
socket: /tmp/mysql.sock
6. scaffold 作成
$ script/generate scaffold user email:string name:string age:integer $ rake db:migrate
7. サーバー起動して確認
$ script/server
MacBook インストールソフト
Adium
http://adium.im/
CocoaMySQL
http://www.macupdate.com/info.php/id/10573
Eclipse
http://www.eclipse.org/downloads/
Eclipse日本語化
http://mergedoc.sourceforge.jp/
EasyWMA
http://www.easywma.com/
Firefox
http://mozilla.jp/firefox/
Flickr Uploadr
http://www.flickr.com/tools/uploadr/
GoogleAppEngineLauncher
http://code.google.com/intl/ja/appengine/downloads.html
iPhone SDK
http://developer.apple.com/iphone/index.action#downloads
Microsoft Messenger
http://www.microsoft.com/mac/downloads.mspx
Microsoft Remote Desktop
http://www.microsoft.com/mac/downloads.mspx
MySQL
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg
Parallels Desktop for Mac
http://www.parallels.com/jp/download/desktop/
Skype
http://www.skype.com/intl/ja/download/skype/macosx/
StuffIt Expander
http://my.smithmicro.com/mac/stuffit/expander.html
TextMate
http://macromates.com/
The Unarchiver
http://osx.iusethis.com/app/theunarchiver
Transmit
http://www.panic.com/jp/transmit/
VLC
http://www.videolan.org/vlc/
Windows Media Player
http://www.microsoft.com/mac/downloads.mspx
iPhone Explorer
http://www.iphone-explorer.com/
Transmission
http://www.transmissionbt.com/
Struts2.0->Struts2.1変更点(一部)

1.Filter
Struts2.0
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
Struts2.1
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.
StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
2.アノテーションクラス
@Namespace, @Resultなどのアノテーションクラスが、strtus2-core-2.0.x.jar から struts2-codebehind-plugin-2.1.x.jarに移されてる。よって、2.1でアノテーション使う場合は、libに struts2-codebehind-plugin-2.1.6.jar を入れる必要がある。
3.タグ
tabbedpanel、tree、datetimepicker などのタグがクラスが、 strtus2-core-2.0.x.jar から struts2-dojo-plugin-2.1.6.jar に移されてる。よって、2.1で上のようなタグを使う場合は、libに struts2-dojo-plugin-2.1.6.jar を入れる必要がある。
taglibの定義とサンプル
<%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="sx" uri="/struts-dojo-tags" %> <table width="300"><tr><td> <sx:tabbedpanel id="tabpanel1"> <sx:head/> <sx:div id="tab1" label="TAB1" theme="ajax">タブ1</sx:div> <sx:div id="tab2" label="TAB2" theme="ajax">タブ2</sx:div> <sx:div id="tab3" label="TAB3" theme="ajax">タブ3</sx:div> </sx:tabbedpanel> </td></tr></table>
Leave a Comment
Leave a Comment
Leave a Comment