QA@IT

RaspberrypiでJavaプロジェクトをネットにアップしたい

7384 PV

Raspberrypiで以下のコマンドを打ってブラウザでhttp://hoge.ngrok.io/プロジェクト名/を見ると
Not Found
The requested URL /プロジェクト名/ was not found on this server.
Apache/2.4.25 (Raspbian) Server at hoge.ngrok.io Port 80
TeraTermには以下が表示されます
GET /favicon.ico 404 Not Found
GET /プロジェクト名/ 404 Not Found
ブラウザに正常表示されるよう解決に導いて下さいますでしょうか。

環境設定
Windows10HOME
TeraTerm4.98
Raspberrypi3 model B 32GB
Debian9.4
ngrok2.2.8

コマンド履歴
①Apache2インストール
sudo apt-get install apache2
②apache2の設定ファイル/etc/apache2/sites-available/000-default.confをコピーして「hoge.ngrok.io.conf」を作る
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/hoge.ngrok.io.conf
③hoge.ngrok.io.confに以下を追記
sudo nano /etc/apache2/sites-available/hoge.ngrok.io.conf
SeverName hoge.ngrok.io
ServerAdmin hoge@gmail.com
DocumentRoot /var/www/html
④設定ファイルの有効化
cd /etc/apache2/sites-available
sudo a2ensite hoge.ngrok.io
④apache2 を再起動
sudo /etc/init.d/apache2 restart
⑤javaをオラクルのサイトからダウンロードしてSSH SCRでTeraTermに取り込む
⑥javaのzipを解凍
sudo tar -zxvf jdk-8u171-linux-arm32-vfp-hflt.tar.gz
⑦/usr/java/というフォルダを作る
sudo mkdir -m 666 /usr/java/
⑧jdk1.8.0_171を/usr/java/に移動
sudo mv /home/pi/jdk1.8.0_171 /usr/java/
⑨jdk1.8.0_171に実行権限を与える
sudo chmod +x /usr/java/jdk1.8.0_171
⑩環境変数設定ファイルに以下を追記
sudo nano /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_171
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib
export CATALINA_PID=/var/run/catalina.pid
⑪tomcat9をApacheのからダウンロードしてSSH SCRでTeraTermに取り込む
⑫tomcat9のzipを解凍
sudo tar -zxvf apache-tomcat-9.0.7.tar.gz
⑬apache-tomcat-9.0.7を/usr/local/tomcatに移動
sudo mv apache-tomcat-9.0.7/ /usr/local/tomcat
⑭server.xmlに以下を追記
sudo nano /usr/local/tomcat/conf/server.xml<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Host name="hoge.ngrok.io" appBase="/usr/local/tomcat/webapps/" unpackWARs="true" autoDeploy="true">
<Alias>hoge.ngrok.io</Alias>
<Context path="" docBase="/usr/local/tomcat/webapps/プロジェクト名" debug="0" reloadable="true"></Context>
⑮web.xmlを編集
sudo nano /usr/local/tomcat/conf/web.xml
<welcome-file>baseLayout/catalog</welcome-file>
⑯tomcat-users.xmlに以下を追記
sudo nano /usr/local/tomcat/conf/tomcat-users.xml
<user name="root" password="rootpass" roles="admin,manager" />
⑰DNSレゾルバの編集
sudo nano /etc/resolv.conf
generated by /sbin/dhclient-script
search ngrok.io
nameserver 192.168.8.101
nameserver hoge.ngrok.io
⑱プロキシの設定
sudo nano /etc/systemd/system/http-proxy.conf
<Location /プロジェクト名/>
ProxyPass ajp://hoge.ngrok.io:8009/プロジェクト名/
ProxyPassReverse ajp://hoge.ngrok.io:8009/プロジェクト名/
</Location>
⑲hostsファイルの設定
sudo nano /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspberrypi
192.168.8.101 hoge.ngrok.io
⑳Eclipseで作ったプロジェクトをwarファイルにエクスポートしてSSH SCRでTeraTermに取り込む
㉑Tomcatのwebappsに権限を与える
sudo chmod 765 /usr/local/tomcat/webapps
㉒warファイルをTomcatのwebappsに移動
sudo mv /home/pi/プロジェクト名.war /usr/local/tomcat/webapps/
㉓設定を反映するためにTomcatを起動してプロジェクトフォルダを作成
sudo /usr/local/tomcat/bin/catalina.sh start
㉔raspberrypiを公開するように使ったngrok確認用のindex.htmlを削除する
sudo rm /var/www/html/index.html
㉕MariaDBインストール
sudo apt-get install mariadb-server
㉖MariaDBの設定を編集
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
111,112行目を変更
character-set-server = utf8
#collation-server = utf8mb4_general_ci
㉗MariaDBにログイン
sudo mysql -u root
Enter password:
何も入力しないでEnter
MariaDB [(none)]>SET PASSWORD = PASSWORD('rootpass');
㉘データベースをcreateしてroot'@'hoge.ngrok.ioに権限を与える
㉙データベースにテーブルをcreateする
㉚テーブルにカラムを insertする
㉛システム起動
Raspberrypi再起動→sudo reboot
MySQL起動→tomcat起動→Apache起動
sudo /etc/init.d/mysql start
sudo /usr/local/tomcat/bin/catalina.sh start
sudo /etc/init.d/apache2 start
ngrok authtoken xxxx
ngrok http -subdomain=hoge 80

  • 内容を整理してください。「Raspberrypi**で**Javaプロジェクトをネットにアップしたい」のでしょうか。書かれていることからは、Raspberry Pi **に** Java の Web アプリケーションを設定したい、のように思われます。 -
  • Jittaさん、コメントありがとうございます。内容が分かりにくくて、申し訳けございません。「Raspberrypi**で**Javaプロジェクトをネットにアップしたい」です。 -
  • 現在の状況を詳しくご報告したいので、回答を起こします。ご高覧下さい。 -
  • いや、質問を編集すればええやん。一覧に「回答数1」とつくので、「ああ、回答ついたんだ」と思われますよ。ああ、文字数制限が!! -
  • 「ラズパイでネットにアップしたい」だと、ラズパイから操作する、プログラムを受け取るのは操作をしているラズパイ以外の何か、という意味ですよ。ラズパイに設定したウェブアプリケーションサーバーにアップしたい、でしょ?文字通りラズパイから他所にアップするなら、ラズパイにTomcat入れる必要ないですよね。 -

回答

「GET /プロジェクト名/ 404 Not Found」というエラーが消えなかったので調査していたところ、
Javaは「jdk-8u171-linux-arm32-vfp-hflt.tar.gz」を使用するのではなく、Raspberrypi用の
「ejdk-8u171-linux-armv6-vfp-hflt.tar.gz」を使用しなくてはならないという事に気づきましたので、
インストールしなおしました。
その後、JavaプロジェクトをエクスポートしてTomcatにデプロイしてApacheとTomcatを起動しても、
「GET /プロジェクト名/ 404 Not Found」というエラーは変わらずでした。
TomcatのlibフォルダにMySQLのコネクターのjarファイルを入れて再度ApacheとTomcatを起動しても、
GET /プロジェクト名/ 404 Not Found」というエラーは変わらず。

状況を切り分けて判断するために、まずはローカル環境でTomcatの起動画面を表示するか試したところ、
Tomcatの起動画面は正常に表示成功。

後はserver側でうまくいくか、色々設定をいじっていた所、/etcフォルダにあるprofileファイルをいじって
再起動したら、raspberrypiの起動画面が突然パスワードを求めるようになり、何を入力してもログインできず、
OSを再インストールしようとしたところ、インターネットが現在モバイルルーターを使っているので再インストール出来なくなってしまいました。

固定回線は6月1日に開通予定なので、それまで何も出来ない状況になっております。

この回答にお付き合い下さっている方々、6月1日までお待ちくださいますようお願いいたします。すみません。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。