サーバー移転時、単純に旧Webサーバーのファイルを全て新Webサーバーにコピーするだけで問題なく動くこともあります。
例えばWordPressですとファイル(とデータベース)を全てコピーするだけで、基本的には動きます。
が、他のCMSを使っていたり、PHPやJavaScriptを使ったWebアプリケーションだったりすると単純なコピーでは動かない場合が多いです。
というわけで、そんな場合によく使いそうなUNIXコマンドをまとめます。
chmod
ファイルおよびディレクトリのパーミッションを変更するものです。
基本的な構文は以下。
chmod (オプション) (ファイルモード) (ファイルまたはディレクトリ名)
オプションでよく使うのは、サブディレクトリ内も全てを変更する「-R」ですね。
ファイルモードはよく755とか666とかのよく見るものですね。これについては詳細な説明は省きます。
あと「グループだけに読み込みを追加」というような場合は「g+r」という指定ができます。
これは「(対象)+(権限)」の形式で、対象はu:ユーザー、g:グループ、o:その他、a:全てを表します。権限はr:読み込み、w:書き込み、x:実行です。「+」を「-」にするとそのパーミッション削除の意味になります。
以下の例は「public_html内のファイルおよびディレクトリを全て755にする」です。
chmod -R 755 public_html
chown
ファイルおよびディレクトリの所有者を変更するものです。chmodとセットで使われることが多いかもしれません。
chown (オプション) (所有者) (ファイルまたはディレクトリ名)
オプションは、chmodと同様に「-R」をよく使います。
所有者は「(所有者):(グループ)」の形式にすることでグループも変更できます。
以下の例は「public_html内のファイルおよびディレクトリの所有者をtestに、グループをwwwにする」という意味です。
chown -R test:www public_html
find
ファイル名による検索です。
find (ディレクトリ名) (オプション)
オプションがキモになるコマンドですが、サーバー移転時に良く使うのはファイル名で検索する「-name」ですね。他は省きます。
以下の例は「ファイル名の末尾にtestを含むファイルを検索」という意味です。
find . -name '*test'
grep
findがファイル名についての検索であるのに対し、grepはファイルの内容を検索します。
grep (オプション) (検索文字列) (ファイル名)
オプションは、「-l」「-r」を良く使います。grepは通常該当の行をそのまま表示しますが、「-l」を付けるとファイル名のみを表示します。「-r」はおなじみのサブディレクトリ全検索です。
ファイル名は、ワイルドカードなどを使って複数ファイルを指定することができます。
つまり、「-l」「-r」を付けておきファイル指定で「.」(現在のディレクトリ)と指定すると、現在のディレクトリ以下全ファイルの中から、指定した検索文字列を含む全てのファイル名を出力することができます。
以下の例は、「現在のディレクトリ以下でtestを含むファイル名をすべて出力する」という意味になります。
grep -l -r 'test' .