なった時の対処法rsyncでローカル環境とリモートサーバーのディレクトリを同期したい!ということありますよね。思い、rsyncを使ってみたらつまずいた時の対処法です。エラーの内容と原因ローカル環境の現在のディレクトリと、リモートサーバーの/home/wwwを同期しよう思い、実行したのが以下のコマンド。deniedされてますね。remoteで接続できることも確認済です。~/.ssh/id_rsarsyncのエラー解決策rsyncは、裏側でsshをデフォルトでは使っているそうです。そこで、rsyncのeオプションを使い秘密鍵を指定してssh接続をしてみたいと思います。eオプションを使いダブルクオーテーションで囲むことでsshのiオプションを使うことができます。/Users/sample_user/.ssh/id_rsa"コマンド全体としては↓のような感じになります。www@11.22.33.444:/home/wwwこれで実行したところ...できた!秘密鍵がちゃんと指定できなかったことが問題だったようです。rsyncはあまり使ったことがないので、割りと雑な対処ですがこれでなんとか同期ができました。commandエラーの対処法cronを設定したはずなのに、動かない時の対処方法です。ログを確認する前にcronの状態とファイルパーミッションを確認します。statuscrondがrunning状態であることを確認。-laまた実行ファイル(シェルスクリプト)のパーミッションを確認して、ファイルの実行権限が正しく設定されているか確認します。ここまで問題なければ、cronのログファイル(/var/log/cron)を確認します。commandエラーが出ていました。原因は、/etc/cron.d/sampleのファイル末尾に空行がなかったせいでした。commandとなってしまうようです。コマンドを使わずに、以下のように直接ファイルを作成したことによるものでした。/etc/cron.d/sample対処法は簡単で作成したファイルの末尾に行を追加すれば良いだけです。開発環境のWordPressがいきなり「データベース接続確立エラー」となり、mysqlが起動しなくなってしまった時の対処法です。poolのメモリ割当が少なかったせいmysqlを起動すると以下のようにエラーに。[FAILED]まずは、/var/log/mysqld.logを確認。すると以下のようなエラーがでていました。Aborting原因となりそうなのはこの部分。pool対処法:my.cnfのinnodb_buffer_pool_sizeを増やすメモリの割当ができなかったようなので、/etc/my.cnfを編集してメモリの割当を増やします。512Mにすることに。512Mそこで、MySQLを再起動。]これでMySQLが再起動しました。5.6未満だとエラーとなるようです。理由がなければ、innodb_buffer_pool_sizeのメモリを増やすだけで良いかなと思います。innodb_log_file_sizeを変更した時のエラー対処/tmp/my.cnfのinnodb_log_file_sizeを変更すると、エラーになりmysqlが起動できないという現象に。mysqld.logを見てみると以下のようなエラーに。bytes!my.cnfで指定したメモリのサイズとib_logfile0のサイズが違うとのこと。未満でmy.cnfのinnodb_log_file_sizeを変更すると発生するようです。消すのは怖いので、/tmpに一旦退避させます。/tmpそして、またmysqlを再起動すると以下のようなエラーに。that.調べてみると、ib_logfile0などを消すのはあまり良くない対処のよう。テーブルスペースのサイズの変更を参考に対処しました。mysql編Chefよりも手軽に使えるということでAnsibleを試してみました。今回は、nginx、php-fpm、mysqlを入れて、さらにmysqlでデータベースとユーザーを作成するところまでをやってみます。使用感を知りたかったので、Ansibleの環境はlocalhostです。Ansibleを使うにはCentOS6でAnsibleを使うには、yumでansibleをインストールするだけでOKです。インストールしたらサーバー構築の手順書であるPlaybookを書いて、実行すればOKです。簡単な流れは以下の通り。/etc/ansible/構成は以下のようになってます。rolesansible.cfgはansibleの設定ファイル。hostsはansibleの対象となるサーバーや、グループなどを設定できます。今回はlocalhostのみが対象でさくっとお試しなので、特に設定することはありません。Playbookを作成rolesディレクトリや好きなディレクトリに移動してplaybookを作ります。Indexに記載があります。Ansibleを実行Playbookの実行にはansible-playbookコマンドを使います。–syntax-checkなどをつけることで、構文チェックなどができます。playbook.yml使ってみた感想としては、手軽に使えてYAMLで記述できるので見通しもよく扱いやすい印象。その反面、ほかの人も指摘していますが複雑な処理は苦手そうといったイメージ。Ansible初心者がvimをカスタマイズしてプラグインを導入するまでvimをアップデートvimのバージョンが古くて一部のプラグインが使えなかったので、新しいバージョンのvimをインストールします。ついでにneocompleteなどで使うので、Luaも有効化しておきます。installそのあとに、シンボリックリンクを貼るか.bashrcにaliasを設定します。~/.bashrc以下のaliasを追記。vimまたはviで新しくインストールしたvimが起動します。/usr/local/share/vim/vimrc'.bashrcに追記した内容を反映させます。設定ファイルvimrcの場所を確認します。--versionすると、vimのバージョンなどと一緒に設定ファイルの場所が以下のように表示されます。$VIMで確認できます。下記を調べた設定ファイルvimrcに追加します。次にカラースキームを設定します。今回は人気のmolokaiを設定します。https://github.com/tomasr/molokaicolorschemeをvimrcに追加。次にvimプラグインを追加します。プラグインの管理にはNeoBundleを使います。onvimrcを保存してからvimを再起動。NeoBundleCheckを設定しているので、起動時にインストールしていないプラグインをインストールか聞かれます。NeoBundleCheckを設定しない場合は、vimのコマンドラインで:NeoBundleInstallとすることで指定したプラグインをインストールできます。NeoBundleコマンド:NeoBundleInstallプラグインのインストール:NeoBundleListプラグインのリスト:NeoBundleCleanプラグインを削除:NeoBundleUpdateプラグインのアップデートそのほか、キーバインドに関してなどはまたの機会に。Textで開く方法です。・ファイル同期を待ちたくない・ローカルにファイルがいっぱいになるのが嫌だということでよりお手軽なrsubを選んでみました。以下の手順でrsubのパッケージを追加します。「rsub」を選択してインストール2.リモートサーバー側の設定リモートサーバーにログインしたら、rsubをインストールします。/usr/local/bin/rsub3.ローカルでsshのconfigを設定ここで一旦、ローカルに戻りsshのconfigを設定します。~/.ssh/config以下の2行をconfigに追加して保存。localhost:52698これで上手くいくはず(?)だったのですが、リモートサーバーでrsubしてもエラーがでてしまいました。localhost:52698なので、configを以下のように変更します。localhost:52698保存してローカルからリモートサーバーにssh接続をします。example.comリモートサーバーからrsubでファイルを開いてみます。Textでファイルを開くことができました。Text上で保存すればリモートサーバーでも反映されます。ServerさくらのVPS(CentOS)にnginxリバースプロキシを入れて高速化する方法さくらのVPSの初期設定から、nginxを入れてリバースプロキシの設定をするまでの手順を(自分用に)まとめました。今回最も参考になったのは以下の本です。nginx以外の高速化の手法も豊富でおすすめです。高速化&スマート運用必携ガイドさくらのVPSの初期設定さくらのVPSを契約したら、まずはコントロールパネルからサーバーを起動します。起動したらrootユーザーでssh接続します。パスワードはメールで送付されているはずです。root@160.17.60.189ここでたまにエラーになるのですが、そんな時はコントロールパネルからサーバーを再起動すれば接続できることが多いです。次に、ユーザーを追加します。ここでは「username」というユーザーを新しく追加することとします。usernamepasswordコマンドでパスワードを設定します。username次に追加したユーザーにsudo権限を与えます。今回は「wheel」グループにsudo権限を持たせ、追加したユーザーを「wheel」に所属させます。visudovisudoコマンドで設定ファイルが開くので、#(コメントアウト)を消します。ALLついでに最低限のファイアーウォールの設定をiptablesでします。saveこの辺りの最初の設定は、さくらインターネットのサーバの初期設定ガイドに載っています。yumの準備アップデートをして、remiやepelなどのレポジトリを追加します。updateで「更新と設定されたパッケージがありません。」などと出てこけたら以下のコマンドを実行したらから再度アップデートしてみてください。updateremiとepelを追加します。失敗したらURLを最新のものに差し替えてみてください。http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpmnginxのインストール次にnginxをインストールします。yumでインストールできるnginxのバージョンを確認。nginxちょっと古かったのでnginxのレポジトリを追加してから、インストールします。nginxインストールできたらnginxを立ち上げてから、サーバー起動時に自動でnginxが立ち上がるように設定します。onphpのインストールPHPをインストールしてphp.iniを編集します。/etc/php.iniphp.iniは、とりあえず以下のように変更します。"Asia/Tokyo"nginxでPHPを動かす時に使うphp-fpmを入れて設定ファイルwww.confを編集します。/etc/php-fpm.d/www.conf細かいチューニングは後から行うとして、まずは以下のように設定します。onmysqlのインストールMySQLをインストールします。php-mysqlここでは、起動してからrootを「samplepassword」に設定します。-pwordpressというデータベースを作成します。utf8_general_ci;次にwordpressというユーザーを作成し、パスワードを「samplepassword」とします。'samplepassword';リバースプロキシの設定(nginx.confの編集)リバースプロキシを設定するために、nginx.confとdefault.confを編集します。設定ファイルはGistを参照してください。5.4.39で動作確認。*その他の環境での動作は保証しかねます。/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf設定ファイルを編集し、nginxを再起動します。restartバックアップデータの移行WordPressを使用していてサーバー移転する時のメモです。htmlディレクトリ以下をすべて圧縮し、データベースはdumpしてバックアップを保存。dump.sql転送先のサーバーにsftpコマンドで接続して、dump.sqlとhtml.tar.gzを転送します。html.tar.gz転移先のサーバーにssh接続して、html.tar.gzを解凍&dumpファイルをインポートします。php-fpmの環境構築は完了です(多分)。あとはサーバーの環境に合わせてチューニングすればよいかと。ServerさくらのレンタルサーバーにSSH接続とファイル転送してみる実は、「さくらのレンタルサーバー」にはSSH接続ができるんです。ファイル転送するのもいいですが、ターミナルを使いたい場合もありますよね。「さくらのVPS」にSSH接続するのとは、少し違うの注意が必要です。samplepassword契約時にメールで送られてきたサーバ名、アカウント(FTPアカウントと同一)とサーバパスワードを使ってSSH接続してみます。アカウント@サーバ名」で接続できます。レンタルサーバーなのでroot接続ができないという点には注意です。次に公開鍵と秘密鍵を作り、レンタルサーバーに転送します。これをすることで、ssh接続時にパスワードを入力しなくて済むようになります。次にsshのconfigファイルを編集して、さらに楽にssh接続できるようにします。~/.ssh/config以下の内容を書き加えます。Hostの部分は任意の文字なので、sampleとしてもOKです。[設定したHOST名]」で接続できます。sample-account今回はこれで接続できれば完了です。さくらのレンタルサーバーにファイル転送するさっき使ったscpコマンドを使って、ファイル転送をします。ひとつずつファイル転送するのは面倒なので、ディレクトリごと回帰的に転送してしまいましょう。[アカウント名]@[ホスト名]:[転送先]というコマンドになります。今回は、WordPressのwpex-prontoというテーマを転送することにします。sample-account@sample-account.sakura.ne.jp:/home/sample-account/www/wp/wp-content/themesこれで転送が完了です。あとは、bashrcなどにエイリアスや関数を設定すればさらに便利になります。WordPressでパーマリンク変更をした時のリダイレクト設定WordPressのパーマリンク設定を変更したら、リダイレクトの設定をサーバー側(もしくはプラグイン)でする必要があります。今回は、nginxでリダイレクト設定をする時の目的:旧URLから新URLに301リダイレクトするnginxのrewriteを使って301リダイレクト(恒久的なリダイレクト)をしてみます。「数字ベース」から「カスタム構造」に変更した時などには、忘れずにリダイレクトしておきたいです。http://web-tsukuru.com/tag-nameとリダイレクトするように設定します。解決策:default.confにrewriteルールを追記nginxの設定ファイルがある/etc/nginx/conf.dにあるdefault.conf(*1)に設定を追記します。serverブロック内にlocationディレクティブを追記し、その中にrewriteルールを設定することでリダイレクトできます。*変更する設定ファイルはサーバーによって変更してください。Cacheを使っているので、ポート80のほうのserverブロックに以下のように追記します。permanent;}locationで/archives/以下をリダイレクトするように設定。リライトルールは以下のように記述します。リダイレクトの種類;今回、リダイレクトするディレクトリはarchives/%post_id%とarchives/tag/%tag%なので、^/archives/(.*)$とする。()$で囲った部分は、$1のように変数として使用できます。リダイレクト先は今回ドメイン直下にしたので、/$1というように変数を使って指定します。具体的には、/archives/123にアクセスがきた場合は$1変数には「123」がはいり、/123にリダイレクトされます。追記したらnginxを再起動すればリダイレクトの設定は完了です。