ローカル環境で作ったJavaのプロジェクトを公開するには、
と選択肢は結構あるようですが、Javaに対応しているレンタルサーバーがほとんどないのと(PHP対応のレンタルサーバーは多い)、個人の場合は、料金的なことを考えるとVPSの利用が多くなるのかな?と考えています。
ですが、VPSはセキュリティなどに対しても自分でいろいろ設定しないといけないのでなかなかたいへんのようです。
今回は、12ヵ月無料で利用できるということで登録していた、Google Cloud Platformを利用してみたいと思います。
JavaのWebプロジェクトをサーバー公開するのに必要なもの
データベースを使っている前提でいくと、
- Webサーバー
- アプリケーションサーバー
- Java
- データベース
- MySQL オープンソース
- PostgreSQL オープンソース
- SQLite オープンソース
- SQL Server 商用
- クラウド独自のデータベースなど
は必要になってきそうです。(それぞれ1つあれば大丈夫です。分かりにくい記述してしまいましたが、上述は利用できる種類を列挙してます。)
Google Cloud Platformに環境を作る
まずは、仮想マシン(自分の場合はCentOS7)を用意します。
⇩ Google Cloud Platformなどの始め方はこちらを参考ください。
・Windows 10 HomeにVCCW(v3)を導入、Wordmoveのための準備
CentOS7という前提で話を進めさせていただくと、仮想マシン(CentOS7)に
- Webサーバー
- アプリケーションサーバー
- Java
- データベース
をインストールする必要があります、たぶん...。 とりあえず、Google Cloud Platformにログインします。https://cloud.google.com/ にアクセスし、「ログイン」をクリックします。
ログイン後、「コンソールを開く」をクリック。
ダッシュボードに来ます。
「Compute Engine」>「VMインスタンス」を選択。
「名前」のところの「instance-1」をクリックします。
起動してない場合は、をクリック。
仮想マシン(CentOS7)が起動したら、「リモートアクセス」のドロップダウンから、「gcloudコマンドを表示」を選択。
「CLOUD SHELL で実行する」をクリック。 (Google Cloud Platform側で仮想マシンにssh接続のためのコマンドを用意してくれるようです。)
コマンドが実行できるように黒い画面が表示されます。 Enterをクリックすると、先ほどのコマンドが実行されます。
ディストリビューションのバージョンの確認方法は、各ディストリビューション毎によって異なります。今回はCentOS7の場合です。
Linuxカーネルのバージョンは/proc/versionファイルに書いてあります。
まずは、Javaのインストール。
の2つがあり、Javaのアプリケーションを動かすだけなら、JREだけでいいみたいですが、JDKにはJREも含まれているようなので、JDKをインストールします。
wgetコマンドが見当たらないので、curlコマンドで実行します。
⇩ rpmとtar.gzの違いは下記サイトへ
・インストールに関するご質問002 | Webベース営業支援システムdesknet's SSS(サザン)
⇩ ダウンロード用のURLの取得方法は下記サイトへ
・LinuxでJavaをダウンロードして動かしてみる - Qiita
curl -OL --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz"
ダウンロードできたら展開します。
tar -xvf ./jdk-8u144-linux-x64.tar.gz
インストールされたか確認。
jdk1.8.0_144/bin/java -version
ただ、インストール場所を間違えてるような気がするんで、一旦アンインストールします。(っていうか、Linuxの場合に正しいJavaのインストール先が分からんですな)
⇧ にも特にインストール先について言及してくれてないっぽいんすよね。
でも、まぁ、今いるディレクトリ(「~」チルダって読むらしい)がユーザーのホームディレクトリらしいんですが、ここにJavaインストールはありえなさそうな気がするんですがね....。
そして、アンインストールの仕方も結構ザックリ説明のOracleさん、流石です。
よくありそうな場所にインストールされてないってことですかね?
とりあえず、ホームディレクトリにインストールされたJavaを削除。
root権限に切り替え。
/usr/localにjavaフォルダを作成。ダウンロードしたJDKの圧縮ファイルの場所も確認。
圧縮ファイルをjavaフォルダに移動。いまいるディレクトリの移動。
ここで、圧縮ファイルを展開します。
tar -xvf ./jdk-8u144-linux-x64.tar.gz
展開されました。
ホームディレクトリの.bash_profileもしくは、.bashrcにパス指定をすれば、javaとかでコマンドが実行できるようになるようです。(Windowsでいう環境変数みたいな感じですかね?)
・.bash_profileと.bashrcについて - Qiita
ユーザー単位
/home/ユーザー名/.bash_profile、/home/ユーザー名/.bashrc
全ユーザー
/etc/bashrc、/etc/bash_profile
⇧ bashが入ってる場合
ちなみに、すべてのユーザーのホームディレクトリの場所を確認するには、
less /etc/passwd
でいけるようです。lessコマンドを中断するには「q」と入力します。
脱線しましたが、で、見事に.bash_profileとか無い。
基本的に「/etc/profile」と「/etc/bashrc」は全ユーザー共通で利用する設定ファイルで書き換えるのは推奨されていません。各ユーザーごとに異なる設定にする場合は各ユーザーのhomeディレクトリにある「.bash_profile(バッシュプロファイル)」もしくは「.bashrc(バッシュアールシー)」を編集します。 「.bash_profile」はログイン時に1度だけ読み込まれ、「.bashrc」はbashを起動するたびに読み込まれます。新しい環境変数を設定する場合、特に理由が無ければ「.bash_profile」にまとめて記述するのがお勧めです。
⇧ によると、ホームディレクトリの「.bash_profile(バッシュプロファイル)」もしくは「.bashrc(バッシュアールシー)」を編集とあるので、確認。(「-a」オプションで隠しファイルも表示できるようです。)
ls -a /home/ユーザー名/
確かに、ファイルがあるので、「.bashrc」にJavaのパスを追加。
vi /home/ユーザー名/.bashrc
エディタが開けたら、「i」でinsertモード(編集できる)になるので、
export JAVA_HOME=/usr/local/java/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
を追記(Javaのバージョンはインストールしたものに合わせてください。)
「Esc」キーを押し、「:wq」で保存してviエディタを終了できます。
編集した内容を反映させます。
source /home/ユーザー名/.bashrc
コンパイラーも!
とりあえず、Javaのインストールができたので、 次回はアプリケーションサーバー(Apache Tomcat)をインストールしていきたいと思います。Javaのインストール場所がいまだに合ってるか微妙です。
2017年8月27日(日) 追記
Javaのインストール場所ですが、ネットに出てくる情報だと、/usr/java フォルダを作成してそこにインストールしている人がほとんどで、usr/local/javaみたいにインストールしてる人が少ないようなので、もしかしたら、/usr/java にしたほうが良いのかもしれないです。
というわけで、/usr/local/javaにインストールしたJavaを削除します。
新しいJavaインストール先のフォルダ作成
mkdir /usr/java
Javaの圧縮ファイルの移動
mv /usr/local/java/jdk-8u144-linux-x64.tar.gz /usr/java/jdk-8u144-linux-x64.tar.gz
既存のJavaを削除
rm -R -f /usr/local/java/jdk1.8.0_144
新しくJavaをインストールし直します。
cd /usr/java
Javaの展開
tar -xvf ./jdk-8u144-linux-x64.tar.gz
前に設定していた環境変数を消します
vi /home/toshi888_8_888/.bashrc
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions
全ユーザーが使えるように新たに、環境変数を設定します。
vi /etc/bashrc
「# vim:ts=4:sw=4」の後に環境変数を追加します。
# vim:ts=4:sw=4 export JAVA_HOME=/usr/java/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ファイルの設定を反映させます。
source /etc/bashrc
これで、スーパユーザーでもJavaが動くようになったかと思われます。他にも方法はありそうですが、応急処置的に。