実践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)へ

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

RockyLinux

新機能(systemdとfirewalld)

CentOS8
CentOS8のインストール〜ネットワークの設定ほか
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
DHCPサーバー
FTPサーバー
FTPS(FTP over SSL/TLS)
Webサーバー
  アクセス解析ツールAwstats
Mail(Dovecot&Postfix)サーバー
MariaDB(MySQL)サーバー
SSHサーバー
Sambaサーバー
openVPNサーバー

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
ドメインの追加
PHP7.1をインストール

CentOS5〜6

SELinux

Cプログラミング


●その他
クラウド Amazon EC2
Raspberry Piで遊ぶ
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く


●趣味の世界
相対性理論
量子力学
群論
熱力学・統計力学
解析力学
物理でつかう数学
超弦理論(ノート作成中)