アプリ開発・Linuxサーバ環境構築からSEOまで初心者向けのプログラミング技術を紹介しています。

Web開発

WordPressのサイトヘルスステータスエラーを修正する その2

Category:

Web開発

2021年3月15日(月) 10:04 AM

ヘルスステータス画面で「サイトでHTTPSを使用していません」とエラーが出た場合は、通信が暗号化されておらず、SSL化対応を行う必要があります。SSL対応していないと検索順位が下がり、SEO対策が不利になります。

SSL化手順は以下の通りです

1.ApacheのSSLモジュール追加

yumコマンドでインストール後、Apacheを再起動すれば、追加できます。追加されているか確認したい場合は「httpd -M」コマンドで「ssl_module (shared)」が表示されていれば、追加できています。

yum install mod_ssl
systemctl restart httpd
httpd -M

2.ファイアウォール設定

https通信用の443番ポートを開放します。確認は「firewall-cmd –list-all」コマンドを使い、「services:」に httpsが追加されていることを確認します。

sudo firewall-cmd --add-service=https --zone=public --permanent
sudo systemctl restart firewalld
firewall-cmd --list-all

3.Let’s Encryptインストール

無料でSSL証明書が発行できるLet’s Encryptをyumコマンドでインストールし、各種設定を行います。

yum install certbot python2-certbot-apache
certbot --apache -d example.com

example.comは各自のドメイン名になります。3つ質問が出てくるので、回答を入力します。

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): (メールアドレスを入力する)

(A)gree/(C)ancel:A (規約に同意します)

(Y)es/(N)o: Y (メールアドレスを公開する。したくない場合はNに。)

SSL証明書設定時のエラー
以下のエラーが出た場合はhttpd.confを編集し、バーチャルホストの設定を追加する必要があります。
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

バーチャルホスト設定

sudo vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin root@example.com
DocumentRoot /var/www/wordpress
ServerName example.com
</VirtualHost>
sudo systemctl restart httpd

最後にサーバ再起動すると、SSL証明書が反映されます。

4.SSL化確認

SSL証明書発行後、自身のサイトのアドレスバー横の鍵マークをクリックします。Google Chromeの場合、「この接続は保護されています」と表示されれば、SSL化対応されています。また「証明書(有効)」のボタンを押すと、証明書の有効期限など詳細情報を見る事ができます。

5.証明書を更新

証明書は3ヶ月で有効期限が切れるので、定期的に更新する必要があります。有効期限30日前から次の更新ができるようになります。また、登録したメールアドレスにも10日前に通知がきます。更新は簡単で「certbot renew」コマンドで実行できます。更新する前に「–dry-run」で試しておくと良いでしょう。

certbot renew --dry-run
certbot renew

クーロン設定をしておく事で、有効期限を気にせずに更新ができます。午前3時に更新コマンドを呼ぶようにする設定はこちらです。

sudo crontab -e
0 3 *  *  * root /usr/bin/certbot renew
sudo service crond restart

おまけ

クーロン設定の確認とクーロン実行ログの確認のコマンドはこちらのコマンドで確認できます。

sudo crontab -l
sudo vi /var/log/cron

WordPressのサイトヘルスステータスエラーを修正する その1

Category:

Web開発

2021年3月7日(日) 7:13 PM

WordPressでは「ダッシュボード」→「サイトヘルス画面」のリンクからサイトの問題が確認できます。致命的な問題、おすすめの改善が表示されていますが、致命的な問題についてはサイト運営やSEOに影響があるため、必ず直す必要があります。

このサイトでもいくつかエラーが出ていたので、修正方法を紹介したいと思います。

エラー1:1つ以上の必須モジュールが存在しません。

  • オプションのモジュール dom がインストールされていないか、無効化されています。
  • オプションのモジュール imagick がインストールされていないか、無効化されています。
  • オプションのモジュール zip がインストールされていないか、無効化されています。
  • 必須モジュール gd がインストールされていないか、無効化されています。

このようなエラーが出ているので、yumコマンドで必要なPHPモジュールをインストールするようにしました。最後にサービスを再起動して、反映するのを忘れず行います。

$ sudo yum install -y php php-dom
$ sudo yum install -y php php-imagick
$ sudo yum install -y php php-gd
$ sudo yum install -y php php-zip
$ sudo yum install -y php php-mysql
$ sudo systemctl restart httpd.service

エラー2:サイト訪問者へエラー表示を行う設定になっています

Debugモードがオンになっているため、エラー情報が丸見えになっている状態です。設定ファイルを変更すると修正できます。

vim /var/www/wordpress/wp-config.php

wp-config.phpのDebugモードをtrueからfalseに変更します。

define( 'WP_DEBUG', false );

Google検索のサマリーが文字化けしてしまう

Category:

LAMP環境 Web開発

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をインストールする

Category:

LAMP環境 Web開発

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で推奨されていない処理や文法で警告が出ているようですが、無視しても動作に問題はありません。

ターミナルからVPSにSSH接続とSCPコマンド実行

Category:

LAMP環境 Web開発

2020年8月23日(日) 8:22 PM

Macのターミナルからssh接続する方法とscpコマンドでファイルアップロードとダウンロードする方法について紹介します。

パスワード認証で接続する場合は ’ssh -l (ユーザー名) (ドメイン名またはIPアドレス)’ でパスワードを入力すれば接続可能です。

ssh -l root abc-123.vs.sakura.ne.jp
ssh -l root 123.456.789.123

公開鍵認証の場合は、’ssh (ユーザー名)@(ドメイン名またはIPアドレス) -i (秘密鍵のパス) -p 22’ でEnterを押し、鍵のパスフレーズを入力すると接続できます。(鍵のパスフレーズは鍵作成時に設定したものを使用します。)

鍵の作成や設定方法はさくらインターネットのヘルプページが参考になります。(SSH接続の設定変更方法

ssh test@123.456.789.123 -i ~/Desktop/sakura/id_rsa -p 22

続いて、MacのターミナルからPVSへファイルアップロードする方法を紹介します。’scp -P 22 -i (秘密鍵のパス) -r (アップロードするディレクトリまたはファイル) (ユーザー名)@(サーバIP):(アップロード先)’ でアップロードを行います。

ファイルアップロード:

scp -P 22 -i ~/Desktop/sakura/id_rsa -r /Users/hoge/Desktop/androidnote/ test@123.456.789.123:~/

これで、Macのデスクトップのandroidnoteディレクトリ以下にあるファイルをサーバのホームディレクトリにアップロードすることができます。

最後にダウンロードについてですが、’scp (ユーザー名)@(サーバIP):(ダウンロードするディレクトリまたはファイル) (ダウンロード先)

ファイルダウンロード:

scp test@abc-123.vs.sakura.ne.jp:~/.ssh/ ~/Desktop/sakura/

サーバのホームディレクトリの.ssh以下のファイルをMacのデスクトップのandroidnoteディレクトリにダウンロードするコマンドです。

さくらインターネットのVPSの場合、コントロールパネルのVNCコンソールからサーバを操作できるようになっていますが、画面が固まることが多く、ファイルのアップロードもできないので、ローカルから接続できるように設定することをオススメします。

  • 広告

* RSS FEED