読者です 読者をやめる 読者になる 読者になる

【Java】Wicketで作られたプロジェクトの公開メモ

久しぶりすぎる海山です。こんばんは。

現在研究室のプロジェクトを進めています。
私の担当は主にCSSなどのフロントエンド+サーバー周りの設定です。

JavaのWebアプリケーション用フレームワークWicket…。使えません。
今回はただの、サーバ周りの、Wicketでプロジェクトを作ったあとにどうするのか?という所です。

1.サーバの設定を頑張って行う

Javaを入れて、ApacheTomcatも入れます。
 参考サイト(http://centossrv.com/)

2.作ったプロジェクトをwarでエクスポートする

 eclipseを使っているので、ファイル→エクスポートでwarファイルにします

3.warファイルを配置

サーバの/usr/local/tomcat/webappsに先のwarファイルを配置
そうすると、自動で解凍されます。

4.必要に応じて、sqlファイルのインポートを行って環境を整える

5.ブラウザでアクセスしてみる

以下のアドレス
 http://そのサーバのIPアドレス/tomcat/プロジェクト名/
または
 http://そのサーバのIPアドレス/プロジェクト名/
にブラウザからアクセスすると見れます。
ちゃんとプロジェクトが起動したようです!!!!

6.マッピングがおかしい

/tomcat/とかが入ってしまっている原因を直します。上で述べた、サーバ設定の参考サイドでTomcatApache連携の所で追記した部分が問題になっています。
/etc/httpd/conf.d/proxy_ajp.confを

#ProxyPass /tomcat/ ajp://localhost:8009/
ProxyPass /examples/ ajp://localhost:8009/examples/
ProxyPass /プロジェクト名/ ajp://localhost:8009/プロジェクト名/

のようにして、予め書いてあった/tomcat/をコメントアウトしてしまいしょう。

再起動

/etc/rc.d/init.d/httpd restart
/etc/rc.d/init.d/tomcat restart

7.やったね!!

そうすると、http://そのサーバのIPアドレス/プロジェクト名/ で動いているプロジェクトを確認することが出来ました。

8.あとは‥

http://IPアドレス/プロジェクト名/
とかだと、公開したくない‥ので、あとはDNS周りの設定で、http://hoge/プロジェクト名/でアクセスできるようにします!


何かエラー画面が表示されたら

詳しいエラーは
/usr/local/tomcat/logs/catalina.outに書いてあります。
参照しましょう。



その他エラー

Apache再起動時のエラー

参考サイト(http://blog.dacelo.info/apache/entry-713.html)

httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName

このような文章が出ていたときは、
/etc/hostsに書いてある物と、自分で設定した/etc/httpd/conf/httpd.conf のServerNameが異なっているからです。
/etc/hostsを参照しながら、↓

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               dacelo localhost.localdomain localhost

/etc/httpd/conf/httpd.conf を以下のように書き換えます。

# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
#ServerName www.example.com:80
ServerName dacelo:80

/etc/rc.d/init.d/httpd reload
再起動してもエラーが出ません(*´ω`*)

まだApacheに怒られる
[warn] worker ajp://localhost:8009/ already used by another worker

参考サイトを参考に記述した部分が問題になっているようです。
これは/etc/httpd/conf.d/proxy_ajp.confに記述してある、部分をコメントアウトすると治ります。

#ProxyPass /tomcat/ ajp://localhost:8009/
ProxyPass /examples/ ajp://localhost:8009/examples/
http://〜にアクセスしてプロジェクトが起動したが、DBからのデータが反映されないところがある。

参考サイト(http://d.hatena.ne.jp/tacohachi/20101110/p1)

WindowsのMySQLではテーブル名に大文字/小文字の区別がないが、LinuxMySQLでは区別されており、しかもWindowsで大文字で定義したテーブル名はmysqldumpを経由してLinux側にリストアするとテーブル名が小文字になってしまう

Windowsでは→大小文字区別なし
Linux→区別有り
 ※WindowsからのダンプをLinuxに入れると、テーブル名が小文字になる

Linux側のmy.cnfにlower_case_table_names=1を指定しておけばいいことが分かった。この変数がデフォルトでUnixでは0、Windowsでは1、MacOSでは2になっているらしい。1を設定すると、テーブル名に大文字/小文字の区別がなくなり、内部的にはすべて小文字で表現されることになる。

解決策:my.cnfに以下を書く(大小文字区別をなくす)

[mysqld]
lower_case_table_names=1

MySQLの再起動

/etc/init.d/mysqld restart

直ったー!!!

JSのHightcharts(http://www.highcharts.com/)というグラフ作成ライブラリを使って、グラフの描画をしていたのですが、Linuxでは何故か、データが上手く表示されていませんでした。
どうやら、上のMySQLの問題でデータが読み込めていなかったようです。










全然バレンタインしてませんが…
バレンタインチョコ欲しい!
欲しいプレゼントは…