KDP の IRS Form W-8更新について

KDP の IRS Form W-8更新について

3年前に IRS Form W-8を提出したけど
更新期限がきたので
Web から更新しました

また数年後に行うと思うので忘れない内に記述しておきます

https://kdp.amazon.co.jp/
へアクセスし

アカウントをクリック

次に税に関する情報 をクリック

あとは
「税に関する情報」で、「税に関する情報を表示/提出」をクリック

「インタビューを実行」をクリックして、インタビューを完了

この中でわかりにくいのが
途中で入力する英語での住所入力と
TIN(納税者番号)
以前はマイナンバーがなかったため
自分でこれを申請して取得しましたが
今回はマイナンバーがあるのでこちらを入力することになります

TINについては
Kindleで電子書籍を出版する方法―KDP(キンドル・ダイレクト・パブリッシング)登録方法・手順

を参考にしました

入力のときにはスペースを開けず
クレジットカードのように
マイナンバーを入力します

なお英語での住所の入力でわかりにくいのが
アパートの部屋番号
102号室なら

#102 アパート名
というように
号室などは#で記述するようです

住所の書き方に関しては
【保存版】住所を英語で書けますか? その書き方を徹底的に詳しく紹介!!


英語での住所の書き方がスラスラわかる7つのステップ

を参考にしました

wordpress プラグイン適用その2

wordpress プラグイン適用その2

画像圧縮プラグインは導入できたので
引き続き必要になりそうなプラグインをいれることに

ブログの趣旨としては
いろいろ実践したものを書いていきたいので
必要となるものは
画像圧縮
ソースコードの表示
Google Adsense の表示
スマホ対応
ぐらい

あとは購入してよかったものを
Amazon とかアフィリエイトで紹介するのは
そのままコードを貼り付けでできるので

今回は
スマホ対応にするために
WPTouch をインストール

Plugins > Add New で WPtouch で検索し
Install Now をクリック後 Activate をクリック

これでスマホ対応ができたので

次にソースコードの表示のためのプラグインをインストール

Plugins > Add New で
SyntaxHighlighter Evolved で検索し
Install Now をクリック

インストール後は Activate を忘れずに

AdSense Manager はすでに古いらしく
AdSense Managerはもう使えない?代わりのプラグインは?

によれば最終更新は5年前とのこと

また最近では Google Adsense で自動広告が使えるようになり
これを機に別のものを使うことに

WordPressでGoogle AdSense 自動広告を設定する方法

を参考に
Ad Inserterプラグインをインストール

ダッシュボードにログインして
Plugin > Add New で
Ad Inserter で検索し Install Now をクリック

インストールすると
Install Now が Activate になるので
これをクリック

エラーが表示されますが、気にせず次の操作へ進みます

次に設定をするので
Plugin > Installed Plugins で
Ad Inserter の Settings をクリック

次に Adsense にログインし
広告 > 自動広告

自動広告をクリックし
表示されたソースをコピーして

wordpress のダッシュボードで
Settings > Ad Inserter で

歯車アイコンをクリックして
Header をクリックし
ここへ貼付け後に
有効化アイコンをクリックし緑色になったら
Save Settings をクリックし設定を反映

これで自動広告が表示されるようになります

wordpress プラグイン適用

wordpress プラグイン適用

wordpress 引っ越しに伴い、適用するプラグインも変更

EWWW Image Optimizer
画像を自動圧縮するプラグイン
これを使えば過去にアップロードした画像も圧縮可能

Plugins > Add New
EWWW Image Optimizer
で検索し
Install Now をクリック

インストール後に Activate するのを忘れずに
使い方については
EWWW Image Optimizerの設定方法と使い方【2018年最新版】

を参考に

なお、最新版は英語

使用するには
PHPライブラリの GDと Imagick が必要なので

LaravelにImageMagick(最新版)をインストールして使用する

を参考にインストール

yum install https://rpmfind.net/linux/mageia/distrib/cauldron/x86_64/media/core/release/lib64openjp2_7-2.3.0-2.mga7.x86_64.rpm
yum install fftw3
yum install libXt
yum install libtool-ltdl

しかし

yum install http://springdale.math.ias.edu/data/puias/computational/7/x86_64/openjpeg2-devel-2.1.0-7.sdl7.x86_64.rpm

でエラーになるため

yumでPHP7をインストールする方法(CentOS7)

を参考に remi リポジトリでインストール

yum --enablerepo=remi-php71 install php php-cli php-devel php-common php-mbstring php-mysqlnd php-pear php-pecl-xdebug

このまま ImageMagick をインストールしても

ERROR: `/var/tmp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick=imagick' failed

となるので

PECL ImageMagick(PHP)インストール手順

を参考に

yum install ImageMagick-devel
yum install php-devel

で必要なライブラリをインストールしてから

pecl install imagick

を実行

途中で

Please provide the prefix of Imagemagick installation [autodetect] : 

とでるので

PHPでの画像処理【ImageMagick編】

を参考に
imagic
と入力

インストールが完了したら

Build process completed successfully
Installing '/usr/include/php/ext/imagick/php_imagick_shared.h'
Installing '/usr/lib64/php/modules/imagick.so'
install ok: channel://pecl.php.net/imagick-3.4.3
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini

と表示されるので

vim /etc/php.ini

でファイルを開き
最終行に

extension=imagick.so

と追記

最後に設定反映のため

systemctl restart httpd

でApache を再起動します

これでページをリロードすると
EWWW Image OptimizerのConvert 機能が使えるので

Settings > EWWW Image Optimizer
Convert タグで
Hide Conversion Links
でチェックがついているのを確認し
Save Changes をクリック

設定ができたら
Media > Bulk Optimize

Scan for unoptimized images
をクリックすれば
最適化されていない画像のスキャンができます

スキャン完了後に Start optimizing をクリックすれば
最適化されます

wordpress ssl変換後のアフィリエイトコード変更

wordpress ssl変換後のアフィリエイトコード変更

wordpress 自体をSSL変換しても
アフィリエイトコードが https 対応していないと
セキュリティの警告がでます

まずは
https化(SSL変換)後のアフィリエイトコードの変更作業について

を参考に

まずは A8.net
A8の場合、2016年7月26日に既に各アフィリエイトコードは全てhttps化に対応
とのこと

ただしそれ以前は http なので
これを書き換える必要がありそう

まずはA8.net にログインして
登録情報 > サイト情報の登録、修正
をクリック

修正したいサイトで修正をクリックし
URLの部分を https に変更

ダッシュボードにログインして
Tools > Seach Regex

Seach pattern に
a8.net

Seach して
リストアップされた記事の edit をみて
新しいバナーに張り替えていきます

注意点としては
wordpress のテンプレやサイドバーなどの
アフィリエイトコードも対象となっているので
この場合

英語テーマなら
Appearance > Customize

Widgets > Sidebar
として
Text の部分を編集することで
サイドバーのバナーの張替えが可能になります

できたら
Published をクリックすることで更新できます

なお、リンク切れのアフィリエイトコードは消しておきましょう

次に Amazon アソシエイトのURLも変更するので

SSL化httpsにしたらAmazonアソシエイトが表示されない対処法

を参考に

Tools > Seach Regex で
Search pattern で
Seach して Replace & Save で保存

これでOK

wordpress の SSL 対応(Let’s Encript)

wordpress の SSL 対応(Let’s Encript)

無事に wordpress を GMO クラウドから
ConoHa VPS に移行できたので
次に wordpress のSSL対応にします

ssh でログインしたら

su -

で管理者権限になり

使用するドメインは
wp.developapp.net
なので

/usr/local/certbot/certbot-auto certonly --webroot -w /var/www/html/wp.developapp.net -m メルアド-d wp.developapp.net --agree-tos

で証明書ファイルを発行

 vim /etc/httpd/conf.d/wp.developapp.net.conf 

で設定ファイルを開き

<VirtualHost *:443>
        ServerName wp.developapp.net:443
        DocumentRoot "/var/www/html/wp.developapp.net"
        ErrorLog logs/ssl-wp.developapp.net-error_log
        CustomLog logs/ssl-wp.developapp.net-access_log combined env=!no_log
        SSLCertificateFile /etc/letsencrypt/live/wp.developapp.net/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/wp.developapp.net/privkey.pem       
        SSLCertificateChainFile /etc/letsencrypt/live/wp.developapp.net/chain.pem

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        SSLHonorCipherOrder on
        Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

を追記

なお、HTTPでアクセスしてきたものを HTTPS にするには

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]


80 番ポートのところに追記します

<VirtualHost *:80>
    ServerName wp.developapp.net
    DocumentRoot /var/www/html/wp.developapp.net
    ErrorLog logs/wp.developapp.net-error_log
    CustomLog logs/wp.developapp.net-access_log combined env=!no_log

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

</VirtualHost>

設定反映のため

systemctl restart httpd

で Webサーバを再起動

これで SSL対応はできるけど
これから書く記事に対してはOKだけど
過去記事に関しては
リンクが http のため
このままだと
一部は安全ではありません
と表示されることに

wordpress letsencrypt 一部安全ではありません
で検索し
WordPressサイトをSSL化した時注意すること

を参考に

まず、ダッシュボードにログインし
Settings > general

WordPress Adress(URL)

Site Address(URL)
の部分の
http を https に変更

次に過去記事のメディアなどのURLの置き換え
これはプラグインのSearch Regexで可能なので

Plugin > AddNew

Search Regexで検索し
Activate で有効化

Tools > Search Regex

Search pattern に 
http://wp.developapp.net
というようにSSLする前のドメインを
Replace pattern には
https://wp.developapp.net/
というように SSL対応したあとのドメインを入力し
Seach をクリック

これで該当する部分がでるので
Replace & Save
で置き換えと保存

しかし、まだダメなので
アフィリエイトサイトの場合ASPのトラッキング用のリンクなどが
影響しているため、一度使用しているアフィリエイトのリンクを確認

これらのリンクに対しては今後対応することに

wordpress の引っ越し作業で画面真っ白の対処

wordpress の引っ越し作業で画面真っ白の対処

mysql データを MariaDB へインポートできたので
次にvirtualhost の設定

vim /etc/httpd/conf.d/wp.developapp.net.conf

というように
ドメイン名.conf
というファイルを作成

内容は

<VirtualHost *:80>
    ServerName wp.developapp.net
    DocumentRoot /var/www/html/wp.developapp.net
    ErrorLog logs/wp.developapp.net-error_log
    CustomLog logs/wp.developapp.net-access_log combined env=!no_log
</VirtualHost>

保存したら

systemctl restart httpd

で apache を再起動

しかし
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

と表示される

エラーで検索し
CentOS7 PHP7.1.2 お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

を参考に

php -m | grep mysql

を実行しても何もでないので

yum install yum-utils
yum-config-manager --enable remi-php71
yum install php-mysqlnd

で必要なパッケージをインストール後

php -m | grep mysql

を実行し

mysqli
mysqlnd
pdo_mysql

がでたのを確認したら

systemctl restart httpd

で apache を再起動したけどかわらず

おそらく wordpress のバージョンが古すぎることが原因

とりあえず

wget http://ja.wordpress.org/latest-ja.zip

で最新のwordpress をダウンロード

mv wordpress /var/www/html/wp.developapp.net
chown -R apache:apache /var/www/html/wp.developapp.net/
cd /var/www/html/wp.developapp.net/
cp wp-config-sample.php wp-config.php
vim wp-config.php
systemctl restart httpd

今度は
データベース接続確立エラーになった

ログインユーザに問題があるとおもい
wordpress ユーザで mysql でログインしようとしてもできないので
サーバー移動による hostname があやしいと思い

root で mysql にログインして調べたら

select host,user from mysql.user;

を実行すると
host が % になっている

念の為

 show variables like 'hostname';

で hostname もみてみたら
やはり違っている

このあたりから調べることに
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user ‘snowpool’@’localhost’ (using password: YES) in /var/www/html/wp.developapp.net/wp-includes/wp-db.php on line 1531

つまり ユーザに問題がありそう

MariaDB(MySQL)の基本的なユーザー系コマンド

で調べ

SELECT user,host FROM mysql.user;

でユーザ一覧をみたら

ユーザは存在しているけど
root 以外は

SHOW GRANTS FOR ''@'hostname';

で権限を確認しても

ERROR 1141 (42000): There is no such grant defined for user 'snowpool' on host 'hostname'

となるし

ログインしようとしても

ERROR 1045 (28000): Access denied for user 'snowpool'@'localhost' (using password: YES)

となってしまう

Hostを指定しないで作ったuser1はHostが「%」になっているので
とあるので
https://teratail.com/questions/45324

MySQLの権限の確認や外部からのアクセス

に権限について載っているのをみると

どうやら、host の指定をしていないのが原因っぽい

とりあえず権限の確認

show grants;

で現在のユーザの権限が確認できる

root ユーザに関してはログインしてコマンド実行することでみれたけど
wordpress のユーザはログインすることができかったため

DBの破損の確認をしたいので

テーブルが壊れているかと思ったので、mysqlcheckで修復したときのメモ

を参考に

mysqlcheck -c -u root -p --all-databases

を行ったところ
すべてOKで破損はなし

SELECT user,host FROM mysql.user;

でユーザ一覧をだしてみたけど
host が % になっているのでたぶんこれが原因っぽい

一度、移行前のサーバーへ ssh ログインし

show grants for 'snowpool'@'%';

では権限確認できるのに対し

インポート先の MariaDBで

show grants for 'snowpool'@'%';

だと

ERROR 1141 (42000): There is no such grant defined for user 'snowpool' on host '%'

となる

MySQL] MySQL5でHostに’%’があるとリモート接続できない?

によれば
host に % にするのは mysql のワイルドカードで
どこからの接続でも許可するというもの

今使っているDBが MariaDB
最初は権限やセキュリティの仕様が違うのかとおもったけど
マシンのホスト名やOSが違うため

slaveの再設定、追加(オンラインバックアップ)

をみてみたら

別サーバーで、レプリケーションが行われているmysqlからダンプして
フルバックアップファイルを利用して、slaveを設定しなおす場合に、
mysqlの接続アカウント情報も書き変わってしまう。

そのため、元々masterに設定されていた接続アカウントと
ダンプファイルのアカウント情報が違う場合には、アカウント情報を再設定してあげる必要がある。

とのこと

ということで再度アカウントを別のもので作成して実験

grant all privileges on wp_my_wordpress* to snowpool@localhost identified by "password";

これで wp-config.php の設定を変更したけど画面が真っ白

念の為

mysqldump -u root -p wp_my_wordpress > wordpress.sql

でバックアップを作成しておく

なお復旧させるときには

create database wordpress;

で新規作成

 mysql -u root -p wordpress < wordpress.sql 

でインポートすれば復旧可能

 mysqlcheck -c wordpress -u root -p

で破損をチェックしOKを確認するのも忘れずに

なお、画面が真っ白になった原因は
最新のwordpress にした場合、該当するテーマがないため
wp-config.php での設定をせず
ドメインにアクセスし、ブラウザからインストールし
ダッシュボードへログインしてテーマ設定をすれば
wordpress の表示がされるようになります

wordpress の Mysql DB バックアップと Maria DB へのインポート

wordpress の Mysql DB バックアップと Maria DB へのインポート

GMOクラウドで構築した wordpress から
ConoHa VPS へ移行するため
mysql のバックアップを行う

WordPressサイトの移行手順まとめ(mysqldumpから別環境移行まで)

を参考にやってみる

DBの内容が多かったのが原因なのかは不明だけど
プラグインで実行しようとしたらできなかったので
mysqldump コマンドでバックアップすることに

データ容量が大きい場合,bzipでは圧縮は比較的早いが解凍に時間がかかるため
gzip を使ったほうがいいらしい

MySQLでバックアップ&圧縮をまとめて行うコマンド

でも バックアップと圧縮をパイプでまとめて行っている

バックアップのためのディレクトリを作成したいので

mkdir -p /var/www/backup/db_bak
chmod 777 /var/www/backup/db_bak

で作成して

個別のDBバックアップ圧縮なら

mysqldump -u username -h localhost -p databasename | gzip > mysqldump.sql.gz

すべてなら

mysqldump -u username -h localhost -p -A | gzip > mysqldump.sql.gz

でできるようだ

なお、復元に関しては
解凍&復元を同時に行う(zcat+mysql)

zcat mysqldump.sql.gz | mysql -u username -p databasename

とあるのでこれを行うには
zcat が必要になりそう

–all-databases  は
mysqldump のオプションで
全DBバックアップという意味

とりあえずバックアップしたファイルを sftp でダウンロード

今回は
mysql_backup_20181011.dump.gz
というファイルにしてダウンロード

mysql を MariaDB にインポートするので
後々問題になったときのため
バージョンを調べておくことに

/usr/local/mysql/bin/mysql --version

で調べたら

/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.5.27, for Linux (x86_64) using  EditLine wrapper

なので
ver 5.5.27 みたい

次に

scp -p mysql_backup_20181011.dump.gz snowpool@サーバIP:/home/snowpool/

で公開鍵認証 scp で圧縮ファイルを転送

念の為
MariaDB のバージョンを

mysql --version

で確認したら

mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

またmysql のホスト名の違いについては

show variables like 'hostname';

で確認

DB全部バックアップしたものを復旧するなら

 mysql -u root < /vagrant/dump.sql

でよさげなので
MariaDB のデータを mysqldump でバックアップ・リストアする

を参考に実践

単純に

 zcat mysql_backup_20181011.dump.gz | mysql -u root -p

でできた

これで mysql のデータを maria DB にインポートできたので
次は virtualhost の設定をして
wordpress のインストールを行います

ConoHa VPS virtualhost 設定

ConoHa VPS virtualhost 設定

バーチャルホスト設定(Apache)

を参考に
virtualhost の設定

今回使用するドメイン名は
www.snowpool.info

mkdir /var/www/html/www.snowpool.info

でvirtualhost ドキュメントルートディレクトリを作成

vim /etc/httpd/conf.d/virtualhost.conf

で未定義ホスト用virtualhost 設定ファイルを作成

内容は

<VirtualHost _default_:80>
    ServerName any
    <Location />
        Require all denied
    </Location>
</VirtualHost>

とすることで
virtualhost 未定義ホスト名でアクセスを拒否

 vim /etc/httpd/conf.d/www.snowpool.info.conf

で www.snowpool.info の
virtualhost 設定ファイルを作成

つくるファイル名は
ドメイン名.conf
となる

内容は

<VirtualHost *:80>
    ServerName www.snowpool.info
    DocumentRoot /var/www/html/www.snowpool.info
    ErrorLog logs/www.snowpool.info-error_log
    CustomLog logs/www.snowpool.info-access_log combined env=!no_log
</VirtualHost>

なお
www.snowpool.info
の部分は取得したドメインに置き換え

systemctl restart httpd

で Webサーバ再起動

echo test >> /var/www/html/www.snowpool.info/index.html

でテストファイルを用意

これで
http://www.snowpool.info/
へアクセスすると
test と表示されます

次に Lets Encript の適用を変更するので

vim /etc/httpd/conf.d/ssl.conf

で設定ファイルを開き
56行目あたりの

 <VirtualHost _default_:443>

から
218行目あたりの

 </VirtualHost>

までを削除

次に

 /usr/local/certbot/certbot-auto certonly --webroot -w /var/www/html/www.snowpool.info -m メルアド -d www.snowpool.info --agree-to

を実行すると

What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Keep the existing certificate for now
2: Renew & replace the cert (limit ~5 per 7 days)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

となるので

Let’s Encrypt の証明書の更新で「バージョンが異なる」のメッセージが出て更新できない

を参考に

2 を入力し Enter で更新

次に

vim /etc/httpd/conf.d/www.snowpool.info.conf 

を開き

<VirtualHost *:443>
        ServerName www.snowpool.info:443
        DocumentRoot "/var/www/html/www.snowpool.info"
        ErrorLog logs/ssl-www.snowpool.info-error_log
        CustomLog logs/ssl-www.snowpool.info-access_log combined env=!no_log
        SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem       
        SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        SSLHonorCipherOrder on
        Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

を追記

設定反映のため

systemctl restart httpd

で Webサーバを再起動

これで https アクセスになるけど
http でアクセスしてきたものを強制的に https にしたいので

CentOS7 複数ドメイン(バーチャルホスト)でSSL

を参考に

virtualhost *:80
の部分に

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

を追記

今回の場合

<VirtualHost *:80>
    ServerName www.snowpool.info
    DocumentRoot /var/www/html/www.snowpool.info
    ErrorLog logs/www.snowpool.info-error_log
    CustomLog logs/www.snowpool.info-access_log combined env=!no_log

    RewriteEngine on
    RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>

<VirtualHost *:443>
        ServerName www.snowpool.info:443
        DocumentRoot "/var/www/html/www.snowpool.info"
        ErrorLog logs/ssl-www.snowpool.info-error_log
        CustomLog logs/ssl-www.snowpool.info-access_log combined env=!no_log
        SSLCertificateFile /etc/letsencrypt/live/www.snowpool.info/cert.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/www.snowpool.info/privkey.pem
        SSLCertificateChainFile /etc/letsencrypt/live/www.snowpool.info/chain.pem

        SSLProtocol all -SSLv2 -SSLv3
        SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
        SSLHonorCipherOrder on
        Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>

となりました