2021年1月
Google検索のサマリーが文字化けしてしまう
2021年1月18日(月) 8:51 AM
Google検索で「enginner note」と検索すると、このサイトが出てくるのですが、なぜかサマリーの文章が文字化けしていました。サーバーまたはデータベースの文字コードの問題かと設定しなおしましたが、解消しません。よく調べた所、原因は「All In One SEO」のメタ説明が文字化けでした。バージョンアップした際か何かで文字化けしてしまったようです。修正した後、Google検索の表示に反映されるのは10日ほどかかりました。すぐには反映されないようです。
Engineer Note アプリ開発・LinuxサームçÂÂ'°å¢ƒæ§‹ç¯‰ã ...
検索結果では、このように文字化けしていたのですが、大抵の場合、文字コードがShift-Jisで設定されていて、ブラウザがUTF8で読み込もうとして文字がおかしくなっていることが多いのですが、今回は違いました。ちなみにサーバとDBの設定変更は以下のようにしました。
1.サーバー(PHP)の文字コード修正
php.iniの設定を修正します。viを起動して、設定ファイルを編集します。
vi /etc/php.ini
以下の設定を書き換えます。
・「;mbstring.language……」の「;」を削除します。
mbstring.language = Japanese
・文字コードの設定をUTF8に設定します。
mbstring.internal_encoding = UTF-8
・通信インプット・アウトプットの設定を「pass」に指定します。(これは必要ないかもだが一応設定)
mbstring.http_input = pass
mbstring.http_output = pass
・文字エンコーディング変換を「Off」に設定します。行頭の「;」を削除する。
mbstring.encoding_translation = Off
・文字コードの優先順位を明示します。行頭の「;」を削除し、文字コードを追記します。
mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII
・変換失敗や無効文字の代わりに表示する文字を「none」に指定します。行頭の「;」を削除し、「none」を追記します。
mbstring.substitute_character = none;
「:wq」とviに入力し、設定を保存し、終了します。これで設定は完了で、設定を反映するために、Apacheを再起動します。
systemctl restart httpd
2.DB(MySQL)の文字コード修正
PhpMyAdminにログインし、「ホーム画面 > 一般設定 > サーバ接続の照合順序」から文字コードを変更します。(※PhpMyAdminの設定は前回の記事を見てください)
文字コードはWordPressを使用しているサイトは以下のように設定します。utf8mb4にすることで絵文字が使えるようになります。
MySQL 5.6 以上 | utf8mb4_unicode_520_ci |
MySQL 5.5.3以上 | utf8mb4_unicode_ci |
それ以外 | utf8_general_ci |
補足1:バージョンはPhpMyAdminのホーム画面(データベースサーバ)で確認できます。
- サーバ: Localhost via UNIX socket
- サーバの種類: MySQL
- サーバのバージョン: 5.6.47 – MySQL Community Server (GPL)
- プロトコル バージョン: 10
- ユーザ: root@localhost
- サーバの文字セット: UTF-8 Unicode (utf8)
補足2:ホーム画面の「サーバ接続の照合順序」から文字コードを変更できない場合はデータベースそれぞれで文字コードが違う可能性があるので、データベースごとの文字コードを修正すると、変更できます。
PhpMyAdminをインストールする
2021年1月17日(日) 10:19 PM
DBをブラウザ上から操作できるように、PhpMyAdminをインストールします。インストール後、第3者に操作されないようにURLの変更やSSL通信の設定を行います。
1.EPEL(Extra Packages for Enterprise Linux)がインストールされているか確認する
rpm -qa | grep epel
EPELはサードパーティ製のリポジトリです。PhpMyAdminをインストールするために必要です。上のコマンドを実行して、「epel-release-7-13.noarch」などと表示されれば、インストールされています。インストールされていない場合は、以下のコマンドを実行します。
yum -y install epel-release
2.PhpMyAdminをインストールする
yumコマンドを実行すれば、最新のバージョンがインストールされます。
yum --enablerepo=epel install -y phpMyAdmin
3.設定ファイルを変更する。
phpMyAdmin.confを編集して、セキュリティの設定などを行います。まずはrootアカウントで viを起動します。
su - vi /etc/httpd/conf.d/phpMyAdmin.conf
・外部からアクセスするようにする。
「Require all granted」を追加します。
<IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 Require all granted </RequireAny>
・第3者に推測されないURLに変更(デフォルトはhttp://ドメイン名/phpmyadmin)
デフォルトの設定のままだと、簡単にログイン画面に接続できるため、URLの変更を行います。すでにある2行を「#」でコメントアウトし、変更したいURL(/phpmyadminHogeHoge)を追記します。
#Alias /phpMyAdmin /usr/share/phpMyAdmin #Alias /phpmyadmin /usr/share/phpMyAdmin Alias /phpmyadminHogeHoge /usr/share/phpMyAdmin
・SSL通信のみ許可する。
SSLを許可する設定を「SSLRequireSSL」を追記します。
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 SSLRequireSSL <IfModule mod_authz_core.c>
4.サーバーを再起動する。
systemctl restart httpd
5.PhpMyAdminにログインする
「https://ドメイン名/phpmyadminHogeHoge」に接続すると、ログイン画面が表示されるので、IDとパスワードを入力すれば、DBを操作できるようになります。
※「some errors have been detected on the server」警告の対処法
ページ遷移する際に、毎回警告ダイアログが出る場合は「設定 > 機能 > 一般 > Never Send error reports 」に設定を変更すれば、ダイアログが出なくなります。Php7で推奨されていない処理や文法で警告が出ているようですが、無視しても動作に問題はありません。