2015年6月29日月曜日

よく検索するGitコマンドの覚書。自分用

git_commandgitも慣れてきたけど、たまにしか使わないのだけ覚書。

Windows8.1からLinuxの共有ファイル上でコマンド打っている。

Git for Windowsに付属している「Git Shell」がブランチ名をtab補完出来たり使いやすい。

基本コマンド忘れたら「-h」で確認。
# git commit -h

前のコミットに上書き
# git commit --amend

2つのコミットを1つにする
# git rebase

間違えて社内GitLabアカウントでGitHubにプッシュしてしまったとき。

 

Push処理後に作業していたローカルリポジトリをリモートに合わせる
# git fetch origin
# git reset origin/master

 

GitLab上でブランチを削除したあとに作業クライアントで同期させる(git fetchでは取りに行くだけで同期しない)
# git fetch --prune

 

全部追加して、特定のファイルだけ管理対象から外したいとき
# git add --all
# git rm --cached hoge.config

 

コンフリクトした後などに特定のファイルはorigin/masterで上書きしたい
# git checkout origin/master -- /path/to/file

設定ファイルはローカルリポジトリが正しい
# git checkout HEAD -- /path/to/file

 

ブランチを作る前にmasterにコミットしてしまった場合。コミットをなかったことにして、ブランチに反映させる。
# git reset --soft HEAD^
# git checkout -b develop
# git commit -m 'developing some features'

 

ブランチの名前付けとか参考になった

 

git 2.0からgit posh originのデフォルト動作が変わるらしい。今まで同じ動作にしたい場合
# git config --global push.default matching

 

前のバージョンを試したいとき。今やっている作業を一時退避
$ git stash

特定のブランチのmasterに取り込まれていない変更履歴表示
$ git log --oneline master..<branch>

特定のリビジョンに変更
$ git checkout 7f09696

確認が終わったら今の作業を捨てて元のブランチに戻る
$ git reset --hard
$ git checkout <branch>

一時退避したファイルを確認して戻す
$ git stash list
$ git stash apply

 

< Related Posts >

2015年6月26日金曜日

Google Container Engineについて調査

google-container-engine6月18日にあったGoogleのカンファレンス「Next」に参加して、Google Container Engineを試そうと思ったときの覚書。

「Kubernetes のコンテナ技術ですべてをシンプルに」のセッションを聞いて、Google Container Engineはコンテナの技術をかなり使いやすく提供している印象。

今までロードバランサーと複数の仮想マシンで冗長化、負荷分散の環境を構築してたのが一気に必要なくなる。

新しいバージョンをリリースするのも(戻すのも)コンテナを切り替えるだけ。コマンド一発でサービスを止めずにいい感じに切り替えてくれる。

参考サイト

 

カゴヤの安い仮想マシンにJenkins + GitLab + Redmineをインストールして、Container Engineに自動でデプロイする環境を構築するつもり。

メールの送信は直接送れないので、提携サービスを使ったり、DBに保存して外のサーバーからDB参照して送る必要がありそう。

 

今開発しているサービスも来年にはコンテナに移行する予定。

 

< Related Posts >

2015年6月25日木曜日

Picasa Web Albums Data API v2 + PHPでアルバム一覧取得(OAuth2)

picasa_wordpress_phpPicasa Web Albumsに保存してある非公開のアルバムと写真を表示する機能を作ったのだけれど、メールアドレスとパスワードでログイン出来なくなったのでOAuth2を使うようにしたときの覚書。

参考

 

目次

  1. デベロッパーコンソールでAPI設定
  2. PHPライブラリ
  3. アルバム一覧を取得

 


1.デベロッパーコンソールでAPI設定

全て公式ドキュメントに書いてある。

Google Developers Consoleでプロジェクト作成して「認証情報」から「新しいクライアントIDを作成」する。

アプリケーションの種類は「ウェブアプリケーション」。

「サービスアカウント」で認証画面とか表示せずに利用しようとしたけど、認証しても「default」が登録したGoogleアカウントにならなかった(公開情報にはアクセスできた)。詳しく調べれば方法があるかもしれない。。。

「ウェブアプリケーション」+「オフラインアクセス」で実現できることが分かった。

 


2.PHPライブラリ

公開されているライブラリを使う。

WordPressプラグインとして公開されている「PWA+PHP Picasa Web Albums for WordPress」はライブラリを使わずに頑張って自前で実装してる。何かの参考になるかもしれない。

 

 


3.アルバム一覧を取得

ライブラリを使ったアルバム一覧を取得するまでの手順

  1. setAccessType('offline')でリフレッシュトークンも取得するように設定
  2. createAuthUrl()へリダイレクトして認証コードを取得
  3. authenticate(認証コード)でアクセストークンとリフレッシュトークンをJSON形式で取得
  4. JSON形式のままデータベースに保存
  5. setAccessToken()にそのまま渡す
  6. getAuth()->authenticatedRequest()するとアクセストークンが期限切れの場合に自動でリフレッシュトークンを使って新しいアクセストークンを取得してくれる。

手順1,2,3は初回のみ。再度authenticateするときはrevokeToken()しないとリフレッシュトークンを取得できないので注意。

アルバム一覧をjson形式で取得する場合の例

$req = new Google_Http_Request('https://picasaweb.google.com/data/feed/api/user/default/');
$req->setQueryParam('alt', 'json');
$req->setQueryParam('kind', 'album');
$res = $client->getAuth()->authenticatedRequest($req);
if (!$data = json_decode($res->getResponseBody())) {
    $data = $res->getResponseBody();
}

 

需要があるならFacebook Page AlbumsみたいにWordPressプラグインとして公開しようかな。

 

< Related Posts >

2015年6月24日水曜日

PHPからJavaScriptを実行できるExtension「v8js」をビルド(CentOS7で成功)

centos_php_v8jsPHP+React.jsで開発したくて彷徨っている時の覚書。

環境(CetnOS6): CentOS 6.6, gcc 4.8.2-15
環境(CetnOS7): CentOS 7.1, gcc 4.8.3-9

PHPからJavaScriptを実行できるExtensionをビルドする。

 

結局CentOS6だとPHPエクステンションの読み込みでエラーになる。CentOS7だとREADME.Linux.md通りで簡単に成功した。

以下CentOS6のときのログ

 

目次

  1. v8をソースコードからビルド
  2. v8jsをビルド
  3. PHPの設定

 


1.v8をソースコードからビルド

別記事を参考に

v8をビルドしたディレクトリに移動してファイルをコピー
# cd /opt/software/v8/
# cp out/native/lib.target/lib*.so /usr/lib/
# cp -R include/* /usr/include
# echo -e "create /usr/lib/libv8_libplatform.a\naddlib out/native/obj.target/tools/gyp/libv8_libplatform.a\nsave\nend" | sudo ar -M

 


2.v8jsをビルド

v8jsをクローンしてビルド実行
# cd /opt/software/
# git clone https://github.com/preillyme/v8js.git
# cd v8js
# phpize
# ./configure
# make
# make test
# make install

Installing shared extensions:     /usr/lib64/php/modules/

 


3.PHPの設定

作成したエクステンションをPHPで読み込む
# echo "extension=v8js.so" > /etc/php.d/v8js.ini

PHP再起動
# /etc/rc.d/init.d/php-fpm restart

エラー

Starting php-fpm: [11-Jun-2015 13:01:12] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/v8js.so' - libv8.so: cannot open shared object file: No such file or directory in Unknown on line 0

共有ライブラリを確認
# ldconfig -p | grep libv8

再読み込みして再起動
# ldconfig
# /etc/rc.d/init.d/php-fpm restart

エラー

Starting php-fpm: [11-Jun-2015 13:23:52] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/v8js.so' - /usr/lib64/php/modules/v8js.so: undefined symbol: _ZSt25__throw_bad_function_callv in Unknown on line 0

devtoolset経由でビルドしたのが影響したのかな?

これはもうCentOS6では無理だと判断。

 

CentOS7だと何事も無くPHPエクステンションの読み込みまで完了した。

確認
# php -i | grep v8

v8js
v8js.flags => no value => no value
v8js.use_array_access => 0 => 0
v8js.use_date => 0 => 0

今の本番環境は全部CentOS6なので、この技術を使うのはもう少し先にする。

 

< Related Posts >

 

        2015年6月23日火曜日

        PHPからJavaScriptを実行できるExtension「v8js」をビルド(失敗編)

        centos_php_v8jsPHP+React.jsで開発したくて彷徨っている時の覚書。

        環境: CentOS 6.6

        PHPからJavaScriptを実行できるExtensionをビルドする。

         

        先に結論を書くと、YUM経由のV8は古い。V8をソールからビルドしてもCentOS6の環境では動かない。CentOS7だとREADME通りにビルド出来る。

        成功編は明日アップする。

         

        目次

        1. libv8をビルド
        2. v8jsをビルド

         


        1.libv8をビルド

        v8jsをビルドしたときに「libv8がない」と怒られたので、これでいいのかなぁと思いつつやってみた。

        結局V8をソースからビルドすれば必要なかった。

        Rubyの最新版をインストールするのは前の記事を参考に。

        Rubyのbundlerをインストールしておく
        # gem install bundler --no-rdoc --no-ri

        libv8をインストールする
        # cd /opt/software
        # git clone git://github.com/cowboyd/libv8.git
        # cd libv8/
        # bundle install
        # bundle exec rake checkout
        # bundle exec rake compile

        エラー

        No manual entry for git-svn
        /opt/software/libv8/ext/libv8/checkout.rb:48:in `check_git_svn!': git-svn not installed! (RuntimeError)

        GitHub上で検索してみると「git help svn」がないとこのエラーになるらしい。

        前に作っておいたgitのソースコードをクローンした場所に移動して、ついでに最新版のgitをインストールする。
        # cd /opt/software/git
        # git pull
        # make clean all
        # make all doc

        エラー1回目

        /bin/sh: line 1: asciidoc: command not found

        エラー2回目

        /bin/sh: line 1: xmlto: command not found

        YUM上にあったのでインストール
        # yum install asciidoc xmlto

        再度make
        # make all doc
        # make install install-doc

        確認
        # git --version

        git version 2.4.3.368.g7974889

        # git help svn

         

        もう一度libv8に戻る
        # cd /opt/software/libv8/
        # bundle exec rake compile

        エラー

        sh: patch: command not found

        YUM経由でインストール
        # yum install patch

        再挑戦
        # bundle exec rake compile

        無事完了

        インストール
        # gem install libv8

        Fetching: libv8-3.16.14.7-x86_64-linux.gem (100%)
        Successfully installed libv8-3.16.14.7-x86_64-linux
        Parsing documentation for libv8-3.16.14.7-x86_64-linux
        Installing ri documentation for libv8-3.16.14.7-x86_64-linux
        Done installing documentation for libv8 after 0 seconds
        1 gem installed

         


        2.v8jsをビルド

        次はPHP extensionを作る。

        pecl経由でなくてソースコードからビルドしてみた。
        # cd /opt/software/
        # git clone
        https://github.com/preillyme/v8js.git
        # cd v8js/
        # phpize
        # ./configure

        エラー

        checking for V8 Javascript Engine... yes, shared
        checking for V8 files in default path... not found
        configure: error: Please reinstall the v8 distribution
        ERROR: `/var/tmp/v8js/configure --with-v8js' failed

        libv8だけではダメだった。YUM経由でv8をインストール。
        # yum install v8-devel

        再挑戦
        # ./configure

        エラー

        checking for V8 version... NONE
        configure: error: could not determine libv8 version

        YUM経由とlibv8でバージョンが違うのがダメなのかな?libv8をインストールし直してみる。
        # cd /opt/software/libv8/
        # gem uninstall libv8
        # gem install libv8 -- --with-system-v8

        Fetching: libv8-3.16.14.7-x86_64-linux.gem (100%)
        Successfully installed libv8-3.16.14.7-x86_64-linux
        Parsing documentation for libv8-3.16.14.7-x86_64-linux
        Installing ri documentation for libv8-3.16.14.7-x86_64-linux
        Done installing documentation for libv8 after 0 seconds
        1 gem installed

        戻って再挑戦
        # cd /opt/software/v8js/
        # ./configure

        同じエラー

        configureの解析。。。内部で下記エラーになってた。

        /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/libv8.so: undefined reference to `clock_getres'
        /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/libv8.so: undefined reference to `clock_gettime'
        collect2: ld returned 1 exit status

        CXXFLAGSに「-lrt」を追加するといいらしい。直接./configureを編集(4688行目)。

        CXXFLAGS="-g -O2 -lrt"

        今度は下記エラー

        configure: error: libv8 must be version 3.24.6 or greater

        YUM経由のv8が古い。

        v8-develがインストールされた場所を確認
        # rpm -ql v8-devel

        v8をソースコードからコンパイルすることにした。

         

        < Related Posts >

        2015年6月22日月曜日

        CentOS6でv8をソースからビルド

        centos_v8React-PHP-V8jsを試したくてV8をソースコードからコンパイル・ビルドしたときの覚書。YUM経由のV8は古い(3.14)のでv8jsをビルド出来ない。

        環境: CentOS 6.6

         

        結局CentOS6だとv8jsをビルドしたものの読み込むときにエラーになる。

        CentOS7だとGCCやPythonを別途アップデートしなくてもビルド出来るのでオススメ。

         

        参考

         

        目次 

        1. ツール群「depot_tools」をインストール
        2. V8をダウンロードしてインストール
        3. Python 2.7をインストール
        4. V8をビルド(失敗)
        5. GCCを4.8にアップデートする
        6. V8をビルド(3.31で成功)

         


        1.ツール群「depot_tools」をインストール

        ビルド用にLinux開発ツールをインストールしておく。
        # yum groupinstall "Development Tools"

        # cd /opt/software/
        # git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
        # export PATH=`pwd`/depot_tools:"$PATH"

         


        2.V8をダウンロードしてインストール

        depot_toolsのfetchコマンドでダウンロードする
        # fetch v8

        エラー

        Failed to fetch file gs://chromium-clang-format/7219213d084db0ea8eaed8f4291814f4f46fad3a for v8/buildtools/linux64/clang-format. [Err: Traceback (most recent call last)

        # cd v8/

        ブランチを確認して最新に移動
        # git branch -a
        # git checkout 4.5.46
        # gclient sync

        やっぱりエラー

        AttributeError: ZipFile instance has no attribute '__exit__'

        python 2.6だと起きるらしい。

         


        3.Python 2.7をインストール

        別記事を参照

         

         


        4.V8をビルド(失敗)

        もう一度
        # cd /opt/software/v8/
        # gclient sync

        ________ running '/root/.pyenv/versions/2.7.10/bin/python v8/build/gyp_v8' in '/opt/software'
        Updating projects from gyp files...

        # make clean all
        # make native library=shared -j8

        エラー

        PYTHONPATH="/opt/software/v8/tools/generate_shim_headers:/opt/software/v8/build::/opt/software/v8/build/gyp/pylib:" \
                GYP_GENERATORS=make \
                build/gyp/gyp --generator-output="out" build/all.gyp \
                              -Ibuild/standalone.gypi --depth=. -S.native  -Dcomponent=shared_library -Dv8_enable_backtrace=1 -Darm_fpu=default -Darm_float_abi=default
        make[1]: Entering directory `/opt/software/v8/out'
          CC(target) /opt/software/v8/out/native/obj.target/icudata/third_party/icu/linux/icudtl_dat.o
          ACTION tools_gyp_v8_gyp_js2c_target_js2c tools_gyp_v8_gyp_js2c_target_js2c.intermediate
        /opt/software/v8/third_party/llvm-build/Release+Asserts/bin/clang: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/software/v8/third_party/llvm-build/Release+Asserts/bin/clang)
        /opt/software/v8/third_party/llvm-build/Release+Asserts/bin/clang: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /opt/software/v8/third_party/llvm-build/Release+Asserts/bin/clang)
        /opt/software/v8/third_party/llvm-build/Release+Asserts/bin/clang: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/software/v8/third_party/llvm-build/Release+Asserts/bin/../lib/libstdc++.so.6)
          ACTION tools_gyp_v8_gyp_js2c_target_js2c_experimental tools_gyp_v8_gyp_js2c_target_js2c_experimental.intermediate
        make[1]: *** [/opt/software/v8/out/native/obj.target/icudata/third_party/icu/linux/icudtl_dat.o] Error 1
        make[1]: *** Waiting for unfinished jobs....
        make[1]: Leaving directory `/opt/software/v8/out'
        make: *** [native] Error 2

        公式ページ見たらGCCは4.6以上が必要らしい。
        # gcc --version

        cc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)

         


        5.GCCを4.8にアップデートする

        別記事を参照

         

         


        6.V8をビルド(3.31で成功)

        もう一度
        # cd /opt/software/v8/
        # make clean all
        # make native library=shared -j8

        同じエラー

        `GLIBC_2.14' not found
        `GLIBC_2.15' not found

        このエラーは付属しているclangが出力しているので、clangをYUM経由でインストールしてみる。
        # yum install clang
        # make clean all
        # make native library=shared -j8

        インストールしたclangを使ってくれない。同じエラーになるので古いバージョンを試していくと3.31で成功した。
        # git branch -a
        # git checkout branch-heads/3.31
        # make clean all
        # make native library=shared -j8

         

        ちなみにCentOS7だとあっさりと成功した。V8 version 4.5.46

        もうCentOS6の時代は終わったと思った瞬間。

         

        < Related Posts >

        2015年6月19日金曜日

        CentOS6のGCCをYUM経由(devtoolset2)でUpdate

        centos_gcc_updateV8をビルドしようとしてズブズブと深みにハマっているときの覚書。

        環境: CentOS 6.6

         

        参考

         

        devtoolsetを使うと既存の環境に影響を与えずに新しいgccを使えるようになるらしい。

        上記サイトにYUM経由でアップデートする方法があるので、基本これに従う。

        仮想環境で実行している場合はスナップショットをとっておく。

        # cd /etc/yum.repos.d/
        # wget http://people.centos.org/tru/devtools-2/devtools-2.repo

        devtoolset-2のGCC, GCC-C++をインストール
        # yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

        インストールされたのを有効に
        # scl enable devtoolset-2 bash

        確認
        # gcc --version

        gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

        どこにインストールされたか確認
        # rpm -ql devtoolsset-2-gcc

         

        常に有効にする場合は下記記事を参考に。

         

        V8をコンパイル出来たけど、v8jsはCentOS6の環境で動かなかったので結局元に戻した。

        CentOS7だとgcc 4.8.3でv8jsも問題なく動くのでこちらを使った方がいい。

         

        < Related Posts >

        2015年6月18日木曜日

        CentOSにpyenvをInstallしてPythonを2.6から2.7に切り替え

        centos_pythonV8をビルドするときにpython 2.6だとエラーになったので2.7にアップデートしたときの覚書。

        環境: CentOS 6.6

        せっかくなのでnvmやrbenvみたいにバージョン管理システムpyenvをインストールしてみる。

         

        参考

         

        まずはクローン
        # git clone https://github.com/yyuu/pyenv.git ~/.pyenv

        パスの追加
        # echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
        # echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

        初期化コマンドを追加
        # echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

        読み込み
        # source ~/.bash_profile

        コマンドの確認して、インストールできるバージョンを一覧表示
        # pyenv help
        # pyenv install -l

        コマンドはGitHub上でも詳細を確認できる。

        2.7.10をインストールする
        # pyenv install 2.7.10

        WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
        WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
        WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?

        確認
        # pyenv versions

        * system (set by /root/.pyenv/version)
          2.7.10

        2.7.10に切り替え
        # pyenv global 2.7.10
        # pyenv versions

          system
        * 2.7.10 (set by /root/.pyenv/version)

        # python -V

        Python 2.7.10

         

        WARNINGになってたreadline, bzip2, sqlite3をインストール
        # yum install readline-devel bzip2-devel sqlite-devel

        Pythonを再インストール
        # pyenv install 2.7.10

         

         

        < Related Posts >

        2015年6月17日水曜日

        CentOSにmemcachedをInstallしてPHPからCacheとして利用 for GAE

        wordpress_memcachedWordPressをGoogle App Engineに移行したときに、GAEはmemcachedを使うので開発環境にインストールしたときの覚書。

        環境: CentOS 6.6, PHP 5.4.41

        参考サイト

         

        目次

        1. memcachedサーバーをインストール
        2. PHPから利用するためのモジュールをインストール

         


        1.memcachedサーバーをインストール

        remiリポジトリからインストールされた
        # yum install memcached

        サービスの起動と自動起動登録
        # /etc/rc.d/init.d/memcached start
        # chkconfig memcached on

         


        2.PHPから利用するためのモジュールをインストール

        GAE用WordPressテンプレートは「Memcache」を利用しているので、「d」が付いてないのをインストール
        # yum install php-pecl-memcache
        # /etc/rc.d/init.d/php-fpm restart

        これで開発環境が整った。

         

        管理コンソールでGitリポジトリを使ってみたのだけれど、どうやってGitリポジトリの方にデプロイを切り替えるのか分からない。

         

        < Related Posts >

        2015年6月16日火曜日

        Redmineに「Redmine Git Hosting」PluginをInstall(途中で諦め)

        redmine_gitRedmineで各プロジェクトのリポジトリを設定しているときにデフォルトのブランチを設定出来ないかと調査したときの覚書。

        masterから納品先ごとにブランチ切っているから。参考:GitLab flowのproductionブランチ

        環境: CentOS 6.6, Redmine 3.0.3, Redmine Git Hosting 1.0.6

         

        「Redmine Git Hosting」というRedmineプラグインを導入すると実現できるみたい。

         

        目次

        1. インストール
        2. Gitoliteの導入を諦めてアンインストール

         


        1.インストール

        公式サイトにしたがって行う。

        必要なソフトをインストール
        # yum install libssh2 libssh2-devel cmake libgpg-error-devel

        依存している「Redmine Bootstrap Kit」プラグインをインストール
        # cd /opt/redmine/plugins/
        # git clone https://github.com/jbox-web/redmine_bootstrap_kit.git

        安定版ブランチへ移動
        # cd redmine_bootstrap_kit/
        # git branch -a
        # git checkout v0.2.x

        「Redmine Git Hosting」プラグインをインストール
        # git clone https://github.com/jbox-web/redmine_git_hosting.git

        安定版ブランチへ移動
        # cd redmine_git_hosting/
        # git branch -a
        # git checkout v1.0.x

        関連Gemのインストール
        # cd /opt/redmine/
        # bundle install --without development test

        赤文字が出力されるのでエラーと思いきや、もう一度実行すると無事終了。
        # bundle install --without development test

        データベースのアップデート
        # bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_git_hosting

        Redmine再起動
        # /etc/rc.d/init.d/redmine restart

         


        2.Gitoliteの導入を諦めてアンインストール

        管理画面に「Redmine Git Hosting」があるので覗いてみる。聞き慣れない「Gitolite」の設定項目がいくつか。

        「Gitolite」はGitの権限周りを設定できるらしい。

        YUM経由でインストール出来そうなのは確認。

        設定が面倒くさそうなので諦めた。

        インストールしたプラグインをアンインストール
        # bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_git_hosting VERSION=0
        # rm -rf plugins/redmine_git_hosting/
        # rm -rf plugins/redmine_bootstrap_kit/
        # /etc/rc.d/init.d/redmine restart


         

        < Related Posts >

        2015年6月15日月曜日

        Android Emulatorの起動を速くする for Titanium

        android-emulator_titaniumAndroidの開発は実機で確認していたけど、Genymotionをインストールするともう少し便利になるかと思ったときの覚書。

        GenymotionのFree版は個人利用でないとダメなので諦め。

        既存Androidエミュレータを速くする技術があるので試してみた。

        環境: Mac OS X Yosemite 10.10.3

         

        参考

         

        目次

        1. Intel x86 Atom System ImageとHAXMのインストール
        2. AVD (Android Virtual Device)を作成
        3. Titaniumからビルドコマンド

         


        1.Intel x86 Atom System ImageとHAXMのインストール

        Android SDK Managerを開いてエミュレータで起動するバージョンの「Intel x86 Atom System Image」と一番下の「Intel x86 Emulator Accelerator (HAXM installer)」を選択してインストール。

        HAXMはインストーラーをダウンロードするだけなので、個別に実行。

        マウスをポイントするとダウンロードされた場所がわかる。
        /Application/android-sdk-macosx/extras/intel/Hardware_Accelerated_Execution_Manager

        IntelHAXM_1.1.1_for_10_9_and_above.dmgを実行

        メモリは2048MBに設定してインストール。

         


        2.AVD (Android Virtual Device)を作成

        Android SDK Manager → Tools → Manage AVDs... → Device Definitions → Nexus 5 → Create AVD...

        下記のように設定

        image

        起動後に「Unfortunately, Launcher has stopped.」が出る場合は「VM Heap」の値を増やすと改善する。

        日本語を入力すると落ちる場合も「VM Heap」の値を増やすと改善する。Nexus6は日本語入力すると必ず落ちる。

        「Snapshot」を有効にするとエミュレータが起動しなかった。/var/logs/system.logを見るとhaxm_errorと出力されてた。

         


        3.Titaniumからビルドコマンド

        作成したエミュレータの一覧
        $ /Applications/android-sdk-macosx/tools/android list avds

        ビルドして動作確認
        $ ti build --platform android --target emulator --device-id AVD_for_Nexus_5_by_Google

        実機にインストールするよりかはかなり速く動作確認できる。

        けどiOS Simulatorがずっと速いので開発はiOS Simulatorでやる。

         

        < Related Posts >

        2015年6月12日金曜日

        Git Shell for WindowsのデフォルトEditorをxyzzyに

        git_xyzzyGit Shell(GitHub for Windowsと一緒にインストールされる)を使っていて、コメントの編集などメモ帳が起動するので、xyzzyに変更したときの覚書。

        環境: Windows 8.1

        参考サイト

        Git Shellを起動して下記コマンドを実行
        > git config --global -e

        [core]
            autocrlf = false
            editor = 'D:\\OneDrive\\NonDependSoft\\Editor\\xyzzy\\xyzzy.exe'

        シングルクォーテーションで囲むのとバックスラッシュを2つ重ねる必要があった。

         

        < Related Posts >

        2015年6月11日木曜日

        Windows + Atom EditorでMarkdownをPreviewしながら編集

        atom手順書などをMarkdown記法で書くようにしようとしたときの覚書。

        環境: Windows 8.1 64bit

        Google ChromeやFirefoxのプラグインを調べたけど、結局Atomが一番やりやすい。

        ちなみにPhpStormにはMarkdownのプラグインがあるので、Atomに切り替える必要はない。

         

        参考

         

        目次

        1. Atomをインストール
        2. Emacsのキーバインドに変更
        3. テーマをダーク系に変更
        4. フォントの変更
        5. Markdown記法でプレビューしながら編集
        6. Atomの感想

         


        1.Atomをインストール

        AtomはGitHubが作ったエディタ。Visual Studio CodeもAtomがベースになっているらしい。

        公式ページからダウンロードしてインストール

         


        2.Emacsのキーバインドに変更

        私はWindowsとEmacsをミックスした変則的なキーバインドなので、とりあえずカーソル移動はEmacsにしたい。

        File → Open Your Keymap

        参考サイトにあるのをそのまま貼り付け。いろいろカスタマイズした。

        # Windows for Any panel
        '.platform-win32':
          # cursor
          'ctrl-f':'core:move-right'
          'ctrl-b':'core:move-left'
          'ctrl-n':'core:move-down'
          'ctrl-p':'core:move-up'
          'ctrl-h':'core:backspace'
          'ctrl-g':'core:cancel'

          # Rebind
          'ctrl-shift-f':'find-and-replace:show'
          'ctrl-alt-shift-f':'project-find:show'
          'ctrl-shift-g':'go-to-line:toggle'

          # moving tabs
          'alt-right':'pane:show-next-item'
          'alt-left':'pane:show-previous-item'

        # Windows/Editor
        '.platform-win32 atom-text-editor':
          # Emacs binds
          'ctrl-e':'editor:move-to-end-of-line'
          'ctrl-a':'editor:move-to-beginning-of-line'
          'ctrl-d':'core:delete'
          'ctrl-o':'editor:newline'
          #'ctrl-/': 'autocomplete:toggle'
          'ctrl-;': 'editor:toggle-line-comments'

        # Workspace/Editor
        'atom-workspace atom-text-editor':
          'ctrl-shift-a':'core:select-all'
          'ctrl-shift-d':'find-and-replace:select-next'

        'atom-workspace atom-text-editor:not([mini])':
          'ctrl-/': 'autocomplete:toggle'

         


        3.テーマをダーク系に変更

        File → Settings → Theme

        UI Theme: Atom Dark

        Syntax Theme: Base16 Tomorrow Dark

         


        4.フォントの変更

        参考

        エディタ内では等幅(monospace)フォント。その他はWindowsの「Meiryo UI」にする。Settings → Editor Settings

        image

        File → Open Your Stylesheet

        .tree-view {
          font-family: "Meiryo UI"
        }

        .markdown-preview {
           font-family: "Meiryo UI";
           h1, h2, h3, h4, h5, h6 {
             font-family: "Meiryo UI";
           }
        }

         


        5.Markdown記法でプレビューしながら編集

        インストール後に右クリックすると「Open with Atom」が表示される。

        ファイルを開いて、右下のPlain Textをクリック。

        「GitHub Markdown」を選択すると色が変わる。

        Packages → Markdown Preview → Toggle Preview (Ctrl + Shift + M)でプレビューされる。

        書式に関しては下記などを参考に。

         


        6.Atomの感想

        動作が重いけど、しっかり設定すれば使いやすくなりそうな予感がした。

        xyzzy + PhpStormから抜け出せそうにない。

        これはxyzzyでnodejs開発をしている様子。ツリー表示や英和・和英辞書は他でもできるけど、バッファ+フレームの考え方が便利で離れられない。

        image

         

        < Related Posts >

        2015年6月10日水曜日

        WindowsのPhpStormでGitのSSH設定

        phpstorm_git情報が少なくて戸惑ったので覚書。

        環境: Windows 8.1, PhpStorm 8.0.3 64bit

        参考サイト

         

        目次

        1. PhpStormのGit設定
        2. SSH設定
        3. fetchしてみる

         


        1.PhpStormのGit設定

        gitが未インストールの場合は前の記事を参考にインストール。

        設定画面でGitへのパスが通っているか確認

        image

         


        2.SSH設定

        PhpStormのビルトインSSHはLinuxと同じホームディレクトリの.sshを参照する。

        C:\Users\Daiki\.ssh\configを作って、下記のように編集。改行コードはLF, CR+LF関係なく動いた。

        Host gitlab.hoge.jp
                HostName gitlab.hoge.jp
                User git
                IdentityFile C:\Users\Daiki\.ssh\id_rsa.gitlab
                Port 22

        「id_rsa.gitlab」はLinux用に作ったをそのままコピー。作ったときの記事を参考に。

         


        3.fetchしてみる

        PhpStormを再起動する必要なし。

        VCS → Git → Fetchしてみて確認

         

        Git Shell(GitHub Windowsと一緒にインストールされる)の方が速くて便利。

         

        < Related Posts >

        2015年6月9日火曜日

        PhpStormにRedmineとGitLabを登録して連携すると幸せ?

        phpstorm_redmine_gitlabPhpStormにRedmineとGitLabを登録すると幸せになるか試したときの覚書。

        環境: Windows 8.1, PhpStorm 8.0.3 64bit, Redmine 3.0.3, GitLab 7.11.4

        参考サイト

         

        目次

        1. PhpStormのフォント設定
        2. Redmineの設定
        3. PhpStormにRedmineを登録
        4. チケットを確認
        5. GitLabをPhpStorm登録

         


        1.PhpStormのフォント設定

        PhpStormで日本語が文字化けしないようにフォント設定を確認

        File → Settings... → Appearance & Behavior → Appearance

        「Override default fonts by 」にチェック

        Name: Meiryo UI
        Size: 12

        ちなみにエディタ内のフォントはMonospace(等幅)フォントの「Migu 1M」を使ってる。

         


        2.Redmineの設定

        PhpStormからRedmineへアクセスするための設定。

        管理 → 設定 → 認証 → 「RESTによるWebサービスを有効にする」をチェック

         


        3.PhpStormにRedmineを登録

        File → Settings... → Tools → Tasks → Servers → 「+」(追加)→ Redmine

        image

        RedmineのログインはGoogle Appsのアカウントを使うように設定したけど、プラグイン導入前のユーザー名とパスワードでログインできた。

         


        4.チケットを確認

        Tools → Tasks & Contexts → Open Tasks
        (Shift + ALT + N)

        を開くと登録済みチケットが出ているはず。

        チケットはPhpStormにキャッシュされているものを表示するらしい。

        File → Settings... → Tools → Tasksの「Cache settings」を変更する

         


        5.GitLabをPhpStorm登録

        基本はRedmineと一緒。

        プラグインもインストールしてみたけど、結局issueをPhpStormから管理出来るようになるだけ。

        チケットはRedmineで管理するので、今のところ必要なし。

         

         

        < Related Posts >

        2015年6月8日月曜日

        WordPressを定期バックアップしてGoogle Cloud Storageに保存

        google-cloud-storage_wordpressWordPressのデータベースと添付ファイルをGoogle Cloud Storageに定期バックアップするスクリプトを書いた時の覚書。

        Amazon S3でもほとんど同じ。次期サービスのためにGoogle Cloud Storageを試してみたかった。

         

        目次

        1. Google Developers Consoleでプロジェクト作成 → バケット作成
        2. コマンドラインツール「gsutil」のインストール
        3. 自動バックアップスクリプトの仕様

         


        1.Google Developers Consoleでプロジェクト作成 → バケット作成

        管理コンソールからプロジェクト作成。

        Google Cloud Storageの公式サイトの「今すぐ試す」からいくと60日間$300の試用期間が付いてお得。

        プロジェクト作成後にバケット(クラウド上のディスクみたいなもの)を作成しておく。

         


        2.コマンドラインツール「gsutil」のインストール

        長くなったので別記事にまとめた。

         


        3.自動バックアップスクリプトの仕様

        バックアップスクリプトの仕様は下記。

        • 全てのデータベースをmysqldumpでバックアップ
        • 月初め(1日)はwp-content/uploadsを全部バックアップ
        • 3日以降は前日までの差分をバックアップ
        • ファイルはgzipでアーカイブして「2015/05」のような階層フォルダに分けてCloud Storageにアップロード
        • 複数のWordPressがインストールされている場合のも対応

        参考にしたシェルスクリプト

         

        作ったのをGitHubで公開。

         

         

        どれくらいの料金(保存容量+転送容量)が必要か分かったので、どこかのタイミングで添付ファイルはクラウドに直接保存・参照する仕組みに変えたい。

         

        < Related Posts >

        2015年6月5日金曜日

        gsutilをInstallしてGoogle Cloud Storageに接続

        google-cloud-storage_gsutilGoogle Cloud Storageにバックアップするスクリプトを書くためにgsutilをインストールしたときの覚書。

        環境: CentOS 6.6, Python 2.6.6

        公式ページを参考に。

         

        目次

        1. PyPI経由でgsutilをインストール
        2. gsutilの設定
        3. バケットを作成してみる

         


        1.PyPI経由でgsutilをインストール

        Python向けパッケージ管理システムPyPI(Python Package Index)を使う

        gsutilのインストールに必要なパッケージをインストール
        # yum install gcc openssl-devel python-devel python-setuptools libffi-devel

        PyPIのインストール
        # yum install python-pip

        gsutilのインストール
        # pip install gsutil

        アップデートするとき
        # pip install -U gsutil

         


        2.gsutilの設定

        公式ドキュメントに従う
        # gsutil config

        エラー

        Traceback (most recent call last):
          File "/usr/bin/gsutil", line 5, in <module>
            from pkg_resources import load_entry_point
        ImportError: No module named pkg_resources

        下記サイトにsetuptoolsの問題らしい。

        yum経由でインストールされたpython-setuptoolsは0.6.10だったので最新版をインストールする。
        # wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python

        確認
        # pip show setuptools
        # gsutil version -l

        gsutil設定
        # gsutil config

        表示されるURLをブラウザに貼り付けると認証コードが表示される。それをコンソールの方にコピペ。

        プロジェクトIDはデベロッパーコンソール「概要」の画面上に表示される。

        設定は.botoに保存される。

        開発用サーバーで作成した.botoを他のサーバーにコピーすればgsutil configせずに動く。

         


        3.バケットを作成してみる

        コマンドは公式サイトか「gsutil help」で確認

        バケットの一覧
        # gsutil ls

        バケットの作成
        # gsutil mb gs://cats

        バケットの名前はGoogle Cloud Storage全体で一意でなくてはならない。存在している場合はエラーになる。

        Creating gs://cats/...
        ServiceException: 409 Bucket cats already exists.

        バケットの命名規約は公式サイトで確認

        ドメイン名のようなDNSのCNAME形式(hoge.example.com)が推奨らしい。

        ただしドメイン名の場合、所有者か確認する処理が走る。所有者でないとエラーになる。

        Creating gs://backup.hoge.com/...
        AccessDeniedException: 403 The bucket you tried to create is a domain name owned by another user.

        所有者として登録する方法はSearch Console(旧Webmaster tools)から。

        ただGoogle Analyticsで認証した場合はダメだった。DNSかその他の方法で確認する必要がある。

        「backup.hoge.com」のバケットを作りたい場合は「hoge.com」で所有者確認出来れいればいい。

        ファイルを作る
        # echo "new data" | gsutil cp - gs://backup.hoge.com/test/data.txt

        フォルダだけ作ることは出来ない

        バケット削除
        # gsutil rm -r gs://hoge.com

         

        Python2.6のWarningがうざい

        /usr/lib64/python2.6/site-packages/cryptography/__init__.py:25: DeprecationWarning: Python 2.6 is no longer supported by the Python core team, please upgrade your Python.
          DeprecationWarning

        今は後回し。

         

        < Related Posts >

        2015年6月4日木曜日

        WindowsのPowerShellをLinuxのBashっぽく操作

        powershell_bashGit Shell(GitHub Windowsと一緒にインストールされる)を叩いていて、Ctrl-AやCtrl-Pの操作が出来なくてイラッとしたときの覚書。

        cmd用のClinkみたいなものが欲しい。

        環境: Windows 8.1, PowerShell 4.0

         


        < 2016/05/08 追記 >
        Windows 10になってモジュール形式で簡単にインストールできるようになった。

        参考サイト: PowerShellGet を触ってみよう - tech.guitarrapc.cóm

        まずはどんなモジュールがあるか検索
        PS> Find-Module

        使い方が分からないのでヘルプを使えるようにする
        PS> Get-Help Find-Module

        他にどんなコマンドがあるか確認
        PS> Get-Command -Module PowerShellGet

        PSReadLineをインストール
        PS> Install-Module -Name PSReadLine

        Install-Module : Administrator rights are required to install modules in 'C:\Program Files\WindowsPowerShell\Modules'.
        Log on to the computer with an account that has Administrator rights, and then try again, or install 'D:\Documents\Wind
        owsPowerShell\Modules' by adding "-Scope CurrentUser" to your command. You can also try running the Windows PowerShell
        session with elevated rights (Run as Administrator).

        言われたとおりオプションを付けてみる
        PS> Install-Module -Name PSReadLine -Scope CurrentUser

        既にモジュールがあると言われた場合はフォルダごと削除する。

        確認
        PS> Get-InstalledModule

        あとは下の手順にあるようにMicrosoft.PowerShell_profile.ps1を作る。

        Git ShellでエラーになったのでGit Shell上でも同じようにインストールする。
        PS> Install-Module -Name PSReadLine -Scope CurrentUser

        早くBashが使えるようになってほしい。。。


         

        PowerShellはモジュールという機能で拡張できるみたい

        インストール手順

        1. README.mdに書いてあるようにコンパイル済みファイルをダウンロード。
        2. 解凍して、C:\Users\[User]\Documents\WindowsPowerShell\modules\PSReadlineに置く(モジュール用PATHが通っているから)
        3. C:\Users\[User]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1を作成。下記のように記述

        Import-Module PSReadLine
        Set-PSReadlineOption -EditMode Emacs

        これでGit Shellを起動し直せばキーバインドが使えるはず

        あー、快適。。。

         

        Git Bashよりコピー(Enter)、ペースト(右クリック)、スクロールが便利。

        TortoiseGitよりGit Shellを使うようになった。Google Cloud SDK Shellを起動するよりGit Shellでgcloudを叩いた方が便利。

         

        今度は普通にPowerShellを起動するとエラー

        . : File D:\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is di
        sabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135
        170.
        At line:1 char:3
        + . 'D:\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'
        +   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            + CategoryInfo          : SecurityError: (:) [], PSSecurityException
            + FullyQualifiedErrorId : UnauthorizedAccess

         

        下記サイトを参考に

        PowerShellを管理者権限で起動
        C:> Set-ExecutionPolicy RemoteSigned

        「Y」を入力して有効に。

         

        < Related Posts >

        2015年6月3日水曜日

        JenkinsとGitLabの連携。プッシュしてジョブ実行

        gitlab_jenkinsGitLabへプッシュしたタイミングでJenkinsのジョブを実行するように設定したときの覚書。

        環境: CentOS 6.6, Jenkins 1.614, GitLab 7.10.4

        参考

         

        目次

        1. JenkinsがGitLabからclone出来るようにjenkinsユーザーを設定
        2. GitLabにjenkins用公開鍵を登録とWeb Hooks設定
        3. JenkinsにGitプラグインをインストール
        4. Jenkinsにテストジョブを作成

         


        1.JenkinsがGitLabからclone出来るようにjenkinsユーザーを設定

        jenkinsユーザーはSSH経由でcloneするので鍵認証設定。

        jenkinsのホームディレクトリを確認
        # less /etc/passwd

        ホームディレクトリに移動して認証鍵を作成
        # cd /var/lib/jenkins/
        # mkdir .ssh
        # ssh-keygen -t rsa -C
        info+jenkins@hoge.jp

        Enter file in which to save the key (/root/.ssh/id_rsa): ./.ssh/id_rsa
        Enter passphrase (empty for no passphrase): (何も入力せずにEnter)

        ファイル権限変更
        # chown jenkins. -R .ssh/
        # chmod 600 .ssh/id_rsa

        GitLabへSSH接続するときの設定
        # vi .ssh/config

        Host gitlab.hoge.jp
          User          git
          Hostname      gitlab.hoge.jp
          IdentityFile  /var/lib/jenkins/.ssh/id_rsa

         


        2.GitLabにjenkins用公開鍵を登録とWeb Hooks設定

        GitLabに管理者でログイン
        Admin area → Deploy Keys → New Deploy Key

        タイトルは「jenkins」とか適当に。Keyに先ほど生成した公開鍵「id_rsa.pub」を貼り付けて保存
        # less .ssh/id_rsa.pub

        各プロジェクトのSettings → Deploy Keysに表示されているのを「Enable」にする

        image

        このDeploy KeyはReadonlyらしいので、Jenkinsからラベルを付けたりする場合はjenkinsユーザーをプロジェクトに追加した方がいいかもしれない。

        次はWeb Hooksに移動。Jenkinsに通知するURLを登録。

        URL: http://jenkins.hoge.jp/gitlab/build_now

        このURLはJenkinsにプラグインを導入後に有効になる。

         


        3.JenkinsにGitプラグインをインストール

        Jenkinsの管理 → プラグインの管理

        フィルターに「git」と入力。チェックしてインストールするのは

        • Git Plugin
        • Gitlab Hook Plugin

         

         


        4.Jenkinsにテストジョブを作成

        Jenkinsのトップに戻って「新規ジョブ作成」

        ジョブ名: hello-world

        「フリースタイル・プロジェクトのビルド」を選択。

        ソースコード管理: Git
        Repository URL: git@gitlab.hoge.jp:suganuma/hello-world.git
        Branches to build: (空白にして全部を対象に)
        E-mail通知: (自分のメールアドレス)

        あとはデフォルトでOK。「Credentials」を指定しなくても読み取り専用でアクセス出来る。

        プッシュしてみて確認。

        ログを監視しながらだとわかりやすい。
        # tail -f /var/log/jenkins/jenkins.log

         

        あとは実際に自動化する処理を追加

        最近はデプロイまで自動化する仕組みが一般化されつつある。

         

        < Related Posts >

        2015年6月2日火曜日

        CentOSにJenkinsをInstall

        jenkins_centosGitLabと連携して開発サイクルを自動化しようとJenkinsを導入したときの覚書。

        環境: CentOS 6.6

         

        目次

        • JenkinsをYUM経由でインストール
        • JDKをインストールしてJenkins起動
        • Nginxのリバースプロキシ設定
        • ログイン設定

         


        1.JenkinsをYUM経由でインストール

        公式ページを参考に

        # wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
        # rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
        # yum install jenkins

        今使用中のポートを確認
        # netstat -ant

        8080はGitLabのUnicornが使用しているので変更する
        # vi /etc/sysconfig/jenkins

        JENKINS_PORT="8081"

        timezoneを日本にする

        JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Tokyo"

        自動起動するように
        # chkconfig jenkins on

        起動
        # /etc/rc.d/init.d/jenkins start

        Starting Jenkins bash: /usr/bin/java: そのようなファイルやディレクトリはありません

        Javaがないって怒られた。

         


        2.JDKをインストールしてJenkins起動

        YUM経由でインストールする。
        # yum install java-1.8.0-openjdk

        Jenkins起動
        # /etc/rc.d/init.d/jenkins start

         

         


        3.Nginxのリバースプロキシ設定

        公式Wikiを参考に。

        Nginxの設定
        # vi /etc/nginx/conf.d/05_jenkins.conf

        server {
            listen       80;
            server_name  jenkins.hoge.jp;

            access_log /var/log/nginx/jenkins.access.log;
            error_log /var/log/nginx/jenkins.error.log;

            location = /robots.txt  { access_log off; log_not_found off; }
            location = /favicon.ico { access_log off; log_not_found off; }

            ### Reverse Proxy for Jenkins
            ### @see https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy
            location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_pass http://127.0.0.1:8081;
                proxy_connect_timeout   150;
                proxy_send_timeout      100;
                proxy_read_timeout      100;
                proxy_buffers           4 32k;
                client_max_body_size    8m;
                client_body_buffer_size 128k;
            }
        }

        Nginx設定再読み込み
        # /etc/rc.d/init.d/nginx configtest
        # /etc/rc.d/init.d/nginx reload

        ブラウザで確認

        Jenkinsの管理 → プラグインの管理
        からプラグインを最新にアップデート

         


        4.ログイン設定

        デフォルトで公開されているのでログインを必須にする。

        Jenkinsの管理 → グローバルセキュリティの設定

        「セキュリティの有効化」にチェック
        「Jenkinsのユーザーデータベース」を選択
        「ユーザーにサインアップを許可」にチェック

        権限の管理
        「ログイン済みユーザーに許可」を選択

        保存後にサインアップ。

        その後ログインユーザーしかアクセス出来ないようにする。

        「ユーザーにサインアップを許可」のチェックをはずす

        権限の管理
        「行列による権限設定」を選択
        登録したユーザー名を入力して追加
        右端をクリックして全部にチェックを付ける

        ログアウトして確認

         

         

        < Related Posts >

        Related Posts Plugin for WordPress, Blogger...

        Blog Archives