yamadaTarouの日記

日々の生活を書いてます。誰か宛てではなく、自分宛て。もはや自〇行為(オ〇ニー)と同じ

Ubuntuのaptコマンドで404エラーとなる

MySQLUbuntuにインストールしようとしたら、404エラーが発生したお話。

以下のコマンドで、MySQLをインストールしようとすると、大量の404エラーが(涙)

$sudo apt -install mysql-server mysql-client

 

f:id:yamadaTarou:20200518134705p:plain

aptの404エラー画面

 

このサイトで紹介されている方法を試してみる。

https://qiita.com/nyanchu/items/a8cfc5cf627d70d798bf

 

source.listファイルのURLを書き換え、実行すると以下のようなエラーが出てしまう。

f:id:yamadaTarou:20200518142115p:plain

aptのエラー

 

で、結論、リポジトリが古かったことが原因でした。以下のコマンドで最新化したら、正常にダウンロードすることができた。

$sudo apt-get update

tomcatでのサーブレット公開について

今更だけど、Tomcatサーブレットの公開方法について再学習したので、

メモ書きします。

 

tomcat/webapps配下にアプリを置くこと。

で、それぞれフォルダを分ける。

②フォルダごとに、以下を作成する。(以下はwebappsから記載)

webapps

 ┠WEB-INF/

  |   ┠classes/

  |      |      ┗classファイル

  |    ┗lib

 ┗web.xmlファイル

 

③web.xmlファイルには以下の記載が必要

 <servlet>

  <servlet-name>サーブレットの名前</servlet-name>

  <servlet-class>サーブレットのクラス名(javaのクラス名)</servlet-class>

 </servlet>

 <servlet-mapping>

  <servlet-name>サーブレットの名前</servlet-name>

  <url-path>公開するURL</url-path>

 </servlet-mapping>

 

上記は、パッケージのないサーブレットのweb.xmlの記載方法。

パッケージがある場合だと、url-patarnタグにパッケージ名が必要となる。

 

上記のまとめではイマイチわからないので、以下参考サイト(まとめた意味とは。。。)

https://www.searchman.info/java_eclipse/

https://eng-entrance.com/servlet-web-xml#webxml

apache2のモジュールの読み込み方法

【環境】

ubuntu

apache2

 

windowsでモジュールの読み込みをした際は、httpd.confに以下を記載しました。

Include ~~~

ただ、UbuntuのApache2で同様にapache2.confに上記を記載してもダメでした。

 

どうやら、以下のコマンドで必要なモジュールを読み込まないといけない。

$sudo a2emod

mods-enabledファイルからファイルを直接移動すると、再起動できないので注意。

 

※ちなみに、モジュールファイルをコピペして、a2emodを使うと以下のエラーが出る。

ERROR: Config file proxy.conf not properly enabled: /etc/apache2/mods-enabled/proxy.conf is a real file, not touching it

このエラーは、mods-enabledファイルにproxy.confがある状態で、以下のコマンドを実行すると出てくる

$sudo a2emod proxy

 

で、話は戻るが、先ほどのコマンドを実行すると、mods-enabledファイルにモジュールが追加されることがlsコマンドで確認できるようになる。

f:id:yamadaTarou:20200516173807p:plain

proxyモジュール追加後画面

 

以上、メモまでに。

 

 

>5/17追記

apacheubuntu)のデフォルトページをよくよく読むと以下のことが書いてあった。

f:id:yamadaTarou:20200517025912p:plain

apacheの構成についての説明文

上記の意訳)

mods-enabled,conf-enabled,sites-enabledの構成フォルダはそれぞれ、モジュール、グローバル設定フラグメント、バーチャルホスト設定を含んでいる。とのこと。

グローバル設定フラグメントという翻訳(グーグル先生)がよくわからなかったけど、格納されているファイルを見たら.confのシンボリックリンクが入っていたので、設定ファイルのことらしい。

 

また、使い方についても簡単に記載があった(ここを読んでおけばよかったのね)

f:id:yamadaTarou:20200517030907p:plain

apahceの使い方についての説明文

上記意訳)

それぞれ* -available /対応するものから利用可能な構成ファイルをシンボリックリンクすることによってアクティブ化される。a2enmod、a2dismod、a2ensite、a2dissite、およびa2enconf、a2disconfを使用して管理する。とのこと。

つまり、対応する* -availableにファイルを作って、それぞれのコマンドで*-enabledファイルにシンボリックリンクを作ることによって有効になる、って言ってる気がする。

 

ネットで調べるよりも、こういうドキュメントファイルが参考になったりするよね。

とくに、ubuntuapacheって検索してもすぐには見つからないこと多いし。

web.xmlファイルが更新されないんだけど。。。

EclipseでTomcat8.5を使っています。

その際にweb.xmlファイルを更新してTomcatを再起動させたのですが、

コンソールログを見ると更新した内容が反映されておらずエラーが発生していました。

 

とりあえず、以下の対策をしてみましたが駄目でした。

ビルド→Tomcatの再起動

 

で、しょうがないのでEclipse自体を再起動させて、

ビルドしてTomcatの再起動をしたところ、

コンソールにエラーログが出力されることがなくなりました。

 

web.xmlを更新した際は、Eclipseの再起動もしなければいけないの・・・?

また後で調査してみよう。

 

ApacheとTomcatとのポートフォワードについて

いつも通り、簡単にメモ程度のまとめです。

 

【環境】

windows10

Apache2.4

Tomcat8.5 (Eclipseデバッグモードで起動)

 

【方法】

基本的に、以下の設定をいじる

httpd.confに必要なモジュールの追加

②ポートフォワードするアドレスの設定

Tomcatで8009ポートの開放

上記の設定方法の詳細は以下を参照。

http://sakusaku-techs.com/apache-tomcat/apche-connect/#ApacheTomcat

ちなみに、secretRequiredの設定が必要でした。

 

基本的には上記の方法でよかったのですが、

今回の業務システムではロードバランサーを使ってAPサーバーへの接続を調整していたので、以下のモジュールの読み込みも必要でした。

mod_lbmethod_byrequests.so

mod_proxy_balancer.so

mod_slotmem_shm.so

 

で、なんとかポートフォワードに成功して、

APサーバーにアクセスできるようになりました!

 

ただ、APサーバー上で500エラーが発生しているようなので、

これを解決していかないといけない。。。

ドキドキVue.js②

昨日の続きから。

今日やった内容は、以下。

 

まずは、データバインドから。

記載方法は以下。

<要素 v-model="プロパティ名">

このデータバインドというのは、コンポーネントの持つデータ(jsファイルのデータ)とフォームコントロールの入力値(画面)に対して双方向にバインドさせる。

要は、どちらかが変更されたら、もう一方も変更するよというもの。

 

チェックボックス(複数)

→データが配列となる

--HTML--

 <input type="checkbox" v-model="check">・・・

--

var app = new Vue({

  el:"#app"

  data:{

  check:[] ←配列で受け取る

 }

 

②セレクトボックス

→特に注意店はないが、一応記載する。

--HTML

 <select v-model="sel"> <option value="a"></option></select>

--JS

var app = new Vue({

  el:"#app"

  data:{

  sel:""

 }

 

 

次にトランジション

トランジションとは、アニメーションのようなものでゆっくり動作するようなもの。

HTMLに<transition>タグを用いる。

CSSには .v-enterなどを使用する。

 

最後にコンポーネントについて。

Vue.component{'コンポーネント名',{コンポーネントオプション}}

で定義する。

--HTML

 <div id="app">

  <test-tag></test-tag>

 </div>

 

--コンポーネント.js(test-tag.js)

 Vue.component{'testTag',

   template : '<div>{{msg}}</div>'',

   data:function{return {msg:"こんにちわ"}}

}

 

--js(コンポーネントを関連づける)

 var app=new Vue({

  el:"#app",

  components:{

   test-tag : "testTag"

  }

 })

 

以上。