phpUploaderをインストール(大きいファイルの転送のために)
大きいファイルをネットでやり取りするのってPCの環境が合わなかったりして意外と大変だったりしますよね。
転送サービスは便利だけど遅いし・・・
今回はphpUploaderというPHPで書かれているファイルアップローダーがMOONGIFTさんに紹介されていたので、面白そうだったのでインストールさせてもらいました。
サーバの環境が整っていなかったり、
特定のフォルダにアクセス制限掛けたり、
ファイルのアップロードサイズを変更したり、
Basic認証を付けたり、
と数年前に1度やったかもな〜と思いながら、再度調べ直して設定してみました。
環境
- Ubuntu14
- Nginx
- php5.5
自分のスキルでは少々敷居が高かったけど、なんとかインストール成功して、稼働するところまで出来るようになりました。
1. phpからsqliteが使えなかった
sqliteを使ってるようなんですが、まず、DB接続でエラーになってしまいました。
原因がなかなか分からなかったのですが、簡単な接続するためのテストプログラム動かしたら、ただ単にphp5-sqliteをインストールしてなかっただけでした・・・。
$ sudo aptitude install php5-sqlite
(参考)Debian(Ubuntu) で PHP をインストールしてもデフォルトでSQLiteは動作しない
2. 特定のフォルダにアクセス制限
phpUploaderではconfigフォルダとdataフォルダにアクセス制限をしなければいけないので、nginxのバーチャルホスト設定ファイルに記述します。
location / { location /(config|db)/ { allow 127.0.0.1; deny all; } (省略) }
(参考)Nginxで特定のディレクトリにアクセス制限をかける
3. NginxのとPHPのアップロードファイルサイズの変更
NginxとPHPの2箇所に設定します。
nginxのバーチャルホスト設定ファイルに、再度記入
server { (省略) client_max_body_size 50M; (省略) }
php.iniを修正
$ sudo emacs /etc/php5/cli/php.ini
upload_max_filesize = 50M
(参考)nginxのPHPのアップロードファイルサイズの変更方法。
4. アクセス制限
誰でもアクセスしてほしくないので、とりあえずBasic認証にしてみます。
apache2-utilsはインストールしていたので、以前の(もう使っていないIDとパスワード)を消して再設定しました。
$ sudo htpasswd -c /etc/nginx/.htpasswd [ID]
nginxのバーチャルホスト設定ファイルに、再度記入
location / { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; (省略) }
(参考)Nginx で Basic 認証
色々勉強になり、ソフトも使えるようになり良かったです。