htaccessでメンテナンスページ

作成したメンテナンスページにhtaccessで一括で転送する方法

これはApacheのバージョンによって書き方が違ってきます。
バージョンが古いとエラーになりますので、両方記載します。

メンテナンスということでレスポンスコード503で表示したいところですが、
Apacheの仕様で使えない場合は500エラーになります。

Apacheのバージョンが2.2以上であればレスポンスコード503の操作が可能

ErrorDocument 503 /mente2.html
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/mente2.html
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

Apacheのバージョンが2.2以前であればレスポンスコードは300~400の操作が可能

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/mente2.html
  RewriteRule ^.*$ /mente2.html [R,L]
</IfModule>

500エラーが出た場合はエラーログを確認しましょう。
そこにエラーの内容が記載されています。
今回の場合は下記のエラーでした。

RewriteRule: invalid HTTP response code for flag ‘R’

hostsファイルについて

サーバー移転時など、DNS切り替え前に動作テストをしたいですよね。
その場合Windowsであればhostsファイルを書き換えることで新サーバーでのテストが行えます。

hostsファイルの場所は下記のとおりです。

■Windows 10

C:\Windows\System32\drivers\etc\hosts

-*-*-*-*-

■Windows 8 or 8.1

C:\Windows\System32\drivers\etc\hosts

-*-*-*-*-

■Windows 7

C:\Windows\System32\drivers\etc\hosts

-*-*-*-*-

■Windows Vista

C:\Windows\System32\drivers\etc\hosts

hostsファイルの書き方

上記のhostsファイルをメモ帳などのテキストエディタで開きます。
※編集には管理者権限が必要です。

hostsファイルを頻繁に編集する場合は下記のようなソフトを使うと管理が楽です。
Hosts File Manager
http://softwarefactory.jp/ja/products/hostsfilemanager/

hostsファイルのフォーマット

IP [スペース、TAB] ドメイン名

(例)
182.22.59.229 yahoo.co.jp

保存後にはブラウザの再起動を行います。
ブラウザの再起動でも切り替わらない場合はパソコンの再起動をしましょう。

上記のように移転ドメインの新サーバーのIPを指定することで新サーバーでの動作テストが行えます。
動作テストが終わった後は削除して元に戻しましょう。

windows端末では可能ですが、スマホやガラケーなどでは上記対応ができないので要注意です。

謹賀新年2018

最近はじめたブログですが、2018年もよんな~書き綴っていこうと思います。

2018年も宜しくお願い致します。

AWSのRDSでMySQLのdumpをする方法

AWSのRDSでMySQLのdumpをする方法。
スナップショットではなくて実データが欲しいときありますよね。
サーバー移転時とか。

スナップショットはRDSの管理画面から行えますが、dumpをする場合は下記のように行えます。

EC2にSSHでログインして下記を実行

mysqldump -h zeroone.ieecae89jne3n2.ap-northeast-1.rds.amazonaws.com -u zero1 -p zero1 > ./dump.sql

そうするとEC2側にdumpファイルが作成されるので、それをFTPでダウンロードする。

これでOK

MySQLのsql_modeについて

またまた移転時のネタ

移転後の動作チェックでINSERT文で下記のエラーが発生

Incorrect integer value: ” ~~~
こんなSQLがNGです。
INSERT INTO table (id, value) VALUES(”, ‘OK’);

auto_incrementのカラムに”を指定している部分でのエラーのようです。
色々調べてみるとsql_modeの設定が影響しているようです。

my.cnfかSQLで設定調整ができるようです。

my.cnfはroot権限、SQLでもMySQLのroot権限が必要です。

MySQLにroot権限でログインします。

$ mysql -u root -p
password:
> use データベース名

設定状況を確認します。

> SHOW GLOBAL VARIABLES LIKE 'sql_mode';

設定をします。

> SET GLOBAL sql_mode=NO_ENGINE_SUBSTITUTION;

これでINSERTでエラーがでなくなりました。

MySQLのリストア

MySQLのデータをリストア

$ mysql -u ユーザー名 -pパスワード名 --default-character-set=文字コード データベース名 < バックアップファイル名

※-pとパスワード名は間をあけない。

gzで圧縮している場合はパイプさせる。

zcat SQLファイル.gz | mysql -u ユーザー名 -pパスワード名 --default-character-set=文字コード データベース名

パスワードの警告がでますけど、処理は続行されます。

PHPのショートタグ

サーバー移転時にショートタグで書いているプログラムがたくさんあった。

ショートタグ↓こんなやつ

<? for($i=0; $i<10; $i++){ .... } ?>

全部修正は無理なのでショートタグを許可しちゃいます。

.htaccessに下記を記載

php_flag short_open_tag on

PostgreSQLのoid使用時の注意

PostgreSQLのoid使用時の注意

サーバー移転時の話
7.4→9.2にpsqlもバージョンアップ

SELECT時にoidを使っていたものがカラムがないというエラーが出ました。

マニュアルを調べてみるとoidを使う場合はテーブル作成時に指定しないと駄目らしい。
バージョン8.1以降からデフォルトでのoidは無効のようです。

下記のようにテーブル作成します。

create table 'テーブル名' (id int) with oids;

今回はoid使わなくてもOKなところだったのでプログラムを修正しました。

解凍ソフトで解凍できなかった場合に試したこと

解凍ソフトで解凍できなかった場合に試したこと

私は下記の解凍ソフトで使い分けをしている。

通常:Lhaz
Mac文字化け用:CubeIce

gzで圧縮されたDBのバックアップデータを解凍しようとした時に
上記のソフトでは解凍ができなかった。
「書庫が壊れています」とか「移動できませんんでした」など

解凍後のデータ容量が4GB近くあるので、それで駄目なのかな~っと

そこで新たな解凍ソフトを導入

7-Zip
https://sevenzip.osdn.jp/

こちらをインストールして試してみたら成功!

ソフトによってできる、できないがあるんだね~・・・

phpMyAdminでユーザーの新規追加で困った

phpMyAdminでユーザーの新規追加をしようとしてエラー

phpMyAdmin:4.7.6
MySQL:5.7

困った困った。

#1819 – Your password does not satisfy the current policy requirements

「パスワードが現在のポリシー要件を満たしていない」ということです。
英数字、大文字、小文字、記号を含めたパスワードにすると解決です。

phpMyAdminの「パスワードを生成する」のボタンでは上記ポリシーをクリアできてないので注意ですね。

SQLで直接実行するとユーザーの追加ができるので、今回はそちらで対応

CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';

ユーザー追加後にDBを追加したり、ユーザーの編集で接続するDBを指定したりしましょう。