Blogブログ

Archives

VPS間でのサーバ引っ越し: 1 scp転送からdbのダンプまで

サーバーの引っ越しのログ。複数バーチャルホストでWPを運用しており、その他いくつかスタティックなサイトもある状態。 移動後、更にSSL化も行う おおまかな手順 ファイルの転送 DBのダンプ・リストア バーチャルホスト設定 ドメインのDNS設定変更 SSL設定 ファイルの転送 これはscpを使う。 SCPを使ったサーバ間のデータ移動 参考:http://www.atmarkit.co.jp/ait/articles/1701/27/news009.html ローカルのファイルをリモートへ転送またはリモートのファイルをローカルへ取得という2つの方法がとれるが、今回は旧サーバから新サーバへ転送させる。また、新サーバへの認証は鍵認証となる。 鍵認証の準備 旧サーバでkey genする old serverにログインし、key genする。今だけの利用なので、passphraseはブランク。 ローカルマシンにダウンロード。 このとき777にしないと落とせなかった。 Oldの方のAuth_keyとマージ ssh-copy-idを使う。 ssh-copy-id -i id_rsa.hoge {user}@{host} の書式でサーバに公開鍵を送ることができる。参考:https://qiita.com/sakanashi/items/542ae428d9de9c7c59dc今回の場合はこんなかんじ。 # ssh-copy-id -p 0000 -i /path/to/local/id_rsa.pub user@000.000.000.000 するとssh-copy-idが使えないといわれた汗なので、homebrewでインストール # brew install ssh-copy-id 再度実行すると不具合。 /usr/local/bin/ssh-copy-id: ERROR: failed to open ID file ‘/path/to/local/id_rsa’: No such file or directory    (to install the contents of ‘/path/to/local/id_rsa.pub’ anyway, look at the -f option) とのことなので、おとなしく-fオプションをつける。 # ssh-copy-id -f -p 11223 -i /path/to/local/id_rsa.pub user@000.000.000.000 そしたら成功。 Number of key(s) added:        1 サーバーに入ってみると、ちゃんとauthorized_keyが更新されている。 SCPでファイル転送 書式は、 scp option -i 秘密鍵 コピーしたいファイルパス 受取先パス なので、旧サーバへログインし、 # scp -r -p -P 0000 -i /home/admin/.ssh/id_rsa /path/to/docroot admin@example.net:/path/to/new/docroot こんな感じで、ドキュメントルートをそれぞれ転送。事前に新サーバに転送先のディレクトリを作っておくこと。所有者もログインユーザになるように。もし別ユーザの所有だったら修正しておく。 chown admin:admin -R /path/to/new/docroot/ 次はDB。 DBのダンプ・リストア ダンプを取って、そのまま移動。 dumpデータ取得 全データのdump # mysqldump -u root -p -x –all-databases > dump.sql DBを選択してdump # mysqldump –default-character-set=utf8 -u root -p database_name > dump.sql 複数Tableを選択してdump # mysqldump –default-character-set=utf8 -u root -p database_name table_name1 table_name2 > dump.sql 復元する # mysql -u root -p < dump.sql 新サーバで作成を確認し、各ユーザーでのログインも確認する。既に同じユーザがいる場合、PWが上書きされるので注意。その場合はこれで戻す。 […]

Sakura VPS LAMP環境構築から監視まで

個人開発環境を久々整えました。折角なのでログを残します。 構築する環境 sakura vps Cent OS 6.9 PHP 5.6 Logwatch&DenyHostsでの監視設定 起動して、初回のログイン 管理画面から起動。起動したら、Terminalからsshでログイン。 ssh root@000.000.000.000 !もしログイン出来ない場合 過去に、起動直後にログインできない場合があった。 port 22: Connection refused ブラウザ管理画面からもコンソールを立ち上げてみたが、固まっている。 Updating RPMS on system: これはRPMの更新をかけているとのこと。少しこのまま待ってみると、入れるはず。 仮パスワードの変更と、開発用ユーザの作成 メールで送られてきた仮のパスワードは変更して、開発用のユーザーを追加。 パスワード変更 # passwd# Changing password for user root.# New password:# Retype new password:# passwd: all authentication tokens updated successfully. 成功したら、別タブを立ち上げてログインチェック。 # ssh root@000.000.000.000# root@000.000.000.000’s password: OK! 開発用ユーザ追加 # useradd your_user_name# passwd your_user_nameNew password:Retype new password:passwd: all authentication tokens updated successfully. 成功したら、別タブを立ち上げでログインしてみる。 # ssh your_user_name@000.000.000.000your_user_name@000.000.000.000’s password: OK! sudoの設定 追加したユーザーにroot権限を与える。まずはyour_user_nameをwheelグループに追加する。 # usermod -G wheel your_user_name sudo設定ファイルを編集する。 # visudo %wheel ALL=(ALL) ALL ~ のコメントを外し、wheelグループのユーザに実行権限を付与。 ## Allows people in group wheel to run all commands%wheel ALL=(ALL) ALL 保存したら別タブを立ち上げ、先程作ったユーザでログイン。適当なコマンドを実行してみて、OKだったら成功。 # ssh your_user_name@000.000.000.000# your_user_name@000.000.000.000’s password:# sudo hogehoge SSH接続設定 パスワード覚えたくないので、鍵認証でのみログイン可能にする。 クライアントで鍵を作成する。 クライアントPCで公開鍵設置用のディレクトリ作成 # mkdir ~/.ssh# chomd 700 ~/.ssh# cd ~/.ssh 鍵の作成 # ssh-keygen -t rsa -v ここで秘密鍵のファイル名を入力。デフォルトはid_rsa。パスフレーズも聞かれるのでメモしておく。 Enter file in which to save the key (/Users/yourpath/.ssh/id_rsa):Enter passphrase (empty for no passphrase): これで生成される。 Your identification has been saved in /Users/yourpath/.ssh/id_rsa.Your public key has been saved in /Users/yourpath/.ssh/id_rsa.pub. […]

PWA

PWAとは PWA = Progressive Web Apps モバイル端末のブラウザで、アプリを使うようなUXを提供するための技術。 これまでネイティブアプリでしか実装できなかった、プッシュ通知、端末の情報センサーを利用する、端末の支払い機能を利用する、などが可能になる。 敷居の高いアプリ公開・審査などが不要になるので、工数を掛けずユーザーのエンゲージメントや利用満足度を高める事が狙い(だと思う) PWA参考・活用事例 https://pwa.rocks/ 海外では緩やかに増加傾向。しかしまだ実用的とは言い難い。 現状、Androidでの実装が積極的に進められている。 主に以下の実装が可能。 データの保存 Bluetoothアクセス 音声認識 バックグランドでの稼働 プッシュ通知 Web App Bannerの表示(ユーザーにPWAのインストールを促す) Splash Screenの設置   iOSでも11.3でPWAが強化された。 ただしプッシュ通知ができないなど、実装は限定的。 テスト的な実装となりそう。 iOSで現状可能な事は、 ・geolocation ・ジャイロなどのセンサー関連情報の取得 ・音声出力 ・音声合成 ・Apple Pay ・Payment Request APIの利用 – Service workerとは リッチなオフライン体験、定期的なバックグラウンド同期、プッシュ通知など、これまでネイティブアプリを必要としていた機能が Web にもやってきます。Service Worker はそれらの機能を提供する基盤技術 https://developers.google.com/web/fundamentals/primers/service-workers/?hl=ja デモサイト:https://simple-push-demo.appspot.com/ 今後の考察 iOSは基本的にクローズドにすることにより安全性や品質を保っている印象。 そのためAndroid並にPWA機能を許可することはないかもしれない。 とはいえプッシュ通知のためにアプリを作るなどの事例もあるので、このあたりの許可はするかもしれない(アプリの品質維持という意味で)

JSフレームワークのトレンドチェック

AngularJSの案件以降、触っていなかったJSフレームワーク。 stackoverflowでJSトレンドをチェックしてみました。   Javascript Frameworks https://insights.stackoverflow.com/trends?tags=jquery%2Cangularjs%2Cangular%2Creactjs react.jsが伸びてきています。 jqueryは2013~2014頃と比較すると4割程度減。 angularjsはangularとなり、上昇トレンド。また、reactも同様。   Smaller Javascript Frameworks https://insights.stackoverflow.com/trends?tags=meteor%2Cbackbone.js%2Cember.js%2Cvue.js%2Cknockout.js%2Credux%2Cd3.js 目を引くのはvue.jsの伸び。2016から急激に伸びています。Backboneはもうほぼ使われないかもですね‥ D3は安定しているように見えますが、若干下降気味か?? それでもアニメーションの需要は高いので、案件はなくなる事は無いと予測。   総括して、個人的には下記をおさらいしたいと思う。 react.js vue,js d3.js angular 使い慣れるには実際にプロダクトを作るのが一番なので、それぞれ何か考えようと思います。   ちなみに、言語トレンドはこちら。 https://insights.stackoverflow.com/trends?tags=java%2Cc%2Cc%2B%2B%2Cpython%2Cc%23%2Cvb.net%2Cjavascript%2Cassembly%2Cphp%2Cperl%2Cruby%2Cvb%2Cswift%2Cr%2Cobjective-c   jsが伸びていますね。 それと昨今のデータサイエンストレンド向上を反映し、python、R言語も気になります。   Data Sciense https://insights.stackoverflow.com/trends?tags=r%2Cpandas%2Cmatlab%2Ctensorflow  

Javascriptで正規表現のまとめ【応用編】

ここでは実際のケースで使えそうなものをまとめる。 メールアドレス 定義 アカウント名@ドメイン名 .+@.+ アカウント名の先頭は半角英数字 ^[a-zA-Z0-9] アカウント名のに文字目以降は半角英数字または.-_のいづれか 1文字のみの場合も考慮して*をつける [a-zA-Z0-9.-_]* ドメイン名の先頭は半角英数字 [a-zA-Z0-9] ドメイン名のに文字目以降は半角英数字または.-_のいづれか [a-zA-Z0-9.-_]+ ドメイン名は必ず.を含め、かつ.で終わらない [a-zA-Z0-9][a-zA-Z0-9\.-_]+\.[a-zA-Z]{2,}$ これを組み合わせると、 var regexp = /^[a-zA-Z0-9][a-zA-Z0-9\.-_]*@[a-zA-Z0-9][a-zA-Z0-9\.-_]+\.[a-zA-Z]{2,}$/; console.log(regexp.test(‘hoge@fuga.com’)) console.log(regexp.test(‘@fuga.com’)) console.log(regexp.test(‘_h.o.g.e@f-uga.com’)) console.log(regexp.test(‘ho._gr..e@fuga.com’)) console.log(regexp.test(‘ho._gr..e@fuga’)) console.log(regexp.test(‘ho._gr..e@fuga.hoge.jp’)) ただし! メルアドについて完璧な正規表現は無いと言われている。 html5のinput[type=email]でさえ、電子メールの構文を定義するRFC5322対して意図的に違反する仕様となっている。つまり、無理ゲーってこと。 ちなみにHMTL5のinput[type=email]で動くバリデーションはこう。 ^[a-zA-Z0-9\.!#$%&’*+/=?^_'{|}~-]+@[a-zA-Z0-9]+(?:\.[a-zA-Z0-9-]+)*$ 実務では、HMTL5準拠のバリデーションてことで上に従えばよさそうかな。 電話番号 条件 0から始まり、10-11桁 ^0\d[9,10]$ なので、 var regexp = /^0\d{9,10}$/; console.log(regexp.test(‘09088883333’)); console.log(regexp.test(‘79088883333’)); ハイフンを含める場合は、 var regexp = /^0\d{1,3}-\d{3,4}-\d{3,4}$/; console.log(regexp.test(‘79088883333’)); console.log(regexp.test(‘090-8888-3333’)); URL http, httpsで始まる :// […]

Javascriptで正規表現のまとめ

なんとなくで使っていた正規表現。 一度ちゃんとまとめてみる。 sandbox https://codepen.io/shnr/pen/ywwLej?editors=1111 表記 二通りある。 コンストラクタ表記 var regexp = new RegExp(‘ABC’); リテラル表記 var regexp = /ABC/ 一般的にはリテラルのほうが好まれる。 検索の実行 exec()と、match()、2つの方法がある。 exec() regexpオブジェクトのメソッド。 match() Stringオブジェクトのmethod var str = ‘hogefuga’; console.log(/gefu/.exec(str)) console.log(str.match(/fuga/)) Options g – グローバル検索 i – 大文字・小文字を区別しない m – 複数行検索 y – 特定の位置から検索 指定方法 リテラルのほうがよく見られる気がする。 var regex = new RegExp(‘ABC’, ‘g’) // or var regex […]

WP_CILを使ったWordPress update

sakura vpsに wp_cilを入れる。備忘録 これでターミナルからアップデートが可能になる。 1.ダウンロード curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar 2.確認 php wp-cli.phar –info 3.パスに移動 chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp 4.確認 wp help これで準備完了。 アップデート 1.バージョンチェック wp core version 2.アップデート wp core update 4.もっかいバージョンチェック wp core version 5.アップデート対象のプラグインチェック wp plugin status 6.プラグインのアップデート wp plugin update plugin_name 7.テーマのチェック wp theme status 8.テーマのアップデート wp theme update plugin_name […]

Sakura VPS FTPでIP制限

vsftpd.confでIPアドレスの制限を行います。 tcp_wrappersの確認 /etc/vsftpd/vsftpd.conf で、tcp_wrappersの記述を確認します。 tcp_wrappers=YES となっていれば、hosts.allow hosts.deny によるアクセス制限を行います。   hosts.deny の編集 /etc/hosts.deny で一度全ての接続を拒否します。 vsftpd : ALL #全ての接続を拒否   hosts.allowの編集 /etc/hosts.allowで特定IPの接続のみ許可します。 vsftpd : 000.000.000.000 #000.000.000.000からの接続を許可する   以上で完了です。非常に簡単ですね。  

cakephpでQRコード生成

cakephpでQRコード生成MEMO。 – module Image_QRCode を使います。 download : http://pear.php.net/package/Image_QRCode/download document : https://wiki.php.net/pear/packages/image_qrcode /lib/ ディレクトリ配下に設置します。 入っていない場合は、pearが必要です。 yum -y install php-pear – Controller 今回はGETで渡された数列のIDをQRコード画像にして返します。 Layoutはajax用に設定し、余計なLayoutの表示を防ぎます。 public function get_qr(){ $this->layout = ‘ajax’; $this->set(‘some_url’, ‘http://hogehoge.com’); return; } – view 表示用のviewでライブラリを読み込みます。 require_once APPLIBS . ‘Image_QRCode-0.1.3/Image_QRCode-0.1.3/Image/QRCode.php’; $QR = new Image_QRCode(); $option = array( ‘module_size’ => 4, ‘image_type’ => ‘png’, ‘output_type’ => ‘display’, […]

Photoshopのスライス時、色味が変わる問題

原因 カラープロファイルが違うこと。 DTPとWEBで設定が違うため、まれにこの様なファイルがある場合があるらしい。 WEBで書きだす場合には、sRGB(Standard RGB)に変換すればOK。 解決策 ・まず、現在のカラープロファイルを確認 Photoshopの左下あたりにある▶をクリック、”Document Profile”を選択。 sRGBになっていればOK。 違う場合は、 Edit -> Convert to Profile で sRGBに変換する。 ・Photoshopのカラー設定を確認 Edit -> Color setting で、Settingを”Japan Web/Internet”に変換します ・その状態でスライス(Web用に保存) 以下にチェックを入れる ・Optimized ・Enbed Color Profile ・Convert to sRGB Previewは下を選択(これは関係ないかも) Use Document Profile ■参考 http://mizyupon-rpg.com/posts/612.html http://tokyo-d-plex.com/~tomokotamamura/myblog/?p=115 http://ameblo.jp/honeybunnybaby017xxx/entry-10223660081.html http://noir.mods.jp/web/?p=10

2345613