開発環境の構築


初めてのVagrant - MongoDBを試す -

MongoDB をインストール

Ubuntu Linux 19.04にMongoDBをインストールします。

$ sudo apt -y install mongodb

このままでは再起動時にMongoDBが停止したままです。自動起動するように次のコマンドを実行して設定を変更します。

$ sudo systemctl enable mongodb

MongoDBを起動します。

$ sudo systemctl start mongodb
$ sudo systemctl status mongodb
● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-01-12 15:03:35 UTC; 14s ago
     Docs: man:mongod(1)
 Main PID: 32416 (mongod)
    Tasks: 23 (limit: 1146)
   Memory: 156.1M
   CGroup: /system.slice/mongodb.service
           └─32416 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Jan 12 15:03:35 ubuntu-disco systemd[1]: Started An object/document-oriented database.

WebでMongoDBを操作する

MongoDBを利用するプログラムを作成する際にはDBに登録された内容を確認したくなります。このような欲求に答えてGUIツールをインストールしたいと思います。phpMyAdminのMongoDB版を探すことにします。
Googleで検索をかけるとphpMoAdminが見つかりました。しかし3年前の更新を最後にメンテナンスが止まっているようです。また、PHP7.2で利用している報告が確認できませんでした。
他にはないのかと探していたところ、RockMongoを見つけました。Running RockMongo on PHP7によるとPHP 7.0で利用しているようです。
今回はRockMongoをインストールしてみたいと思います。

MongoDB PHPドライバをインストール

peclをインストールします。

$ sudo apt -y install php-pear php7.2-dev

MongoDBドライバをインストールします。

$ sudo pecl install mongodb
             :
Build process completed successfully
Installing '/usr/lib/php/20170718/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.6.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mongodb.so" to php.ini

作成されたMongoDBドライバをPHPで利用されるように設定を行います。

$ sudo vi /etc/php/7.2/mods-available/mongodb.ini
/etc/php/7.2/mods-available/mongodb.ini
; configuration for php mongodb module
; priority=20
extension=mongodb.so
$ sudo ln -s /etc/php/7.2/mods-available/mongodb.ini /etc/php/7.2/apache2/conf.d/20-mongodb.ini
$ sudo ln -s /etc/php/7.2/mods-available/mongodb.ini /etc/php/7.2/cli/conf.d/20-mongodb.ini

RockMongoをインストール

GitHubより最新のプログラムをダウンロードします。
筆者はZip形式を選択しました。

ダウンロードしたZipファイルを解凍して/var/www/rockmongoに展開します。

$ unzip rockmongo-php7-master.zip
$ sudo mkdir /var/www/rockmongo
$ sudo chown vagrant:vagrant /var/www/rockmongo/
$ cd rockmongo-php7-master/
$ mv * /var/www/rockmongo/

Apache2からアクセスできるように設定を行います。

$ sudo vi /etc/apache2/sites-available/000-default.conf
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
             :
        <IfModule alias_module>
                Alias /rockmongo /var/www/rockmongo
                Alias /rockMongo /var/www/rockmongo
                Alias /RockMongo /var/www/rockmongo
                <Directory /var/www/rockmongo/>
                        Options Indexes FollowSymLinks
                        AllowOverride None
                        Require all granted
                </Directory>
        </IfModule>
$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

サーバー名を指定していないので警告が発生しました。登録しましょう。

$ sudo vi /etc/apache2/conf-available/fqdn.conf
/etc/apache2/conf-available/fqdn.conf
ServerName hogeserver
$ sudo a2enconf fqdn
Enabling conf fqdn.
To activate the new configuration, you need to run:
  systemctl reload apache2
$ sudo apache2ctl configtest
Syntax OK

設定ファイルの確認ができましたのでApacheを再起動します。

$ sudo service apache2 restart

早速ブラウザで確認してみましょう。


UserNameとPasswordにadminを入力してLogin and Rockボタンをクリックします。

起動確認ができました。