自分のサーバーに画像を上げてインターネットに公開したいといった時に,いままでscpでアップロードしていたのだが,あまりに不便なのでアップローダを作った.

ファイルのアップロード|PHP Laboを参考に /var/www/html/upload/にindex.htmlとupload.phpを作成した. アップロードしたファイルは/var/www/html/upload/filesではなく,/var/www/filesに置きたかったので,upload.phpの"files/"の部分は,"/var/www/files/"に書き換えた.

次にConoHaのコンソールからCNAMEでfilesを追加し,/etc/http/conf/httpd.conf

<VirtualHost *:80>
    DocumentRoot /var/www/files
    ServerName files.owl8.net
</VirtualHost>

と書き足してsudo service httpd restartすれば一応アップローダは完成である.

自分の環境だと最初にphpが入ってなかったのでsudo yum install phpした.

しかしこのままだと誰でも任意のファイルがアップロードできてしまってあまりうれしくない. アップロードしたファイルは無条件にfiles.owl8.netに置かれるのでfiles.owl8.netに任意のサイトが作れることになってしまい,かなり危険である. そこで最初はパスワード認証付きのものを考えていたが,VPN内からしかアクセス出来ないようにしたほうが安全で作るのも楽だという結論に至った.

/etc/http/conf/httpd.confに,

<Directory "/var/www/files/upload">
    Order   deny,allow
    Deny    from all
    Allow   from [VPNのネットワークアドレス]/[VPNのマスク長]
</Directory>

と書き足せばVPN以外からのアクセスを弾ける.

以下に使用例を示す.

使用例1 使用例2

upload.phpを少し書き換えてアップロードされたファイルのURLを表示させるようにしている.