Ubuntu 14.04 LTS + IntelliJ IDEAでのTomcatの環境構築方法

Ubuntu 14.04 LTS + IntelliJ IDEAで、Tomcatを使えるようにするための方法をまとめます。

#目指す状態
* アプリケーションサーバと開発に使うPCは同一。
* 本番環境のブラウザからアクセスする際の、本番環境のURLは`http://localhost:8080/{サイト名}`。
* IntelliJ IDEAにて、本番環境と開発環境へのデプロイメントが可能。
* 本番環境へのデプロイメントは、開発環境へのデプロイメント後に行われる。

#Tomcatのインストール
1. `sudo apt-get install tomcat7 tomcat7-admin tomcat7-common tomcat7-docs tomcat7-examples tomcat7-user`コマンドを実行し、Tomcatをインストールします。
2. `sudo chmod o+r /var/lib/tomcat7/conf/tomcat-users.xml`コマンドを実行し、パーミッションを変更します。

#本番環境のデプロイメント先のディレクトリ作成
3. `sudo mkdir /var/lib/tomcat7/webapps/{サイト名}`コマンドを実行し、本番環境のデプロイメント先のディレクトリを作成します。
4. `sudo chmod o+w /var/lib/tomcat7/webapps/{サイト名}`コマンドを実行し、パーミッションを変更します。

#プロジェクト作成
1. IntelliJ IDEAを起動します。
1. New Project画面で、『Java Enterprise』->『Web Application』の順にクリックします。<br>![New Project_023.png](https://qiita-image-store.s3.amazonaws.com/0/52291/e1f65313-1ff5-16ae-730d-287cfd29be61.png)
2. 『New』をクリックします。<br>![New Project_024.png](https://qiita-image-store.s3.amazonaws.com/0/52291/c67fc49d-a320-c30f-9b86-ad477d391074.png)
3. 『Tomcat Server』をクリックします。<br>![New Project_021.png](https://qiita-image-store.s3.amazonaws.com/0/52291/7d6381f5-5675-63de-e510-27af6450f294.png)
4. 次のように入力し、『OK』をクリックします。

|項目|内容|
|:--:|:--:|
|Tomcat Home|`/usr/share/tomcat7`|
|Tomcat base directory|`/var/lib/tomcat7`|

5. 『Next』をクリックします。<br>![New Project_025.png](https://qiita-image-store.s3.amazonaws.com/0/52291/b086b472-6f49-81f2-0bc2-ce5ddf8bc1d9.png)
6. 『Project Name』を入力し、『Finish』をクリックします。<br>![New Project_026.png](https://qiita-image-store.s3.amazonaws.com/0/52291/4ba21724-2290-3b1f-ad20-91418c1104ee.png)

#Artifact設定
7. 『Project Structure』をクリックします。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_027.png](https://qiita-image-store.s3.amazonaws.com/0/52291/e1bca1b7-b130-1b64-1521-05be565f8c4d.png)
8. 『Artifacts』をクリックし、『Name』を開発環境へのデプロイメント用のArtifactだと分かるように変更します。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_028.png](https://qiita-image-store.s3.amazonaws.com/0/52291/fef99fd1-da3e-f85f-ae51-8f71ffb253dc.png)
9. 『+』をクリックします。<br>![Project Structure_029.png](https://qiita-image-store.s3.amazonaws.com/0/52291/793b5a68-40d9-ddef-fed9-5a74b3af9c57.png)
10. 『Web Application: Exploded』->『From Modules...』の順にクリックします。 <br>![Project Structure_030.png](https://qiita-image-store.s3.amazonaws.com/0/52291/3debda46-dd62-1380-fbfa-ce76fd25491e.png)
11. 『OK』をクリックします。<br>![Select Modules_031.png](https://qiita-image-store.s3.amazonaws.com/0/52291/92065fe6-2c6b-a96e-7bf3-ec8560b6e2f9.png)
12. 『Name』を本番環境へのデプロイメント用のArtifactだと分かるように変更し、『Output directory』を`/var/lib/tomcat7/webapps/{サイト名}`に変更します。<br>![Project Structure_032.png](https://qiita-image-store.s3.amazonaws.com/0/52291/d17b637c-bb24-4f35-7b3c-9fad498b6570.png)
13. 画像のように選択し、『-』をクリックします。<br>![Project Structure_033.png](https://qiita-image-store.s3.amazonaws.com/0/52291/9c3cb5ee-108b-ed58-92fb-0314af2610ce.png)
14. 画像のように、開発環境へのデプロイメント用のArtifactをドラッグ&ドロップします。<br>![Project Structure_034.png](https://qiita-image-store.s3.amazonaws.com/0/52291/7f0c734e-cbec-2fd5-b862-959c94a8f4e9.png)
15. 『OK』をクリックします。<br>![Project Structure_035.png](https://qiita-image-store.s3.amazonaws.com/0/52291/cfecb412-b05a-c0e0-698b-e75e4aa235ca.png)

#実行設定
16. 『Run』をクリックします。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_036.png](https://qiita-image-store.s3.amazonaws.com/0/52291/06f56f47-579f-48d1-5dd2-9658e378fe2f.png)
17. 『Edit Configurations...』をクリックします。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_037.png](https://qiita-image-store.s3.amazonaws.com/0/52291/2f174bc5-a5df-5ae8-37b0-0e5b4ac6b916.png)
18. 『Name』を開発環境へのデプロイメント用の実行設定だと分かるように変更し、Webアプリケーションを開くブラウザを指定します。<br>![Run-Debug Configurations_041.png](https://qiita-image-store.s3.amazonaws.com/0/52291/e88dc390-9f1b-146f-dfb1-9b42c100a123.png)
19. 『Deployment』をクリックし、『Application context』を`/{サイト名}`に変更します。<br>![Run-Debug Configurations_042.png](https://qiita-image-store.s3.amazonaws.com/0/52291/12167c0c-12e8-7a1b-fe63-39f0434c38e4.png)
20. 『Copy Configuration』をクリックします。<br>![Run-Debug Configurations_043.png](https://qiita-image-store.s3.amazonaws.com/0/52291/bf360afe-3a31-a8f2-0a38-5ec0dfa3e026.png)
21. 『Name』を本番環境へのデプロイメント用の実行設定だと分かるように変更します。<br>![Run-Debug Configurations_044.png](https://qiita-image-store.s3.amazonaws.com/0/52291/6e405376-7f6d-ef6e-9c6d-58465c95f483.png)
22. 『Deployment』をクリックし、『-』をクリックします。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_045.png](https://qiita-image-store.s3.amazonaws.com/0/52291/0bbd7414-306a-c0cc-86a7-98f5030d4d75.png)
23. 『+』をクリックします。<br>![Run-Debug Configurations_046.png](https://qiita-image-store.s3.amazonaws.com/0/52291/01d0816b-bf71-77cc-07cf-5346383df0e4.png)
24. 『Artifact...』をクリックします。<br>![Run-Debug Configurations_047.png](https://qiita-image-store.s3.amazonaws.com/0/52291/2efbb482-effe-b0f7-d2a9-6cfaf532a8eb.png)
25. 本番環境へのデプロイメント用のArtifactを選択し、『OK』をクリックします。<br>![Select Artifacts to Deploy_048.png](https://qiita-image-store.s3.amazonaws.com/0/52291/c2a6ef05-e8f1-fb65-e07f-73311ee03433.png)
26. 『Application context』を`/{サイト名}`に変更し、『OK』をクリックします。<br>![Run-Debug Configurations_049.png](https://qiita-image-store.s3.amazonaws.com/0/52291/d7b2f90a-4c2b-d9da-1c59-9548ef21666a.png)

#実行できないときの対処方法
実行時に次のようなエラーが表示されたときの対処方法です。

```
Error running {実行設定名}:
Address localhost:{ポート番号} is already in use
```
![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_052.png](https://qiita-image-store.s3.amazonaws.com/0/52291/6e58f814-76a5-6872-6e80-45969756fd9f.png)

1. 『Run』をクリックします。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_036.png](https://qiita-image-store.s3.amazonaws.com/0/52291/06f56f47-579f-48d1-5dd2-9658e378fe2f.png)
1. 『Edit Configurations...』をクリックします。<br>![test - [~-IdeaProjects-test] - IntelliJ IDEA 15.0.3_037.png](https://qiita-image-store.s3.amazonaws.com/0/52291/2f174bc5-a5df-5ae8-37b0-0e5b4ac6b916.png)
2. 『HTTP port』を使われていないポート番号に変更し、『OK』をクリックします。<br>![Run-Debug Configurations_053.png](https://qiita-image-store.s3.amazonaws.com/0/52291/0d05f974-d319-c4ee-f55e-e7eaa4ae18b4.png)

#参考文献
* [Javaのお勉強のためにさくっとtomcat環境を作ってみる(Ubuntu) - Qiita](http://qiita.com/munky69rock/items/a36ff577017bf401212f)
* [spring - IntelliJ needs to copy tomcat/conf directory to project directory - Stack Overflow](http://stackoverflow.com/questions/16428126/intellij-needs-to-copy-tomcat-conf-directory-to-project-directory)