2016年10月23日日曜日

mongo dbに新しいユーザーを追加する方法

mongo dbに新しいユーザーを追加する方法:
1、まずユーザー一覧を確認します。

use admin;
db.system.users.find();
{ "_id" : "admin.selector", "user" : "selector", "db" : "admin", "credentials" : { "MONGODB-CR" : "1c4715405e220adc28bd75e8c71ff741" }, "roles" : [ { "role" : "read", "db" : "admin" } ] }
{ "_id" : "admin.updator", "user" : "updator", "db" : "admin", "credentials" : { "MONGODB-CR" : "f67c7e31eacd78db5689f38c04120f13" }, "roles" : [ { "role" : "readWrite", "db" : "admin" } ] }
2、新しいユーザーを作成します。
    ここに注意してほしいのは、作成する前対象データベースを選択しておく必要 例えば、productというデータベースに対して、selectorユーザーとupdatorユーザーを作成したい場合は、 以下のコマンドを実行します。
use product;
db.createUser({user: "selector", pwd: "Ln5GCPfB", roles: [{role: "read", db: "product"}]}); 
db.createUser({user: "updator", pwd: "Ln5GCPfB", roles: [{role: "readWrite", db: "product"}]});

Laravelで画像処理ライブラリIntervention Imageを使えるまでの流れ

Thumbnailの作成、画像のサイズ変更など様々な機能が有するライブラリIntervention Imageを自分の環境で使えるまでの流れをメモしていきたいと思います。

1、まずPhpの拡張モジュールGDをインストールしておき必要があります。
    コマンド、「php -i | grep gd」で自分の環境がphp-gdインストールされたかとかを確認します。

  もし何も表示されなかったら、以下の手順でphp-gdをインストールしてください。  
  
  以下、php-gdのインストール方法:
  ① 「yun list | grep gd」でインストールできるphp-gdパッケージを確認します。
     自分のphpバージョンに合うパッケージを選びます。
    例え自分のphpバージョンは5.6の場合は、
    以下のコマンドでphp-gdをインストールします。
   yum install php56-php-gd.x86_64 --enablerepo=remi

  ② インストールしたパッケージをphpが見えるように設定
    remiでインストールしたパッケージはデフォルト以下の場所に配置されます。
   /opt/remi/php56/root/usr/lib64/php/modules/gd.so
    
    php.iniファイルがパッケージをロードできるように、以下コマンドでシンボルリンクを作成しておきます。
     ln -s /opt/remi/php56/root/usr/lib64/php/modules/gd.so /usr/lib64/php/modules/gd.so

    ③ 最後「/etc/php.ini」に以下を追記して、NginxかApache(sudo service httpd restart)を再起動します。
      extension=gd.so
※時にはApacheを再起動しても反映されない時があります。PCを再起動すれば大体問題がなくなります。
    
2、 「composer.json」ファイルに、「"intervention/image": "dev-master"」を追加
   例:

"require": {
"laravel/framework": "5.1.*",
"intervention/image": "dev-master"
}

3、以下のコマンドを実行します。
  $ composer install
4、config/app.phpファイルを開いて、$providers arrayのところに、以下を追記
  Intervention\Image\ImageServiceProvider::class,
5、config/app.phpファイルの$aliases arrayのところに、以下を追記
  'Image' => Intervention\Image\Facades\Image::class,
6、最後念のため、以下のコマンドも実行します。
  $ composer update

2016年10月22日土曜日

php laravelでアップロードしたファイルの名前と絶対パスの取得方法

phpのlaravelで、UploadedFileからアップロードしたファイルの絶対パス($_FILE['tmp_name'])の取得方法は?

UploadedFileを見ると、以下の情報が見れます。

array(
       'test' => false,
       'originalName' => 'triangle-in-the-mountains.jpg',
       'mimeType' => 'image/jpeg',
       'size' => 463833,
       'error' => 0,
)
phpのように、$_FILE['tmp_name']を取得したい時があります。

その時、「getRealPath()」を使えば、アップロードされたtmp_nameを取得することができます。

「$uploadedFile->getRealPath();」で「/tmp/php5Wx0aJ」のような結果を得られます。

もちろん、getFilename() と getPathname() も使えます。

最後補足、「UploadedFile」ファイルはphpの「File」を継承しています。