なんか突然eclipseで開発してtomcatが404しか出ないようになった。
アンインストールして再インストールしてサンプル起動させると動く
なんでだろーっておもってたらライブラリーを追加するときに、利便性考えてlibフォルダにjarファイルを突っ込んでいたのが原因だった。
素直に別フォルダ作って追加したいjarを突っ込んで、そのフォルダからAdd external Jarsで入れると404出なくなった。
よかったよかった
なんか結構悩んで時間かかったからメモ
WebServerを新しく構築しようと思ってんで、高速に通信出来るようにしたいからwebSocketを使って通信しようかなーって思った
https://www.pegaxchange.com/tag/setup-tomcat-9-server-in-eclipse-neon/
まぁここ見ながらやったら開発環境は基本的にできた
開発環境:Eclipse IDE for Java EE Developers
https://www.eclipse.org/downloads/packages/release/neon/3
なんかJava SEで動いたからこれいれる
Java SE Runtime Environment 8 Downloads
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
jre-8u181-windows-x64.exe
ハマったポイントがeclipseのneonだとHelpのEclipse MarketPlaceで~みたいな記事あったけど、できなかった。
https://tomcat.apache.org/download-90.cgi
から9.0.0.M20の64-bit Windows zipをダウンロードしてください
そしたらコピペだけど
例えばCドライブ上に解凍した後
In the Preferences dialog, select Server > Runtime Environments and then click on the Add… button to setup a new runtime environment.
Eclipse IDE for Java EE Developers – Preferences > Server Runtime Environments > Add
In the New Server Runtime Environment dialog, select Apache Tomcat v9.0 from the list and then click on the Next button.
Eclipse IDE for Java EE Developers – Preferences > Server Runtime Environments > New Server Runtime Environment
ここでtomcat installation directoryで解凍したファルダのC:\Tomcat 9.0 指定
JREはデフォルトでいいとおもう
Specify the installation directory of Tomcat by clicking on Browse and selecting the root folder of the Tomcat installation. In this example c:\tomcat9 was used as the root folder.
Click on Finish to continue.
Eclipse IDE for Java EE Developers – Preferences > Server Runtime Environments > New Tomcat Server Runtime Environment
The Apache Tomcat v9.0 web server is now available as a server runtime environment in Eclipse and can now be used to deploy and run Java web modules containing Servlets, JSP files, web services and so on. Click on OK to close the Preferences dialog.
Eclipse IDE for Java EE Developers – Preferences > Server Runtime Environments > Apache Tomcat v9.0
してください
記事消えたら嫌だからついでに後もコピペ
5 Setup of new Dynamic Web Project in Eclipse
A Dynamic Web Project in Eclipse is a project facet for developing Java web applications as defined in the Servlet Specification. It generates a web application deployment descriptor (web.xml) and allows to export the project to a web archive (WAR) file for deployment to a Servlet container such as Tomcat.
On the Eclipse Welcome page, select Create a new Java EE Web Project or use the Eclipse main menu and select File > New> Dynamic Web Project. Both links will show the same dialog for configuring a new dynamic web project.
Eclipse IDE for Java EE Developers > Create a new Java EE Web Project
In the Dynamic Web Project dialog, enter the project’s name and select the target runtime, in this case Apache Tomcat v9.0.
Select the Dynamic web module version, in this case it is 3.1, indicating Servlet Specification 3.1, then click on the Finish button.
Eclipse IDE for Java EE Developers > Create a Dynamic Web Project
The new dynamic web project will now show up in the Project Explorer of Eclipse. To open the Project Explorer, navigate to Window> Show View > Project Explorer in the Eclipse main menu.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project
It may be necessary to configure the project’s build path so that the Tomcat 9 JAR files are added as a dependent library to the project. These JAR file include the Servlet API, Annotations API and others.
Create a new user library by navigating to Window > Preferences in the Eclipse main menu.
In the tree menu of the Preferences dialog, navigate to Java> Build Path> User Libraries.
Click on the New button to add a new user library.
Eclipse IDE for Java EE Developers > Preferences > Java > Build Path > User Libraries
In the New User Library dialog, enter a library name, here it is Tomcat9Library
Eclipse IDE for Java EE Developers > Preferences > Java > Build Path > User Libraries > New User Library
The new library now shows up in the User Library list. Click on Add External JARs to add the Tomcat JAR files to it.
Eclipse IDE for Java EE Developers > Preferences > Java > Build Path > User Libraries > Add External JARs
In the JAR Selection dialog, navigate to the Tomcat 9 “lib” folder. In this example, the complete folder path is c:\tomcat9\lib.
Select all of the JAR files in that folder and click on “Open“.
Apache Tomcat 9 lib folder JAR files
The JAR files are now listed under the newly created library.
Click on OK to close the Preferences window.
Eclipse IDE for Java EE Developers > Preferences > Java > Build Path > User Libraries > Tomcat 9 JAR files
Adding the library to the web project: In the Eclipse Project Explorer, right click on the project name and select Properties from the context menu.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project > Properties
In the tree menu, select Java Build Path and open the Libraries tab in the main area.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project > Properties > Java Build Path > Libraries
Click on the button Add Library and select User Library in the Add Library dialog.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project > Properties > Java Build Path > Libraries > Add Library > User Library
Select the newly created user library, in this case, Tomcat9Runtime and click on Finish.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project > Properties > Java Build Path > Libraries > Add Library > Select User Library to add to the classpath
The library is now added to the web project’s list of dependent libraries.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project > Properties > Java Build Path > User Library
When expanding the Java Resources > Libraries node in the Project Explorer tree menu, the JAR files from that library are now listed.
Eclipse IDE for Java EE Developers > Project Explorer > Dynamic Web Project > Java Resources > Libraries > User Library
ながいなー
まぁとりあえずユーザーライブラリーに登録して、それを毎回使うようにしましょうーってことぽい
あと新規のServlet(.javaのファイル)を作るときNew> Servletってするんだけどいつも忘れる
んで、eclipseの左上あたりに強制的に動作を停止させるボタン表示させるなら↓いる。
https://sourceforge.net/projects/tomcatplugin/files/
1. Eclipseのtomcatプラグインをダウンロード
2. Eclipse>help>Install New Software
3. Work withのadd>Archive>手順1でダウンロードしたzipを選択
4. Tomcat Pluginが表示されたらチェックしてインストール
5. Eclipse > 環境設定
6. Tomcat
7. Tomcatバージョンを選択
8. Tomcat Homeを選択(C:\Tomcat 9.0)
9. コンテキスト宣言モードを設定
あとテストサーバーとかで試すときfiddlerとかで解析させるのが便利だけど、httpsのオレオレ証明書で怒られる場合はfiddlerのoptionのcaputure https チェックしてdecrypted https trafficにチェックして、右らへんにactionってあるからそこからtrust root certificateで証明書作って、Windowsに登録したらexport root certificate to desktopして、それをfirefoxの「編集」->「設定」->「プライバシー」 & 「セキュリティー」->「証明書」->「証明書管理」とかで認証局証明書としていれる
[Fiddler] The Fiddler AutoResponder is enabled, but this request did not match any of the listed rules. Because the “Unmatched requests passthrough” option on the AutoResponder tab is not enabled, this HTTP/404 response has been generated.
の場合はAutoresponderのパススルーを有効にしてください
んでwebsocketでfirefox console securityerror the operation is insecure って言われる場合は(ws://だと言われる)about:config で network.websocket.allowInsecureFromHTTPSを有効
とりあえず開発がんばろ
c:\xampp\mysql\bin\mysqldump.exe -hHOST -uUSER -pPW –max_allowed_packet=512M 転送元DB | c:\xampp\mysql\bin\mysql.exe -hHOST -uUSER -pPW –max_allowed_packet=512M 転送先DB
で接続先のDBにそのままDBをコピー出来ると思ったんだけど
ERROR 2006 (HY000): MySQL server has gone away
ってでる
接続先のmysqlが落ちてそう
max_allowed_packet指定してても出るから仕方ないから接続先のDBのmax_allowed_packetを上げる
vi /etc/my.cnf
[mysqld]
max_allowed_packet = 1000M
一番下に追加する
動くといいね!
SSLを入れるためにやったことです
買ったのはアルファSSLのワイルドカードドメイン
*.medicalfields.jpです
実際にやった設定
サーバーの秘密鍵作成(パスフレーズなし)
openssl genrsa -out server.key 2048
でサーバーの秘密鍵作ったら
CSR(Certificate Signing Request)を作成
openssl req -new -key server.key -out server.csr
ワイルドカードのドメインの場合はコモンネームを*.medicalfields.jpに
ほかはChallenge Passwordは入力しない!
んで出来たCSRをWEBのSSL発行サイトに貼り付けると
medicalfields.jp.crtっていうサーバ証明書ファイルを送ってくれる
これと中間証明書alphassl_intermediate_ca. cerがいる
yum –y install mod_ssl
vi /etc/httpd/conf.d/ssl.conf
中間証明書:alphassl_intermediate_ca.cer
サーバ証明書ファイル:medicalfields.jp.crt
サーバーの秘密鍵:medicalfields.jp.key
ができる
DocumentRoot “/var/www/html”
ServerName medicalfields.jp:443
のコメント外して付け加える
SSLCertificateFile /etc/pki/tls/certs/medicalfields.jp.crt
SSLCertificateKeyFile /etc/pki/tls/private/medicalfields.jp.key
SSLCertificateChainFile /etc/pki/tls/certs/alphassl_intermediate_ca.cer
保存
/etc/pki/tls/certsにcrtとcerの2つのファイル、/etc/pki/tls/private/にkeyを転送する
とりあえずCentOS7にWEBサーバー構築する
んでMariaDBは別サーバーにして、負荷を分散!って構造
ServerWEB1[Apache+PHP]
|
ローカルネットワークーク ー ServerSQL[MariaDB Slave]
|
ServerSQL[MariaDB Master]
っていう構造でいく
ロードバランサーは見送りです(そんなに負担かからないだろうし24コアまで1分ぐらいで拡張できるから)
ConohaでServerWEB1のサーバー作成
SSHでログイン
yum install httpd firewall-cmd --add-port=80/tcp --zone=public --permanent firewall-cmd --add-port=443/tcp --zone=public --permanent yum -y install php systemctl start httpd.service systemctl enable httpd.service
んでWordpressを
DocumentRoot “/var/www/html”
にコピー
すると
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
だと
yum -y install php-mysql
入れて
vi /etc/php.ini
に行って
extension=mysql.soの追加
systemctl restart httpd.service
で再起動したら動いてるはず
MariaDB
yum -y install mariadb mariadb-server
systemctl enable mariadb.service
systemctl start mariadb.service
firewall-cmd --add-port=3306/tcp --zone=public --permanent
mysql_secure_installation
でセキュリティ設定
とりあえずLocalからのみだけどそれだとアクセスできないから
mysql -u root -p
でSQLのコマンドの画面に入って
grant all privileges on *.* to name@'%' identified by 'password' with grant option
でAdminユーザー作った。これでWordpressログインします
なんやかんやでそのままduplicatorのinstall.phpで復元もすんなり出来た(フォルダのアクセス権を777にする必要はあったけど)
その後Wordpressのトップページ動いたーってなったけど他のページ行くとNot Foundと言われる。
でパーマリンクをデフォルトに戻すと表示される
実はhttpd.confの設定に不備があった。
<Directory “/var/www/html”> ~ </Directory>の中でAllowOverrideがNoneのままだった。
このため、.htaccessの設定が無効になっていたのだ。
そこで以下のように変更したら正常に表示されるようになった。
AllowOverride None
↓
AllowOverride All
<Directory “path/to/your/document/root”>
# ….
AllowOverride None
# ….
</Directory>
パーマリンクもできたしWordpress動いたーってなったけどプラグインの有効ページに行くと何故か真っ白になる
デバッグモード有効にすると
PHP Fatal error: Call to undefined function mb_convert_kana() in …
だって
解決方法
yum -y install php-mbstring
さらにjetPackを使うとエラー
Fatal error: Class ‘DOMDocument’ not found in
yum -y install php-xml
でOK
なんか調子悪そうならデバッグモード有効にすると原因がわかる
wp-config.php
に
define(‘WP_DEBUG’, true);を追加すると良い
conohaVPSだと簡単にSSH Keyで認証できるサーバーができる
+パブリックキーで
PuTTYで作った鍵(SSH2-RSA)の2048ビットでできた公開鍵
ssh-rsa AAAAArxOZqxJ7qmi/XxS/LsAdNpc3oJS2jafPM12tnyLryL1q2irCtnyLryL1q2irCqjNvhzCRV65rKHVhNs5qcc8vPWKRIl8TbakKz+fKxESMJ1X02CBuB6MCf+S3Q4zsiIwv7d3bO/ENDsDgGsTAedsdfejhDHnveoa0eDhekaBNATLWs6euDeWD7LKncdmrY15/+7DCp6UrWd/evqa+Mfp6xApCKQWP/dyzrVdhVUDrpf/cpiv0nlkMRvhY/Q== rsa-key-20170222
的なやつをImportしてConohaさんに登録
Conohaのサーバー管理でこの公開鍵でサーバーを新規作成します
また秘密鍵は大切に保管しましょう
key passphraseを登録するとより安全
ここで秘密鍵をppkで登録する
んでTeratermでUse RSA/DSA~~~~~to log inでさっきのPPKファイルを選択して、key passphraseを正しく入力するとログインできます
※ここのpassphraseはrootのログインのパスワードじゃないです!それだとログインできない、秘密鍵のパスワードです
ちなみにkey Psspharseが間違ってたら秘密鍵が正しくないみたいなエラーがでるけど秘密鍵のPPKファイルはきっと正しくてパスワード間違ってるだけだと思います
ConohaVPSでCentOS7.3でローカルネットワークを作ったのにお互いに接続されなかった原因
なんかIPアドレスは割り当てられたやつ
例:
利用可能アドレス | 192.168.11.1 – 192.168.11.254 |
---|
の場合で割り当てられたIPが
IPアドレス | 192.168.11.4 |
---|
だった場合
CentOS7だとnmtuiでGUIで操作するのがええよ!ってことでそれでやった
Edit a connectionで増えたやつ選択して(もし増やしたはずのMACアドレスのNICがなかったらActivate a conecctionしよう。Activate失敗してもなんか大丈夫そう)
/24が死ぬほど大事!
Gatewayに255.255.255.0と入力するとなぜか
PREFIX=32となります
それだと、つながりません
ip addr showで
brdが192.168.11.4となっちゃいます
自分で直接編集する場合は
# ディレクトリ移動
cd /etc/sysconfig/network-scripts
# 編集開始
vim ifcfg-eth1
でPREFIX=24にしましょう
あとEdit ConnectionでNever use this network for default routeはXにしてチェックいれましょう
そうしないとこのローカルネットワークでネットを繋ぎに行って、外部からSSHのログインできなくなります。
CentOS7.3でSoftEtherインストールのためにしたこと
softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gzをhttp://www.softether-download.com/ja.aspx?product=softether
からDLしてWINSCPで/rootに転送
yum -y install gcc
1. 解凍
tar xzf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
cd vpnserver
2. ビルドするため、make コマンドを実行する。
make
ライセンス同意書に同意するための処理が始まる。 まずは、1 を入力する。
Do you want to read the License Agreement for this software ?
1. Yes
2. No
Please choose one of above number:
1
再度、1 を入力する。
Did you read and understand the License Agreement ?
(If you couldn’t read above text, Please read ‘ReadMeFirst_License.txt’
file with any text editor.)
1. Yes
2. No
Please choose one of above number:
1
再々度、1 を入力する。
Did you agree the License Agreement ?
1. Agree
2. Do Not Agree
Please choose one of above number:
1
自動的にコンパイルが始まり、動作環境がチェックされる。すべて [合格] であれば OK。
3. vpnserver ディレクトリ丸ごと /usr/local/ に移動させ、パーミションを修正する。
cd ..
mv vpnserver /usr/local/
cd /usr/local/vpnserver/
chmod 600 *
chmod 700 vpncmd vpnserver
これで、インストール完了。
systemd用の起動スクリプトを作成します。ポイントは Type を「forking」にする事です。
# cd /etc/systemd/system
# vi vpnserver.service
[Unit] Description=SoftEther VPN Server After=network.target [Service] Type=forking ExecStart=/usr/local/vpnserver/vpnserver start ExecStop=/usr/local/vpnserver/vpnserver stop [Install] WantedBy = multi-user.target systemdがサービスを認識したか確認します。 # systemctl list-unit-files --type=service |grep vpn vpnserver.service disenabled systemdにサービスを登録し起動させます。 # systemctl enable vpnserver # systemctl start vpnserver
ポートを開放する
firewall-cmd –add-port=443/tcp –zone=public –permanent
firewall-cmd –add-port=443/udp –zone=public –permanent
バッファローやTP-LINKなどのルーターはオリジナルのファームウェアではなくカスタマイズされたDD-WRTというファームを入れることができる。
今回はOpenVPNでDD-WRTでプライベートネットワークを作ろうとした。
とりあえずWEB画面からOpenVPNのサーバーにログインさせる
AdministrationのCommandsに
#!/bin/sh
touch /tmp/auth.conf
echo “USERNAME” > /tmp/auth.conf
echo “PASSWORD” >> /tmp/auth.conf
をStartupに登録で
ServicesのVPNに
Additional Config:
resolv-retry infinite
nobind
persist-key
persist-tun
client
verb 3
auth-user-pass /tmp/auth.confServer IP/Name:接続するサーバー
Encryption Cipher: AES-128 CBC
Hash Algorithm:SHA1
CA Cert:鍵
Public Client Cert:鍵
Private Client Key:鍵
Bridge TAP to br0は有効した
そうするとSoftEtherのOpenVPNに接続はできた(StatusのVPNでConnectedになる)が、なんかうまいことeth0からプライベートネットワークにつながらない
とりあえず様子見