CentOS8のupgradeでCurl error (37)が出る場合の対処

CentOS8 Stream の dnf upgradeで

Curl error (37): Couldn’t read a file:// file for file:///etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY [Couldn’t open file /etc/pki/rpm-gpg/MariaDB-Server-GPG-KEY]
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing ‘yum clean packages’.

がでた

RPM KEYをインポートしたら治ります!

rpmkeys --import https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB

NginxのSSLでブラウザでは問題ないのにPythonのrequestsでSSLErrorが出た

弊社のソフトウェアはpythonのrequestsでSSL通信を行っているが、今回証明書を更新するタイミングでssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failedが出て焦った。

これ原因は中間証明書にあります!

例えばアルファSSLだとG2の有効期限は2024-02-20で、G4は2027-10-12までで、私は2027年までのG4の証明書だけをPEMにして入れたらいいと思ってました。

これ違います!

実は中間証明書は階層構造になっていて、G2の証明書とG4の証明書の両方が必要になります!

https://info-globalsign.com/news/20221108

なので

NG:

—–BEGIN CERTIFICATE—–
Your CRT
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
MIIEijCCA3KgAwIBAgIQfU1CqStDHX5kU+fBmo1YdzANBgkqhkiG9w0BAQsFADBX
MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIyMTAx
MjAzNDk0M1oXDTI3MTAxMjAwMDAwMFowTDELMAkGA1UEBhMCQkUxGTAXBgNVBAoT
EEdsb2JhbFNpZ24gbnYtc2ExIjAgBgNVBAMTGUFscGhhU1NMIENBIC0gU0hBMjU2
IC0gRzQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtJCmVZhWIPzOH
A3jP1QwkuDFT8/+DImyZlSt85UpZwq7G0Sqd+n8gLlHIZypQkad5VkT7OLU+MI78
lC7LVwxpU19ExlaWL67ANyWG8XHx3AJFQoZhuDbvUeNzRQyQs6XS5wN6uDlF0Bf1
AtCUQWrGGLGYwyC1xTrzgrFKpESsIXMqklUGTsh8i7DKZhRUVfgrPLJUkbbLUrLY
42+KRCiwfSvBloC5PgDYnj3oMZ1aTe3Wfk3l1I4D3RKaJ4PU1qHXhHJOge2bjGIG
l6MsaBN+BB2sr6EnxX0xnMIbew2oIfOFoLqs47vh/GH4JN0qql2WBHfDPVDm3b+G
QxY6N/LXAgMBAAGjggFbMIIBVzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYI
KwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE
FE/LrKjC76vdg29rv86YPVxYJXYVMB8GA1UdIwQYMBaAFGB7ZhpFDZfKiVAvfQTN
NKj//P1LMHoGCCsGAQUFBwEBBG4wbDAtBggrBgEFBQcwAYYhaHR0cDovL29jc3Au
Z2xvYmFsc2lnbi5jb20vcm9vdHIxMDsGCCsGAQUFBzAChi9odHRwOi8vc2VjdXJl
Lmdsb2JhbHNpZ24uY29tL2NhY2VydC9yb290LXIxLmNydDAzBgNVHR8ELDAqMCig
JqAkhiJodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL3Jvb3QuY3JsMCEGA1UdIAQa
MBgwCAYGZ4EMAQIBMAwGCisGAQQBoDIKAQMwDQYJKoZIhvcNAQELBQADggEBABol
9nNkiECpWQenQ7oVP1FhvRX/LWTdzXpdMmp/SELnEJhoOe+366E0dt8tWGg+ezAc
DPeGYPmp83nAVLeDpji7Nqu8ldB8+G/B6U9GB8i2DDIAqSsFEvcMbWb5gZ2/DmRN
cifGi9FKAuFu2wyft4s4DHwzL2CJ2zjMlUOM3RaE1cxuOs+Om6MCD9G7vnkAtSiC
/OOfHO902f4yI2a48K+gKaAf3lISFXjd32pwQ21LpM3ueIGydaJ+1/z8nv+C7SUT
5bHoz7cYU27LUvh1n2WSNnC6/QwFSoP6gNKa4POO/oO13xjhrLRHJ/04cKMbRALt
JWQkPacJ8SJVhB2R7BI=
—–END CERTIFICATE—–

OK:

—–BEGIN CERTIFICATE—–
Your CRT
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
MIIGVDCCBTygAwIBAgIMCJEO0BA+aoDxjYPKMA0GCSqGSIb3DQEBCwUAMEwxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSIwIAYDVQQDExlB
bHBoYVNTTCBDQSAtIFNIQTI1NiAtIEc0MB4XDTIzMDIxMjEyNTAxN1oXDTI0MDMx
NTEyNTAxNlowHTEbMBkGA1UEAwwSKi5tZWRpY2FsZmllbGRzLmpwMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm48J3rSAZWccx0w+43wR6LaAG6CiECmf
fGBlqNbzojoDlNM+aEIiNvYKspkxQhu1C+pZJ1wfHHqR7Zir+km7I9e+tXuP8pGA
T7gkxFGgPCB3xEQZ51kp105idV7mVdIwS7FGgHeetboCZDty+KqXc3SzUCdXKAyO
YCQQN9i0UI6PZ2zvBm5QMWDTzFQyYPld04ACABPEH7k6uK5arXkt7rZKOjHhDc8Q
bhf6XkGwX5qdG8Db9/MkqsgZ1PdkvOKkFR1vv/5QOslMGopatq1E15hqCGfB+541
Cgcua6oG/AdL9nMPTXkw0+cNKewYKXSATr5E21+ZaIFDpAJpSAecSwIDAQABo4ID
YzCCA18wDgYDVR0PAQH/BAQDAgWgMIGTBggrBgEFBQcBAQSBhjCBgzBGBggrBgEF
BQcwAoY6aHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvYWxwaGFz
c2xjYXNoYTI1Nmc0LmNydDA5BggrBgEFBQcwAYYtaHR0cDovL29jc3AuZ2xvYmFs
c2lnbi5jb20vYWxwaGFzc2xjYXNoYTI1Nmc0MFcGA1UdIARQME4wCAYGZ4EMAQIB
MEIGCisGAQQBoDIKAQMwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xvYmFs
c2lnbi5jb20vcmVwb3NpdG9yeS8wCQYDVR0TBAIwADBBBgNVHR8EOjA4MDagNKAy
hjBodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL2FscGhhc3NsY2FzaGEyNTZnNC5j
cmwwLwYDVR0RBCgwJoISKi5tZWRpY2FsZmllbGRzLmpwghBtZWRpY2FsZmllbGRz
LmpwMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBRP
y6yowu+r3YNva7/OmD1cWCV2FTAdBgNVHQ4EFgQUAXsU+ABU/dt1i/xKq0JNwrQs
ghswggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB2AEiw42vapkc0D+VqAvqdMOsc
UgHLVt0sgdm7v6s52IRzAAABhkWtNUQAAAQDAEcwRQIhAPgamklBv6V/FsBj0x3J
JwP88Kg/d+grzVMlEIgs+o7TAiA+PoRMp+m6L9lWicyBtHHgcUn8mvKcrxVRJF4f
rJt6jwB1AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FIWUZxH7WbAAABhkWtNhsA
AAQDAEYwRAIgbk9SKl405qzjKBxrojOfA5BaaiQTUDMGAXnM5wqAzYcCIBciIXnd
GfCET5allakjTSz8RSdFjQI0W7+/1iRk5LLvAHcA2ra/az+1tiKfm8K7XGvocJFx
bLtRhIU0vaQ9MEjX+6sAAAGGRa0zmAAABAMASDBGAiEA4ekNPp+uSlKHIYxs2XR/
w09GCv04P55jRHQQSORpps4CIQC7qG0qhsPhnLK+t6hJEvXZi7AJ2NYPxtc5nGWZ
JOBKWTANBgkqhkiG9w0BAQsFAAOCAQEAMzxtntb/K0oJWUf6j0NsIMK6oIIKsUou
HRTesA0jjFYGWDAXXom6pNBkQK5I/EkU/TNdhvLRSwJD4u1BAuqpp/p2uvQQdzOI
Cvf1sA9yNRomHvay0hkLw3XU6Va4mPHWfvKkFXtrl+0I1MDZBBYbYD03IpBV8XrY
2YiSOMIbKZXLIZUHz0Pt7jitj4nvrO0ijWogoU1aHjEK0qWKlFgg73nZtB0gTOQk
JyLYlJe+xswXl1LJaPXKH29yo2DaUI1BA7zVD0Hxw8vzer7siImWQ3FgVE5yrYRp
+fN5yMgOAPYqXWvcS6ndLGe9kaGSpLpfo6sNlAnR786ZV84/tAQCeQ==
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
MIIEijCCA3KgAwIBAgIQfU1CqStDHX5kU+fBmo1YdzANBgkqhkiG9w0BAQsFADBX
MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIyMTAx
MjAzNDk0M1oXDTI3MTAxMjAwMDAwMFowTDELMAkGA1UEBhMCQkUxGTAXBgNVBAoT
EEdsb2JhbFNpZ24gbnYtc2ExIjAgBgNVBAMTGUFscGhhU1NMIENBIC0gU0hBMjU2
IC0gRzQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtJCmVZhWIPzOH
A3jP1QwkuDFT8/+DImyZlSt85UpZwq7G0Sqd+n8gLlHIZypQkad5VkT7OLU+MI78
lC7LVwxpU19ExlaWL67ANyWG8XHx3AJFQoZhuDbvUeNzRQyQs6XS5wN6uDlF0Bf1
AtCUQWrGGLGYwyC1xTrzgrFKpESsIXMqklUGTsh8i7DKZhRUVfgrPLJUkbbLUrLY
42+KRCiwfSvBloC5PgDYnj3oMZ1aTe3Wfk3l1I4D3RKaJ4PU1qHXhHJOge2bjGIG
l6MsaBN+BB2sr6EnxX0xnMIbew2oIfOFoLqs47vh/GH4JN0qql2WBHfDPVDm3b+G
QxY6N/LXAgMBAAGjggFbMIIBVzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYI
KwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE
FE/LrKjC76vdg29rv86YPVxYJXYVMB8GA1UdIwQYMBaAFGB7ZhpFDZfKiVAvfQTN
NKj//P1LMHoGCCsGAQUFBwEBBG4wbDAtBggrBgEFBQcwAYYhaHR0cDovL29jc3Au
Z2xvYmFsc2lnbi5jb20vcm9vdHIxMDsGCCsGAQUFBzAChi9odHRwOi8vc2VjdXJl
Lmdsb2JhbHNpZ24uY29tL2NhY2VydC9yb290LXIxLmNydDAzBgNVHR8ELDAqMCig
JqAkhiJodHRwOi8vY3JsLmdsb2JhbHNpZ24uY29tL3Jvb3QuY3JsMCEGA1UdIAQa
MBgwCAYGZ4EMAQIBMAwGCisGAQQBoDIKAQMwDQYJKoZIhvcNAQELBQADggEBABol
9nNkiECpWQenQ7oVP1FhvRX/LWTdzXpdMmp/SELnEJhoOe+366E0dt8tWGg+ezAc
DPeGYPmp83nAVLeDpji7Nqu8ldB8+G/B6U9GB8i2DDIAqSsFEvcMbWb5gZ2/DmRN
cifGi9FKAuFu2wyft4s4DHwzL2CJ2zjMlUOM3RaE1cxuOs+Om6MCD9G7vnkAtSiC
/OOfHO902f4yI2a48K+gKaAf3lISFXjd32pwQ21LpM3ueIGydaJ+1/z8nv+C7SUT
5bHoz7cYU27LUvh1n2WSNnC6/QwFSoP6gNKa4POO/oO13xjhrLRHJ/04cKMbRALt
JWQkPacJ8SJVhB2R7BI=
—–END CERTIFICATE—–

としましょう

ApacheのPHP7にバージョンアップしたら実行時に500 Internal Server Errorが出て、php-fpmのエラーログに何も情報が表示されていない場合

.htaccessが悪い可能性が高いです。

私の場合は

.htaccessに

php_value post_max_size 100M
php_value upload_max_filesize 100M
php_flag display_errors On

が記載されていたことが原因でした。

php_valueとphp_flagを削除すると、ちゃんと動きました

どうもphp_valueやphp_flagはPHPのモジュール版でのみ有効で、php7ではセキュリティの観点からデフォルトで無効になっているようです。

素直にphp.iniで設定しましょう

 

SSL証明書のファイル形式と作成方法まとめ

SSL証明書には主にKEYファイルCSRファイルCRTファイルCERファイルがある

※CRTとCERはほぼ同じだけど便宜上今回はわけます

KEYファイル:秘密鍵ファイル(漏れちゃだめ!)

CSRファイル:秘密鍵を元に作った公開鍵ファイルにコモンネームなどの情報を付加したもの

CRTファイル:↑のCSRファイルが正しいかをSSL証明書会社が証明しているもの。サーバー証明書とも

CERファイルCSRファイルCRTファイルの仲介役的なもの。中間証明書。なくても動いたりするブラウザもあるけど基本的にSSL化するサーバーに必要

 

秘密鍵[KEYファイル]の作り方(centos)

サーバーの秘密鍵作成(パスフレーズなし)
openssl genrsa -out server.key 2048

 

公開鍵[CSRファイル]の作り方(centos)

openssl req -new -key server.key -out server.csr

apacheへの設置の記事はこちら

 

サーバー証明書[CRTファイル]の作り方

SSL証明書業者に頼む必要がある

自分はssl2buy.comってところで頼んでる。安いから

SSL証明書業者に渡す必要があるのはCSRファイルだけ

CSRファイル-[SSL会社の秘密鍵で暗号]→CRTファイルが作られる

 

中間証明書[CERファイル]の作り方

これはネットでダウンロードする

自分の購入したSSL業者のページにあると思う

ちなみにアルファSSLはこれ

 

以上です!

注意点として

インターネットに流出× → [KEYファイル]

逆に[KEYファイル]以外はインターネットで公開してる

 

また、豆知識として

1年とかでCRTファイルCERファイルも)は更新する必要があるけど、同じCSRファイルCRTファイルを作成した場合、期限内のCRTファイルが2つ出来ることになり、期限内であればどちらの証明書でも使うことができます!

※サーバーに設置しているKEYファイルが同じ場合のみ

PageSpeed Insightsのgzip圧縮を有効にしてるはずなのに有効と表示されない

GoogleのWEBページの測定でおなじみのPageSpeed InsightsだけどApacheとかでgzip圧縮が有効でない場合

「圧縮を有効にする」

Enabling gzip compression can reduce the size of the transferred response by up to 90%

とか出てくる

それで、サーバー側で圧縮を有効にして、再び測定しても何故か圧縮が有効でないと怒られる

その場合は以下のようなページでGZIPが有効かどうかを確認して下さい

http://www.gidnetwork.com/tools/gzip-test.php

https://www.giftofspeed.com/gzip-test/

もし有効なら大丈夫です!多分キャッシュかなんかの関係で更新されてないだけです。

すぐには反映されなかったけど、1日ぐらいして測定したら、自分の場合ちゃんと有効って表示されました!

 

Apacheでセキュリティのため限られたIPのみのアクセスにしたい場合、PHPを使って.htaccessにアクセス元のグローバルIPを追加する方法

apacheなどのWEBサーバーを運用さしているときにプライベートのサーバーだと外部からのアクセスがあるとあまり宜しくない時がある。

その時は

order deny,allow
deny from all

で全部を拒否さして

allow from xxx.xxx.xxx.xxx

などで個別にアクセス出来るようにすると非常に安全になる。

でもIPが定まらないときすごくめんどくさい。

どうしようかなと思ったら.htaccessにPHPから追加出来ることがわかった。

これだと特定のディレクトリのURLにアクセスすることで、Apache全体にアクセス許可を与える事になってセキュリティがアップする。

簡単に言うと

http://yoursite.com/

にアクセス

403エラーForbidden あなたがアクセスしたページはインターネット上に存在はするが閲覧することが許可されていません。

http://yoursite.com/allowaccess.php

にアクセス

200 アクセス許可を与えました!

http://yoursite.com/

にアクセス

200 成功 ようこそ!

となる

これを応用してWordpressのログイン画面のwp-login.phpだけのアクセスを制限さしたり出来る。

特定のファイルだけアクセス制限したい場合は

すでにある.htaccessに

<Files wp-login.php>
Order deny,allow
Deny from all
</Files>

を最後に追加しましょう。

ディレクトリ全部の場合は

order deny,allow
deny from all

だけでいいです。でもその場合違うサブディレクトリを新しく作ってそこの.htaccessで

allow from all

をしてあげてね

アクセス権限を与えるやり方

ホームディレクトリの

.htaccess

# BEGIN WordPress
&amp;amp;lt;IfModule mod_rewrite.c&amp;amp;gt;
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
&amp;amp;lt;/IfModule&amp;amp;gt;

# END WordPress
&amp;amp;lt;Files wp-login.php&amp;amp;gt;
Order deny,allow
Deny from all
allow from 101.140.66.155
&amp;amp;lt;/Files&amp;amp;gt;

と同じディレクトリに新規でファイルを作成

allowaccess.php

 

&amp;amp;lt;?php
$file = dirname(__FILE__) . "/.htaccess"; // 一つ上のディレクトリなら /../.htaccess です。
$remainLastLetter = 8; // 最後に&amp;amp;lt;/Files&amp;amp;gt;などある場合は8を入力して文字を保護をしてください。

if (! file_exists($file)) {
    exit(".htaccessファイルが存在しないかアクセスできません。");
}
$ip = $_SERVER["REMOTE_ADDR"];

$addAllowIP = "allow from " . $ip;
$originalHtaccess = file_get_contents($file);
if (strpos($originalHtaccess, $addAllowIP) !== false) {
    exit("すでにIPが登録されています。");
}

$lastLetters = "";
if ($remainLastLetter &amp;amp;gt; 0)
    $lastLetters = substr($originalHtaccess, - $remainLastLetter);
$startLetters = substr($originalHtaccess, 0, strlen($originalHtaccess) - $remainLastLetter);
$newHtaccess = $startLetters . $addAllowIP . "\n" . $lastLetters;
if (file_put_contents($file, $newHtaccess)) {
    echo $ip . "のアクセス許可を与えました";
} else {
    exit(".htaccessファイルの書き込みに失敗しました。アクセス権を確認してください。");
}

 

上をコピーして貼り付けてください。

自作なので汚くてすいません。

$remainLastLetterと$file は適宜変更してください。

これでhttp://yoursite.com/allowaccess.phpにアクセスするだけでアクセス権を得られてセキュリティがアップします!

※↑のPHPファイルと.htaccessファイルがおかしいのでサーバーにアップロードしました。

こちらからダウンロード

 

 

 

 

tomcatでwebsocketしたい

なんか結構悩んで時間かかったからメモ

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を有効

とりあえず開発がんばろ

Daisy Chained Replication on MariaDB(MySQL)

A(master) —インターネット→ B(slave) —-イントラネット→ C(slave)

ってデータを更新したい。ややこしいと言うか出来るのかって話だけど出来るらしい

Master with Relay Slaveと言うらしい

んでせっかくならGTIDっていうのを使ってやろうって話

mysql_secure_installation

とりあえずやってみよう

CentOS7にSSL証明書を入れてHTTPSでアクセスできるようにする

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にapache(WordPressのみ)を構築

とりあえず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

で再起動したら動いてるはず

ここでMySQL(Maria)のサーバーのインストール!

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);を追加すると良い

工事完了です!