Make Local Happiness

自分の幸せは自分で作る!!!

nginx+mongo+rails環境でmongodbの管理ツールがほしい

タイトルの通りですが、

mongodbの管理ツールが欲しいこの頃です。

私はよくphpを使用しているので、

普段はphpMyAdminを使用しているのですが、

それらしいツールはないかと調べてみました。

 

phpを使用したものだと

以下の2つが検索によく引っかかりました。

どちらかというと「rockmongo」の方がいいという意見も多かったのですが、

どちらも試してみたいと思います。

・moadmin

・rockmongo

 

まずは普段慣れたApache環境がないので、

nginxでphpを利用するところから初めます。

 

参考はこちらです。そのままやりました。

http://perezvon.hatenablog.com/entry/20091016/1255713335

 

まずはfastcgiを利用できるか確認

 

 

$ php -i | grep fastcgi
Configure Command =>  './configure'  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-amazon-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--without-pear' '--with-bz2' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--enable-gd-native-ttf' '--with-t1lib=/usr' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--with-kerberos' '--enable-ucd-snmp-hack' '--enable-shmop' '--enable-calendar' '--without-sqlite' '--with-libxml-dir=/usr' '--enable-xml' '--with-system-tzdata' '--with-mhash' '--enable-force-cgi-redirect' '--libdir=/usr/lib64/php' '--enable-pcntl' '--with-imap=shared' '--with-imap-ssl' '--enable-mbstring=shared' '--enable-mbregex' '--with-gd=shared' '--enable-bcmath=shared' '--enable-dba=shared' '--with-db4=/usr' '--with-xmlrpc=shared' '--with-ldap=shared' '--with-ldap-sasl' '--enable-mysqlnd=shared' '--with-mysql=shared,mysqlnd' '--with-mysqli=shared,mysqlnd' '--enable-dom=shared' '--with-pgsql=shared' '--enable-wddx=shared' '--with-snmp=shared,/usr' '--enable-soap=shared' '--with-xsl=shared,/usr' '--enable-xmlreader=shared' '--enable-xmlwriter=shared' '--with-curl=shared,/usr' '--enable-fastcgi' '--enable-pdo=shared' '--with-pdo-odbc=shared,unixODBC,/usr' '--with-pdo-mysql=shared,mysqlnd' '--with-pdo-pgsql=shared,/usr' '--with-pdo-sqlite=shared,/usr' '--with-pdo-dblib=shared,/usr' '--with-sqlite3=shared,/usr' '--enable-json=shared' '--enable-zip=shared,/usr' '--without-readline' '--with-libedit' '--with-pspell=shared' '--enable-phar=shared' '--with-mcrypt=shared,/usr' '--with-tidy=shared,/usr' '--with-mssql=shared,/usr' '--enable-sysvmsg=shared' '--enable-sysvshm=shared' '--enable-sysvsem=shared' '--enable-posix=shared' '--with-unixODBC=shared,/usr' '--enable-fileinfo=shared' '--enable-intl=shared' '--with-icu-dir=/usr' '--with-enchant=shared,/usr' '--with-recode=shared,/usr'

 

次にnginxの設定

公開ディレクトリは/var/www/htmlにしました。

$ vim /etc/nginx/sites-available/goto.php.examle.com
server { listen 80; server_name goto.php.examle.com; location / { fastcgi_pass 127.0.0.1:8082; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; include "/etc/nginx/fastcgi_params"; } }

 

nginxはsites-availableに設定ファイルをおき、

sites-enabledにシンボリックリンクを張るようです

$ ln -s /etc/nginx/sites-available/goto.php.examle.com /etc/nginx/sites-enabled

 

上記のテストとして、

$ sudo -u apache /usr/bin/php-cgi -q -b 127.0.0.1:8082

プロセスをps -axで確認し立ち上がっていれば成功です。

 

次にFastCGIプロセスの管理をやります。

参考URLの通り、spawn-fcgiを使用します。

 

$ sudo yum install spawn-fcgi

 

spawn-fcgiを入れたら、/etc/init.d/php-cgiのような名前でinitスクリプトを作成します。

$ sudo vim /etc/init.d/php-cgi
#!/bin/bash # # php-fcgi PHP FastCGI daemon # # chkconfig: - 85 15 # config: /etc/sysconfig/php-cgi # pidfile: /var/run/php-cgi.pid # Source function library. . /etc/rc.d/init.d/functions PHP=/usr/bin/php-cgi PIDFILE=/var/run/php-cgi.pid HOST=127.0.0.1 PORT=8082 CHILDREN=5 USER=apache GROUP=apache if [ -f /etc/sysconfig/php-cgi ]; then . /etc/sysconfig/php-cgi fi RETVAL=0 case "$1" in start) echo -n $"Starting php-cgi: " daemon --pidfile $PIDFILE spawn-fcgi -u $USER -g $GROUP -f $PHP -a $HOST -p $PORT -C $CHILDREN -P $PIDFILE RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/php-cgi ;; stop) echo -n $"Stopping php-cgi: " killproc -p $PIDFILE spawn-fcgi RETVAL=$? echo if [ $RETVAL -eq 0 ] ; then rm -f /var/lock/subsys/php-cgi rm -f $PIDFILE fi ;; restart) stop start ;; status) status $PHP ;; *) echo"Usage: php-cgi {start|stop|status|restart}" exit 1 ;; esac exit $RETVAL

 

稼働確認をします。

$ sudo /sbin/service php-cgi start

 

その上で先ほどのnginxで設定したSCRIPT_FILENAMEのパスに、

$ sudo vim /var/www/html/index.php

<?php phpinfo();

のようなphpファイルを用意してブラウザからアクセスして見られれば成功です。

 

次に本題の以下をダウンロードします。

・moadmin

・rockmongo 

 

まずはrockmongoからいきます。

参考はこちらです。

http://studio3104.hatenablog.com/entry/2012/03/05/104039

既にmongodbは使用しているので、

rockmongoのダウンロードから始めます。

 

# mkdir /var/www/html/rockmongo
# cd /var/www/html/rockmongo
# wget http://rock-php.googlecode.com/files/rockmongo-v1.1.0.zip
# unzip rockmongo-v1.1.0.zip

 

関連パッケージインストール

$ sudo  yum install php53-devel httpd-devel.x86_64 php-pear php-devel
$ sudo pecl install mongo

  

phpでmongoを利用できるように設定

$ vim /etc/php.ini

[追記]

extension=mongo.so 

 

ログインユーザを変える場合は以下のファイルを編集します。

$vim  /var/www/rockmongo/config.php

$MONGO["servers"][$i]["control_users"]["admin"] = "admin"; //one of control users [USERNAME]=PASSWORD, works only if mongo_auth=false

 

これで、ホスト名を設定し、アクセスすれば見れると思います。

goto.php.example.com/rockmongo

f:id:iwate_takayu:20131223150946p:plain

 

f:id:iwate_takayu:20131223151202p:plain

f:id:iwate_takayu:20131223151524p:plain

 

phpmoadminの話はまた次回にします。