Info

Archive for

appengine-java-php

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

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. テーブル作成
以下のようにテーブルを作成(データベース名は各自の環境にあわせる)
mysql

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

環境:
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を起動
jailbreak1

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

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

Generalを選択して、次へ
jailbreak4

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

デフォルトのまま次へ
jailbreak6

デフォルトのまま次へ
jailbreak7

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

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

Buildを選択して次へ
jailbreak10

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

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

Noを選択
jailbreak13

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

5秒待ち
jailbreak15

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

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

DFU Modeになり成功
jailbreak18

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

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

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

JailBreak処理が開始され、後は待つだけ。

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();
?>

1. セットアップファイルダウンロード
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg こちらから Mac OS X 10.5 (x86_64) をダウンロード

2. インストール
mysql.dmg

ディスクイメージを開いたら、デフォルトのオプションのまま、まず「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サーバー再起動。

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>

エラー内容:

[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にコピーする。

snowleopard   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をインストールしてください)

Building native extensions. This could take a while…
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

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

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>