※ CentOS 7.8にてmod_uploaderが使用できない状況です。以下の通りにやってもmakeでエラーが出ます。 |
---|
アップローダ(mod_uploader) |
ファイルをサーバにアップロードできる仕組みを実現するのが、アップローダ。 FTPでもできますが、Webブラウザから手軽にアップロードでき、ファイル毎にダウンロードや削除するためのパスワードを設定することもできるアップローダを設置してみました。(試験的に公開しています) |
アップローダにも色々なものがありますが、動作が速くて設置が簡単な、mod_uploaderというApache用のモジュールを採用しました。 |
mod_uploaderのパッケージをダウンロードし、モジュールの作成とインストールを実行します。 当サイトではしばらくバージョン3.1.1を使用していましたが、最近(2018年7月)OSをクリーンインストールした際にApacheが2.4になるとコンパイルできないことが発覚し、Apache2.4に対応したバージョン3.2.0を新たにインストールしました。 [root@sv01 ~]# wget http://green-rabbit.sakura.ne.jp/mod_uploader/dist/mod_uploader-3.2.0.tgz [root@sv01 ~]# tar xzvf mod_uploader-3.2.0.tgz [root@sv01 ~]# cd mod_uploader-3.2.0 以下は、./configureを実行する際に足りないと言われたもので、yumでインストールしました。 環境によって異なると思いますので、足りないと言われたものについてはインストールしていきましょう。 [root@sv01 mod_uploader-3.2.0]# yum -y install gcc-c++.x86_64 [root@sv01 mod_uploader-3.2.0]# yum -y install httpd-devel.x86_64 [root@sv01 mod_uploader-3.2.0]# yum -y install libtool.x86_64 [root@sv01 mod_uploader-3.2.0]# yum -y install ImageMagick-c++-devel.x86_64 以下、モジュール作成とインストール。 [root@sv01 mod_uploader-3.2.0]# ./configure --enable-thumbnail [root@sv01 mod_uploader-3.2.0]# make [root@sv01 mod_uploader-3.2.0]# make -f GNUmakefile.apache install上記を行うと、httpd.confにmod_uploaderの記述が追加されます。 これだけでは有効になりませんので、httpd.confのあるディレクトリから見て、../conf.dに、mod_uploader.conf(.confで終わっていればファイル名は何でもいい)を作成します うちの場合は(DocumentRoot)/uploaderに設置するため、以下の内容にしました。 <Location /uploader> SetHandler uploader UploaderBaseUrl "https://wk64.com/uploader" UploaderDataDirectory "/var/www/Uploader/data" UploaderFileDirectory "/var/www/Uploader/file" UploaderThumbDirectory "/var/www/Uploader/thumb" UploaderTempDirectory "/var/www/Uploader/temp" UploaderTotalFileSizeLimit 209715200 UploaderTotalFileNumberLimit 1000 UploaderFileSizeLimit 1048576 UploaderPerPageItemNumber 50 UploaderIndexViewTemplate "/var/www/Uploader/tmpl/index.htm" UploaderInfoViewTemplate "/var/www/Uploader/tmpl/info.htm" UploaderProgressViewTemplate "/var/www/Uploader/tmpl/progress.htm" UploaderDownloadViewTemplate "/var/www/Uploader/tmpl/download.htm" UploaderThumbnailViewTemplate "/var/www/Uploader/tmpl/thumbnail.htm" UploaderAdminViewTemplate "/var/www/Uploader/tmpl/admin.htm" UploaderErrorViewTemplate "/var/www/Uploader/tmpl/error.htm" </Location> Alias /up_img "/var/www/Uploader/img" Alias /up_css "/var/www/Uploader/css" Alias /up_js "/var/www/Uploader/js"基本的にはmod_uploaderのドキュメントにあるサンプルと同じで、URL・ディレクトリとファイルサイズのみ変えました。 また、実際のディレクトリを作成し、必要なファイルをmod_uploaderのパッケージを展開してできたディレクトリよりコピーします。 必要なディレクトリを作成する。 [root@sv01 ~]# mkdir -p /var/www/Uploader/data ディレクトリ(ファイル含む)をコピーする。 [root@sv01 ~]# cd /root/mod_uploader-3.2.0(mod_uploader-3.2.0.tgzを/root直下に展開していた場合) [root@sv01 ~]# cp -R file /var/www/Uploader/ [root@sv01 ~]# cp -R thumb /var/www/Uploader/ [root@sv01 ~]# cp -R temp /var/www/Uploader/ [root@sv01 ~]# cp -R img /var/www/Uploader/ [root@sv01 ~]# cp -R css /var/www/Uploader/ [root@sv01 ~]# cp -R js /var/www/Uploader/ [root@sv01 ~]# cp -R tmpl /var/www/Uploader/ 各ディレクトリをApacheの実行ユーザで読み書き可能にする。 [root@sv01 ~]# chown -R apache:apache /var/www/Uploader/*あとはhttpdを再起動すれば、mod_uploaderが有効になります。 [root@sv01 ~]# systemctl restart httpdmod_uploader.confで指定したURL(https://wk64.com/uploader/)にアクセスすると、アップローダの画面が表示されます。 当サイトのアップローダも、試験的に公開しています。現在の設定は、1ファイルにつき最大1024MBで、1,000ファイルまたは合計200GBまでアップロードできるようにしています。 あくまでも動作確認用ですので、アップロードされたファイルを予告無しに削除したり、アップローダを公開停止にすることもありますので、大切な用途には使わないようにしてください。 ちなみに、https://wk64.com/uploader/adminにアクセスすると、管理画面が表示されます。削除パスワードがわからないファイルを強制削除することができます。私も監視しますが、偶然違法なファイルなど見つけたら、削除しておいていただけると助かります。 |