実践Linux
CentOS7        CentOS7 目次へ  TOP(HOME)へ


ブラウザでファイルの受け渡し アップロード・ダウンロード   2016年7月

doropzoneを使用して、ドラッグ&ドロップでアップロードできるようにしてみました。

システムのダウンロード 解凍して使ってください。

 最初のメニュー画面


filesデクトリは、ファイルのやり取りをする場所となりますので、読み書きができる属性に変更してください。
 ユーザー:apache グループ:apache  ユーザーとグループには「作成と削除」
また、uploadディレクトリにはDigest認証を設定しておくとよいでしょう。

/etc/php.iniの編集(アップロードできるファイルのサイズを設定。)
 post_max_size = 200M  672行
 file_uploads = On  791行
 upload_max_filesize = 200M  800行
 max_file_uploads = 20  803行
編集したらhttpdの再起動。

SElinux
しかし、これだけでは アップロードできないことが判明。
調査
 permissiveモードにする  # setenforce 0
 この状態でアップロードを試し、auditのログをとる。
 enforcingモードに戻しておくのをわすれないように! # setenforce 1
 ログが溜まりすぎている場合は、/var/log/audit/audit.logをいったん削除して、auditdサービスを再起動しておく。audit.logが刷新されるので、それからログをとるとよい。(再起動は、# systemctl restart auditdでは失敗する。従来どおりのコマンドも使 えるので、# service auditd restartで再起動。)
 ログから足りない部分を解析する。
 # audit2allow -a -l -m mylocal
 これを見てみると、ポリシーhttpd_unified をONにすればよいことがわかる。
 # getsebool -a | grep http
 # setsebool -P httpd_unified on

filesディレクトリに容量制限
/var/www/html/upload/filesディレクトリに256MBの容量制限をかけてみます。
指定サイズの仮想ディスクを作成し、サイズ制限をかけたいディレクトリに作成した仮想ディスクをマウントしてしまうという方法です。

@指定サイズの仮想ディスクを作成する。256MBの領域、「files.fs」を確保する。
# dd if=/dev/zero of=/var/www/html/upload/files.fs bs=1M count=256
1M×256のサイズが確保される。

A仮想ディスクをフォーマットする。
# mke2fs -t ext4 /var/www/html/upload/files.fs (# mkfs.ext4 /var/www/html/upload/files.fs)

Bフォーマットした仮想ディスクをサイズ制限をかけたいディレクトリにマウントする。
/var/www/html/upload/filesディレクトリがない場合は、作成しておきます。
# mkdir /var/www/html/upload/files
ユーザー:apache グループ:apache  ユーザーとグループには「作成と削除」
マウント
# mount -o loop -t ext4 /var/www/html/upload/files.fs /var/www/html/upload/files

Cマウントした状態で、/var/www/html/upload/filesのアクセス権を変更する。(マウントすると権限が変わってしまうようだ。)
# chown apache:apache /var/www/html/upload/files
さらに、apacheユーザーとapacheグループには「作成と削除」権限を付与。
また、SElinuxの調整が必要。
# restorecon -F /var/www/html/upload/files

削除
# umount /var/www/html/upload/files
# rm /var/www/html/upload/files.fs

起動時に自動マウントする
etc/rc.d/rc.localファイルに、Bのmountコマンドを記述しておく。
さらに、rc.localに実行権を与えておく。(CentOS7ではデフォルトで、rc.localに実行権がないので注意。)


アップロード画面


ダウンロード画面


削除画面



TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
  EC-CUBEショッピングサイト構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ストリーミングサーバーRed5
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
audit2allowを使い問題の解決
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く