テクニカルインフォアーカイブ

CentOS7.5のパッケージで入れたphp5.4+MariaDBでphpMyAdminをyumでインストールしたかったけど、phpのバージョンとかリポジトリーとかの絡みがあって入れられそうもなかったので、手動でインストールしてみた。
そのメモ。
良い子は真似しないでね。

phpmyadmin_logo.png

1.phpMyAdminのダウンロード。php5.4で使えるphpmyadminのバージョンは4.0。
wget https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip

2.解凍
unzip phpMyAdmin-4.0.10.20-all-languages.zip

3.解凍したフォルダを、phpmyadminという名前に変更して/var/wwwの下へ移動。
mv phpMyAdmin-4.0.10.20-all-languages phpmyadmin
mv phpmyadmin/ /var/www/.

4./var/wwwの下のconfig.sample.inc.phpをconfig.inc.phpとしてコピー。
cp config.sample.inc.php config.inc.php

5.config.inc.phpを編集。
diff config.inc.php config.sample.inc.php
17c17
< $cfg['blowfish_secret'] = 'xxxxxxxxxxx'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
---
> $cfg['blowfish_secret'] = 'a8b7c6d'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
48,60c48,60
< $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
< $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
< $cfg['Servers'][$i]['relation'] = 'pma__relation';
< $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
< $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
< $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
< $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
< $cfg['Servers'][$i]['history'] = 'pma__history';
< $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
< $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
< $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
< $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
< $cfg['Servers'][$i]['recent'] = 'pma__recent';
---
> // $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
> // $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
> // $cfg['Servers'][$i]['relation'] = 'pma__relation';
> // $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
> // $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
> // $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
> // $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
> // $cfg['Servers'][$i]['history'] = 'pma__history';
> // $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
> // $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
> // $cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
> // $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
> // $cfg['Servers'][$i]['recent'] = 'pma__recent';

6.apacheにエイリアスの設定。
/etc/httpd/conf.dの下に、以下の内容でphpmyadmin.confを作成。

Alias /phpmyadmin /var/www/phpmyadmin
<Directory /var/www/phpmyadmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
<RequireAny>
Require ip 127.0.0.1
Require ip xxx.xxx.xxx.xxx
</RequireAny>
</IfModule>
</Directory>

7.コンフィグをテスト。
apachectl configtest

8.apacheを再起動。
systemctl restart httpd

9.許可したIPから/phpmyadminへブラウザでアクセス。
mysqliがない!というエラーが表示されたので、yum install php-mysqliを実行。

10.phpmyadminを使って、create_tables.sql をインポート。(phpmyadminのソースのexamplesフォルダの下にある)
この操作を行わないと、phpmyadminでデーブルを展開時に、
#1146 - Table 'phpmyadmin.pma__table_uiprefs' doesn't exist
というエラーが発生する。

完了!

ぐっどらっこ。

OneDriveのサインインで0x8004def7エラー

OneDriveアプリでサインインしようとしたら、0x8004def7というエラーでサインインできませんでした。

onedrive_freeze1.jpg

原因は、サインインに使ったマイクロソフトアカウントでの、OneDriveが「凍結」されていたためでした。しばらく使っていなかった...。

https://onedrive.live.com/

へアクセスし凍結を解除したらアプリでサインインできました。

onedrive_freeze2.png

ぐっどらっこ。

Windows10でのお話です。
買ったばかりのパソコンで、HDDの容量は500GBもあるのに、1ヶ月もしないうちに「空き容量が不足しています」「まもなくいっぱいになります」といった感じのメッセージが表示されるというので、ちょっと調べてみました。

原因はOneDriveでした。

問題のパソコンは、Windows 10の初期セットアップの際に、マイクソフトアカウントでログインするように設定し(本人はその認識なし)、さらに、OneDriveを利用するように設定(本人はその認識なし)をしたので、デスクトップ、ドキュメント、ピクチャーがOneDriveの領域を利用するように設定されていたために、OneDriveの領域が不足(デフォルトで5GB、この時、残り400MB)しているというメッセージが表示されている状態でした。
デスクトップの多くのファイルには、下のような緑色の小さなチェックマークが付いていました。

onedrive_folder01.png

空き容量を確保するためにOneDriveの画面で「追加のストレージを取得」を選ぶと、有料で増量できますが、そんなことは望んでいません。普通に、HDDに保存できればよいのです。

これを解決するには、OneDriveで「このPCのリンク解除」を実行すればよいのですが、

onedrive_folder02.png

この時、「自動保存」タブ→「重要なフォルダーを保護する」の「フォルダーの更新」で「保護の停止」をしておかないと、ドキュメントやデスクトップの保存場所が、OneDriveフォルダーの下のそれらのフォルダーを使い続けてしまいますので注意が必要です。

onedrive_folder03.png

もし、保護の停止操作をせずに、OneDriveのリンクを解除した場合は、再度、サインインして、OneDriveを使用する状態にしてから保護の停止を行い、その後、リンク解除する流れの操作をすることをおすすめします。

onedrive_folder07.png

サインインせずに、通常のユーザーフォルダー下を保存場所に変更したい場合は、
・「デスクトップ」はプロパティ画面で「場所」を変更する。

onedrive_folder04.png


・「ドキュメント」と「ピクチャー」はレジストリを変更し、パソコンを再起動する。
  コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders の
   {F42EE2D3-909F-4907-8871-4C22FC0BF756} ←ドキュメント 値の例 C:\Users\taro\Documents
   {0DDD015D-B06C-45D5-8C4C-F59713854639} ←ピクチャー 値の例 C:\Users\taro\Pictures

onedrive_folder05.png
をすることで、対応できます。

「ドキュメント」や「ピクチャー」を、デスクトップと同じように「場所」の変更で移動しようとすると、「同じ場所にリダイレクトできないフォルダーがあるため、フォルダーを移動できません。」というエラーが発生し、移動が失敗します。

onedrive_folder06.jpg

なお、「保護の停止」や場所の変更&レジストリ修正の作業後に、移動後のユーザーフォルダー下のデスクトップやドキュメントなどに、作業前にあったはずのファイルが見つからない場合は、OneDriveフォルダの下のデスクトップやドキュメントなどのフォルダーの下にあるはずですので、そちらから移動します。

ぐっどらっこ。

apache-httpd.png

apache 2.4 で、SSIを動作させる方法は

apache 2.4の.htaccessで.htmlと.htmをSSIのinclude virtualで動作させる方法

で書きましたが、
この設定を行った .htaccess に、「PHPを.htmlでも動作させるための設定」の記述

AddHandler php-script .php .html

を追加すると、.html内に書いた

<!--#include virtual="/include/template.html" -->

というSSI用のコードが効かなくなります。
そこで、上記を次のように書き換えます。

<?php echo file_get_contents("include/template.html"); ?>

なお、テンプレートファイル名は相対パスで書きましょう。

ぐっどらっこ。

Windows10 1809のパソコンから、バッファローのBHR-4RVルーターに設定したPPTPサーバーへ接続しようとしたら接続できず、少しハマったのでメモ。

最初に、パソコンにVPNの接続設定を行ったところ、接続設定は作成されるものの、接続設定アイコンに「利用不可能 - デバイスが見つかりません」と表示され、設定変更しようとすると「予期しないエラーが発生しました」となります。

w10_vpn7.jpg

デバイスマネージャーで確認すると、通常あるはずのWAN Miniport(PPTP)がありません。

w10_vpn1.jpg

原因は、Remote Access Connection Managerというサービスが依存関係の問題で起動していなかったことでした。

w10_vpn2.jpg

その依存関係のサービスは「DNS Client(Dnscache)」なのですが、Dnscacheのプロパティ画面の表示項目がグレーアウトしていて何も操作ができません。この時「スタートアップの種類」は「無効」でした。

w10_vpn3.jpg

Dnscacheが開始されていないと、たとえば、ipconfig /flushdns というコマンドが
Could not flush the DNS Resolver Cache: 関数は実行中に失敗しました。
というエラーとなり実行できないなどの不都合が発生します。
今まで、よくこんな状態でパソコンを使っていたなと思ったり思わなかったり。

話戻して、
Dnscacheが開始できないのはDnscacheのレジストリの権限設定あたりが原因(NetworkServiceへフルコントロールを付与したけど効果なし)と思われますが、とりあえず、regeditで「スタートアップの種類」を無効(4)→自動(2)に変更してパソコンを再起動したところ、Dnscacheサービスは「開始」となりました。

「\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Start」
を4→2に変更。

w10_vpn4.jpg

次に、
Remote Access Auto Connection Manager
Remote Access Connection Manager
Telephony
の3つのサービスを開始させて、ついでにこれらの「スタートアップの種類」を「自動」に変更しました。

さて、これでVPNの接続設定は作成できたのですが、ルーターへ接続すると、今度は、
「PPP リンク制御プロトコルを終了しました」
エラーで接続できません。
PPTPのセキュリティ設定がまずいようなので、コントロールパネル→「ネットワークと共有センター」→「アダプターの設定の変更」から、作成済みのVPN接続アイコンを右クリックして、プロパティから「セキュリティ」タブの「データの暗号化」を「暗号化が必要(サーバーが拒否する場合は切断します)」に変更します。
PPTPサーバーは「MS-CHAPv2」なので「Microsoft CHAP Version 2」なので、その項目のチェックボックスをオンにしました。

w10_vpn5.jpg

以上の設定でVPN接続ができるようになりました。

ぐっどらっこ。

2019年2月追記
 GMAILからdocomo宛に送信した添付ファイル付きメールを、iPhoneやiPadの標準メールアプリでも見られるようになりました!

以下、歴史として....

画像のサイズは小さいし、auやSoftbankのメルアドではちゃんと画像が表示されるのに、なぜかiPhoneの純正メールアプリに設定したIMAPのdocomoアドレスで受信した時だけ、画像を表示できません。
メールの一覧にはクリップマークが付いている(ということは、サイズオーバーや迷惑メール判定で受信拒否されているわけではない)のに、詳細画面へ進むと、「タップしてダウンロード」の表示すらありません。

docomo_logo.png

どうやらこの現象はdocomoメールの仕様のようです。

https://faq.nttdocomo.co.jp/faq/p/detail.do?seq=577994&scn=CS14U030 ← 現在、Page not found.


Q: Gmailなどの他社メールサービスから送信された添付ファイル付メールを、ドコモメールで受信しました。iPhone・iPadの標準メールソフト、またはドコモメール(ブラウザ版)で添付ファイルを閲覧できないのはどうしてですか?

A: ドコモメールサービス以外から送信されたメールの添付ファイルは、閲覧できない場合があります。

なお、以下の方法で閲覧できる場合があります。
・送信、受信側ともにドコモメールアプリで送信・閲覧
・送信、受信側ともにGmailなどの他社メールサービスで送信・閲覧

※本事象についてはサービス改善を行っており、対応できるメールサービスを拡充予定です。

「サービス拡充」ではなく、「不具合の修正」の間違いなのでは、ドコモさん?

ちなみに、パソコンのブラウザのGMAILでは、「添付」操作の他に、メール本文中への画像のドラッグ&ドロップで画像の挿入ができますが、この方法で送信すると、iPhoneのメールアプリでも表示できます。
AndroidのGMAILアプリではこの方法が使えないので、痛い。

ぐっどらっこ。

「システム警告」表示!消えない!

2019/01/07追記
 最近、本当に多いです。
 絶対に「更新」は押さないでください。

本文はここから...

最近、パソコンで、ホームページを見ているだけ(しかも、怪しくないページ)なのに、突然、警告音とともに、以下のような画面が表示されることがあります。

ie_warning1.png

広告配信業者が配信する広告に埋め込まれた仕掛けで発生するので「詐欺広告」と呼ばれることもあります。

「Windowsセキュリティシステムが破損しています」
「ファイルは〇〇秒で削除されます」
というメッセージで不安をあおり、悪意のあるサイトへ誘導し、悪意のあるソフトウェアをインストールさせたりします。

上記の表示の段階では、パソコンの破壊やウイルス感染は発生していません。
以下は、ブラウザにInternet Explorerを使っている場合の対処方法です。

1.ブラウザの右肩の×マークでブラウザを閉じることができる場合、それで対処は終わりです。

2.ブラウザを閉じることができない場合、以下の手順でブラウザを強制終了させます。
(1)タスクバー(Taskbar)を右クリック(Right Click)して、「タスクマネージャー」(Taskmanager)を選択します。
ie_warning5.png

ie_warning6.png

(2)一覧から、Internet Explorer (Chromeの場合は「Google Chrome」)をクリックして、「タスクの終了」をクリックし、タスクマネージャーを×で閉じます。
ie_warning2.png

(3)Internet Explorerを起動すると、画面下部に「セッションの復元」ボタンが表示されることがありますが、それは押さずに、その隣の×をクリックします。
ie_warning3.png

こういう広告は、配信元でブロックして欲しいものです。

ぐっどらっこ。

WordやExcelで、保存したつもりが保存されていなっかったり、「ブロックされたアップロード」というわけのわからないエラーが表示されて困っている方、最近多いです。

office_save3.png

最近のWordやExcel(2016や365)では、既定で、インターネット上のOneDriveやサイトと呼ばれる領域に保存するように設定されています。
そのため、Microsoftアカウントで正常にサインインが行われていないWordやExcelでは、保存の際にエラーが発生し保存ができません。
これが「ブロックされたアップロード」です。
Microsoftさんは、ほんと、余計なことをしてくれます。

複数の場所からファイルを共有する際は、OneDriveやサイト上にデータを保存しておくと別の場所から参照や更新ができてとても便利ですが、共有必要がなかったり、データを社外に置いてはいけないルールの企業などでは、全く必要のない機能です。

office_save1.png

まず、パソコン上にデータを保存する方法ですが、上図の
 「このPC」や「参照」をクリックして、保存場所を指定してから保存
すればよいのですが、毎回、そんな指定をするのも面倒です。
そこで、既定の設定をパソコン上のあなたの「ドキュメント」フォルダに変更できるので、その設定方法を説明します。

1.ファイルメニューが表示されていない場合は、メニューバーの「ファイル」をクリックします。
2.左サイドの最下部の「オプション」をクリックします。
3.左サイドの「保存」をクリックし、
 「サインインが必要な場合でも、その他の場所を表示する」のチェックをオフ
 「既定でコンピューターに保存する」のチェックをオン
  にしてから「OK」をクリックします。

office_save2.png

以上で設定は完了です。
これで、既定で、あなたの「ドキュメント」フォルダに保存されるようになります。
既定で「デスクトップ」に保存したい場合は、「既定のローカルファイルの保存場所」で「デスクトップを指定します。

ぐっどらっこ。

以前作っておいた、Google Home miniへ「メモ ●●●●●●」と話しかけると、Google SpreadSheetへ「●●●●●●」という部分がタイムスタンプと一緒に書き込まれるIFTTTのアプレットを久しぶりに使ったら、

Applet failed.
There was a problem with the Google Sheets service.

というエラーにより、SpreadSheetへの書き込みに失敗していました。

Google SpreadSheetへのアクセス権がなくなっていたようで、以下の手順で再設定できます。
androidのIFTTTアプリからもできると思いますが、
以下はPCのブラウザからの手順です。

1.IFTTTへログイン。
https://ifttt.com/

2.ヘッダ部のメニューの My Applets → Servicesタブ → Google Sheets をクリック。

ifttt_spreadsheet1.png

3.Google Sheetsの Settinngs をクリック。

ifttt_spreadsheet2.png

4.Edit Connection をクリック。

ifttt_spreadsheet3.png

5.Googleのスコープ設定画面で「許可」をクリック。

ifttt_spreadsheet4.png

以上で完了です。
「ねぇグーグル メモ 今日のお昼は天丼」
おー、SpreadSheetに書き込まれました。

ぐっどらっこ。

とある場所で、androidスマホの最新のDropboxアプリで、Droboxへの写真のアップロードができませんでした。
プログレスバーが薄い表示のまま、「アップロード中」の状態がずっと続き、やがて「アップロードを待機中」となり、いつまでたってもアップロードが終わりません。
同じネットワークで、iPhoneのDropboxアプリではアップロードできました。

dropbox_cannot_upload1.png

外に出る際のポートを規制しているネットワーク環境で、このような現象が起きることがあるようです。

例えば、
・WANに出るところにあるファイアウォールやUTM
・パソコンにインストールされているウイルス対策ソフト
などがその原因となります。

今回のケースでは、DropboxのサーバーのTCP 443ポートに対し、スマホ側のTCPのソースポートに61201番を使って送信しようとしたパケットがブロックされていました。

切り分けの方法
・アカウントの状態に問題はなはいか?(利用可か?)→利用可。
・容量制限の上限に達していないか?→空きはたっぷり。
・ファイルの一覧表示やフォルダの作成はできるか?→できる。
・Wi-FiをOFFにしてLTEではアップロードできるか?→できる。

こうなった場合、自分で解決できる場合と、例えばカイシャのネットワーク環境のように自分では解決できない場合があります。
スマートに原因を切り分けて、だめなときは潔く諦めることが肝心です。

ぐっどらっこ。