技術

mysqlテーブルの修復

selectしたときとか、dumpの時に
#145 – Table ‘./??????@>>>>>>/wp_infectscannerdata’ is marked as crashed and should be repaired
みたいなエラーが出る。

#mysql -u root -p
mysql>use ?????
mysql> check table wp_infectscannerdata;
でエラーが表示されるか確認

mysql>repair table wp_infectscannerdata; で修復する。

修復出来たらも一度チェック
mysql> check table wp_infectscannerdata;

OKなら以下のように表示される。
+———————————–+——-+———-+———-+
| Table | Op | Msg_type | Msg_text |
+———————————–+——-+———-+———-+
| ????????.wp_infectscannerdata | check | status | OK |
+———————————–+——-+———-+———-+
1 row in set (0.02 sec)

pearを手動インストール

portsとかでなくなってたら
# wget http://pear.php.net/go-pear.phar
# php go-pear.phar

https://pear.plus-server.net/installation.getting.html

PHP7で文字化け

https://www.php-factory.net/blog/?id=10746568e0ffbb13b0

> PHP5.6以上(PHP7含む)の場合、拡張子が.phpの場合で、文字コードがShift_JIS、またはEUC-JPの場合、PHPが絡んでいようがいまいが文字化けしてしまうようです。(要するにそのファイルにHTMLだけが記述されていたとしても)
>
> もちろんmetaタグのContent-Typeで「charset=shift_jis」などを指定していたとしてもだから余計に厄介。
>
> おそらくデフォルトcharsetがUTF-8に変わったせいだろうか。それにしてもこれはちょっとひどいな。。
> metaタグやファイルの文字コードが間違いなくても文字化けするのでハマる可能性が高いと思う。
> (あえてheaderで書いていないケースも多いと思うので ※特にPHPを書いていない場合はそもそも不要だったし)
>
> 解決法としては、単純にheader関数で明示的に文字コードを指定すれば解決できた。
>
> 以下1行をソース上の一番上の行(DOCタイプ宣言の更に上)に記述すればOK。
> ※EUC-JPの場合は適宜変更下さい。
>
> <?php header(“Content-Type: text/html;charset=Shift_JIS”);?>

ACMEv1 is deprecated and you can no longer get certificates from this endpoint.

2021年6月からACMEv1 を使った証明書更新は利用できなくなった。

FreeBSDのバージョンが古い場合Pythonを3.7にアップデートする。

pkg install python37
pkg install py37-certbot
pkg delete python27

でとりあえずOKっぽい。
37じゃない場合もある。
pkg search certbotでさがす。
36のとき、38のときもある。

pkgrepository meta /var/db/pkg/​FreeBSD.meta has wrong version 2
と言われたら、
pkg bootstrap -f
でおけ

※Perlのバージョンとか5.32ぐらいに上がるのでPerl使ってたら要注意。
※Perlのバージョンが上がらないみたいですので、念のためバックアップとってやってみるが良い。

FreeBSD11.1で、Python3.8だと

Shared object “libdl.so.1” not found,required by Python3.8とでた。

とでた。11.2だと出ないみたいですが確認してません。

#cd /usr/jails/sharedfs/usr/lib
#ln -s ../../lib/libc.so.7 libdl.so.1

で回避できた。

 

Windows 10 のクローンが 0xc000000e で起動しない場合

bcdeditとかでもうまく修復できない場合の参考リンク

https://freesoft.tvbok.com/tips/efi_installation/uefi_bootrec.html

  1. セキュアブート無効にする
  2. インストールメディア / 修復ディスク / 回復ドライブ のいずれかでPCを起動する。※インストールメディア推奨。この時、必ず UEFI ブートになっている事を確認する。
  3. コマンドプロンプト起動
  4. diskpartで隠しドライブ(ブート領域)を探し、ドライブレターを付ける
    ※この項目は BCDファイルを削除またはリネームする際に必要
    > diskpart
    diskpart> list volume
    ※FAT32のパーティション(通常は100MB)が目的のボリューム
    ※「info: システム」となっているはず。
    ※FAT32パーティションがない場合 → MBRの手順で復旧する

    diskpart> select volume X (ドライブ番号)
    diskpart> assign letter=b: (ドライブレター例)
    diskpart> exit
    > b:
  5. ここからが実際の復旧コマンド
    b:> cd /d b:\EFI\Microsoft\Boot ※症状が重症な場合に必要
    b:> ren BCD BCD.bak ※症状が重症な場合に必要。「del bcd」でもOK
    b:> bootrec /Rebuildbcd
    b:> bootrec /fixboot
    b:> bcdboot c:\Windows /l ja-JP /s b: /f ALL
    ※bcdboot c:\Windows /l ja-JP だけでもいい
    b:> exit
  6. 上記コマンドが正常終了したら、スタートアップ修復を2~3回行い、Windowsを起動してみる

bootrec /fixbootでアクセスが拒否されたが気にしなくてそのまま進んでうまくいきました。

 

 

 

Windows Update後に「デバイスに問題が発生したため・・・」と表示され起動できない。

Windows Update後に「デバイスに問題が発生したため、再起動する必要があります。
エラー情報を収集しています。自動的に再起動します。」と表示され起動できなくなる。

 

最下行に、
失敗した内容:tmcomm.sys
と表示された場合は、tmcomm.sys が原因です。ウィルsバスターの古いファイルが影響を及ぼしているため、このファイルの読み込みを抑制する必要があります。

手順
1,再起動後に自動修復が行われ失敗します。その画面で「詳細オプション」をクリックします。

2.オプションの選択画面が表示されますので「トラブルシューティング」をクリックします。

3.次にトラブルシューティングの画面が表示されますので「詳細オプション」をクリックします。

4.「詳細オプション」画面が表示されますので、「コマンドプロンプト」をクリックします。

5.コマンドプロンプトの黒いウィンドウが開きます。

6.notepad と入力をしエンターキーを押します。メモ帳が開きますので、「ファイル」-「開く」をクリックして下さい。

7.c:\windows\system32\drivers(あるいはd:\windows\system32\driversの場合もあります。)の下に移動してください。ファイル名の入力欄右横の欄は「すべてのファイル(*.*)」を選んでおいてください。

8.tmcomm.sysを探し、名前をtmcomm.sys.oldなどに変更します。

8.ファイル名変更が完了したら、ファイルを開くウィンドウは「キャンセル」で閉じて、コマンドプロンプト画面では、exit を入力しエンターを押してください。コマンドプロンプト画面が閉じます。
その後、Windows10を再起動し、正常に起動することを確認してください。

以上です。

 

 

 

Gsession4 をFreeBSDにインストール

お客様からのご要望でGSession4をインストールしました。
Tomcat7とか85とか9とか試しましたがどうやっても、http://xx.xx.xx.xx:8080/gsession/
で404エラーで「見つからない」ってなります。
tomcatの設定かなーと1日悩みなしたが解決せず。
試しに昔使ってた4.0xx っていうバージョンが手元に残ってたのでいれてみるとサクッと動きました。
となると、tomcatじゃないよなー。。「4.9.3からAdoptOpenJDK(11)にしないと正常動作しない」か??になって
https://groupsession.jp/wbs/bulletin/bbs080.do?bbs010forumSid=1&threadSid=2640

まだ公式サイトで、gsession4.8.2.warがダウンロードできたので、こちらにすると問題なく動きました。
AdoptOpenJDK(11)って、FreeBSDで動くのか??
とりあえず4.8.2でOKで。。

Gsession2からGsession4 のデータの引っ越しは
https://groupsession.jp/support/setup_06.html
で大丈夫でした。

ECCUBE4で謎のエラー

ECCUBE4で謎のエラーが出て苦労したので記録します。

いつかのタイミングでECCUBE4.03のキャッシュの削除処理をすると画面表示にエラーが出て動作しなくなりました。

■トリガー
コンテンツ管理-キャッシュ管理-キャッシュ削除を実行後
■現象
下記エラーが表示される。
Fatal error: Uncaught Doctrine\DBAL\DBALException: Unknown database type enum requested, Doctrine\DBAL\Platforms\MySQL57Platform may not support it. in /usr/home/*****/store/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php:434 Stack trace: #0 /usr/home/*****/store/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php(115): Doctrine\DBAL\Platforms\AbstractPlatform->getDoctrineTypeMapping(‘enum’) #1 /usr/home/*****/store/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(804): Doctrine\DBAL\Schema\MySqlSchemaManager->_getPortableTableColumnDefinition(Array) #2 /usr/home/*****/store/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(162): Doctrine\DBAL\Schema\AbstractSchemaManager->_getPortableTableColumnList(‘wp_wfconfig’, ‘[***db名***]’, Array) #3 /usr/home/*****/store/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(264): Doctrine\DBAL\Schema\AbstractSchemaManager->listTableColumns(‘wp_wf in /usr/home/*****/store/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php on line 434

var/cache/の下を削除前のバックアップから戻してやると動作は復旧する。
var/cache/prod/twig/の下は手動で削除しても特にエラーにはならなかった。

■原因
同一データベース内のワードプレス関係のテーブルが有ると発生するらしい。
ワードプレス関係のテーブルを削除すると現象は消えた。

■対処
ECCUBEとワードプレスのデータベースを別々にしました。

5日位もだえました。

フリーダムネットワークスのホスティングサービスメールアドレスをGmailで使用する設定

 

フリーダムネットワークスのホスティングサービスメールアドレスをGmailで使用する設定です。

Gmail側がたまに変わるので、この確認は2020年04月17日版でご了承ください。また変わるかも。

1.Gmailの設定画面を開く。

 

 

 

 

 

 

 

 

2.「アカウントとインポート」をクリックし、「他のメールアカウントのメールを確認」の「メールアカウントを追加する」をクリック。

 

 

 

 

 

 

 

3.「メールアカウントの追加」のウィンドウが開くので、設定するメールアドレス」を入力し、次へ。

4.「他のアカウントからメールを読み込む(POP3)」をチェックして「次へ」

 

 

 

 

 

 

 

 

 

5.「ユーザー名」「パスワード」「POPサーバー」を入力し、「アカウントを追加」をクリック。

「ユーザー名」はメールアドレス、「パスワード」はメールパスワード、「POPサーバー」はPOPサーバー名(mail.ドメイン名)です。

 

 

 

 

 

 

 

 

 

6.「アカウントとインポート」の画面に戻りますので、「名前:」の「他のメールアドレスを追加」をクリックします。

 

 

 

 

 

 

 

7.「自分のメールアドレスを追加」のウィンドウが開きますので、設定するメールアドレスを入力して「エイリアスとして扱います」にチェック。「次のステップ」をクリック

 

 

 

 

 

 

 

 

 

8.「SMTPサーバー名」はmail.ドメイン名 「ユーザー名」はメールアドレス、「パスワード」はメールパスワード、ポートは「25」「保護されていない接続」をチェックし、「アカウントを追加」をクリックで完了です。

 

perlで直下にあるモジュールを込みこんでくれず internal server errorになる!

だいぶ悩んだ。
スクリプトと同じところにモジュールあるのに読んでくれなくて。。
下記らしいです。

Perl 5.26ではセキュリティ上の問題で@INCにカレントディレクトリが含まれなくなります

市販のカートプログラムなので、なかなか改造するわけにいかない。。。
とりあえずモジュールはパスの通っているところに放り込む。

とおもたんですが。。5.24 に変更してとりあえず問題先延ばし。

Translate »