【学問のすすめ】中世ヨーロッパ写字生のように黙って静かに手を動かすブログ

これまで習ったことや学んだことを記事にまとめています。ITネタとChromebookネタが多いです。

【OpenUpload】CentOSへのインストール手順(成功)

f:id:pesia_one:20180921213034p:plain:w400

CentOS6OpenUploadをインストールする手順をまとめました。
OpenUploadはOSSで配布されているファイル転送システムです

 

はじめに

OpenUploadとは

OpenUploadとは、有限会社ディアイピイ(以下 DIP社)の開発したOSSのファイル転送システムです
これを使うことで「宅ファイル便」や「Firestrage」のようなWebサービスを自前で用意することができます。

www.d-ip.jp

プログラムはPHPで作成されており、同社サイトのダウンロードページから取得することができます。
英語のシステム紹介ページ???のようなものもあります。

openupload.sourceforge.net

 

動作を確認した環境

今回OpenUploadを下記の環境にインストールし動作するかどうかを試しました
実機へのインストールや外部からのアクセスは試していません。

  • 仮想環境の構築:Vagrant 2.1.5
  • ゲストOS:CentOS 6.8 (bento/centos-6.8)
  • ファイル転送システム:OpenUpload 0.4-rc1日本語化適用版
  • 環境1:Apache2
  • 環境2:PHP 5.3.3
  • 環境3:mySQL 14.14
  • ブラウザ:Opera 55.0(世界最高のブラウザ)  

期待する動作

インストールにあたって期待する動作を下記のように設定しました。

  • Operaからlocalhost宛てでアクセスできる
  • ブラウザからの利用にあたってエラーが表示されない
  • ファイルをアップロードすることができる
  • ファイルをダウンロードするためのリンクが生成される
  • メインの機能が正常に動作する(プラグインは範囲外)

インストール後にここで挙げたことだけはできることを確認しました。

 

インストール手順

基本設定

CentOS 6のインストールが完了した直後の操作です。

sudo yum -y update
sudo yum -y install vim vim-common vim-enhanced tree

sudo vim ~/.vimrc
# ファイルに下記を入力して保存
    - set number
    - hi Comment ctermfg=gray

パッケージを更新し、操作に必要なツールvim」と「tree」をインストールします。
今回の手順では「tree」は使いませんが、トラブル発生時にディレクトリ構成を確認するため最初にインストールをしておきます。

その下のファイル「~/.vimrc」への書き込みはvim画面を見やすくするためのものです。
「set number」で行番号が表示され、「hi Comment ctermfg=gray」でコメントアウトを灰色で表示します。これをしないとコメントアウト保護色になって読めません

 

ツールの取得

続いてOpenUploadの動作環境となるツールをインストールします。

sudo yum -y install httpd
httpd -v
# バージョンを表示しインストールを確認する

sudo yum -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring php-cli php-fpm php-dev php-zip php-pgsql php-mysql
php -v
# バージョンを表示しインストールを確認する

sudo yum -y install mysql-server

PHPとApache2、MySQLをインストールします。PHP7.Xをインストールするとエラーが発生します。必ずPHP5.3.3であることを確認してください。
また、OpenUploadではPosgreSQLに対応しているとありますが、実際に試したところブラウザ画面でエラーが発生しユーザー登録ができなくなりました。
そのため、とにかく使ってみたいだけであればMySQLでの構築を強くお勧めします。

Apache2はデフォルトでインストールすれば問題ありません。特に注意する点はないです。

 

Apache2の設定

Apache2で設定する内容は下記の通りです。

sudo vim /etc/httpd/conf/httpd.conf
# ファイル内の記述を下記のように変更して保存
    - 44行目:ServerTokens Prod
    - 76行目:KeepAlive On
    - 262行目:ServerAdmin 管理者のメールアドレス(例:example@example.com)
    - 292行目:DocumentRoot "/var/www/openupload"
    - 338行目:AllowOverride All
    - 402行目:DirectoryIndex index.html index.htm index.php
    - 536行目:ServerSignature Off
sudo /etc/rc.d/init.d/httpd restart
sudo chkconfig httpd on 

ファイル「/etc/httpd/conf/httpd.conf」を編集しApache2の基本設定を変更します。
「44行目:ServerTokens Prod」送信されるサーバの情報を最低限に制限し「Server:Apache」とのみ表示されるようになります。
「76行目:KeepAlive On」一度接続したらその接続を保持し続けるようになります。これがOffになっているとリクエストごとに接続/切断が行われるためページの反応がおそくなります。
「338行目:AllowOverride All」で上位で設定した設定値を、下位の設定で変更できるようにパーミッションが与えられます。
「536行目:ServerSignature Off」エラー時にシステム情報がブラウザに表示されないよう設定します。
「292行目:DocumentRoot "/var/www/openupload"」これはOpenUploadのトップページおよびプログラムが保存されるディレクトリを指定します。
「402行目:DirectoryIndex index.html index.htm index.phpOpenUploadのトップページは「index.phpです。そのためもとの値に「index.php」を追加しました。

「sudo /etc/rc.d/init.d/httpd restart」でApache2を再起動し変更内容をシステムに反映します。
さらに「sudo chkconfig httpd on 」によりApache2の自動起動を有効にします。

 

MySQLの設定

まずは下記ファイルの設定変更を行いそれをシステムに反映します。

sudo vim /etc/my.cnf
# 下記をファイルに書き込みます
    - character-set-server=utf8
    - [mysqld]欄の最終行に追記
sudo /etc/rc.d/init.d/mysqld start 
sudo chkconfig mysqld on

「/etc/my.cnf」に「character-set-server=utf8」を追記し文字コードUTF-8に設定します。
「sudo /etc/rc.d/init.d/mysqld start 」でMySQLを再起動し変更内容をシステムに反映します。
そして「sudo chkconfig mysqld on」によりMySQL自動起動を有効にします。

さらに下記手順を行いデータベースの初期設定を行います。

mysql_secure_installation 
# ダイアログの表示に対して下記を入力します
    - Set root password? [Y/n]:y 
    - New password:test
    - Remove anonymous users? [Y/n]:y 
    - Disallow root login remotely? [Y/n]:y
    - Remove test database and access to it? [Y/n]:y
    - Reload privilege tables now? [Y/n]:y
    - exit
sudo /etc/rc.d/init.d/mysqld restart

mysql_secure_installation 」コマンドを実行するとMySQLの初期設定を行うためのダイアログが表示されます。
上記の通りに入力しrootユーザーにパスワード「test」を設定してください。
設定後は「sudo /etc/rc.d/init.d/mysqld restart」を実行しMySQLを再起動することでシステムに設定を反映します。

 

OpenUploadダウンロードと展開

OpenUploadの圧縮ファイルをダウンロードしサーバー内に展開します。

cd ~
wget http://www.d-ip.jp/download/images/openupload-0.4rc1_dip.tar.gz
sudo tar xvzf openupload-0.4rc1_dip.tar.gz -C /var/www
sudo /etc/rc.d/init.d/httpd restart
sudo chmod -R 777 /var/www

「cd ~」によりホームディレクトリに移動します。ファイルのダウンロード先をホームディレクトリ直下にするためここは必ず実行してください。
wget」コマンドによりプログラムをダウンロードします。URLはDIP社ホームページにあるダウンロードアドレスそのままです。
ダウンロードができない場合はDIP社ホームページを確認し最新のダウンロードURLを指定してください。

「sudo tar xvzf openupload-0.4rc1_dip.tar.gz -C /var/www」でApache2のDocumentRootに指定したディレクトリへファイルを解凍します。
これにより解凍されたファイルがApache2に認識されブラウザからアクセスできるようになります。

「sudo /etc/rc.d/init.d/httpd restart」ここでも念のためApachi2を再起動します。

「sudo chmod -R 777 /var/www」 www以下のディレクトリとファイルのパーミッションを変更しPHPが動作できるよう設定します。
検証環境では動作することを優先し「すべて777」にしていますが、本番環境では状況に応じて変更してください。(危険ですので変更しないとだめです)

 

ブラウザ操作

ここから先はブラウザでの操作です。検証環境では「http://localhost:2080」とブラウザに入力しアクセスしました。
「2080」はVagrantの設定ファイルに書き込んだ検証用のポート番号です。

f:id:pesia_one:20180921213847p:plain:w400
- データベースタイプ
    - mysqlを選択
- データベースオプション
    - ホスト:localhost
    - ユーザ名:root
    - パスワード:test
    - DB名:openipload
    - Create the database:OFF
    - Also create user?:OFF
    - DB管理者ユーザ:root
    - DB管理者パスワード:test
    - Populate database:Private Modes
- アプリケーションオプション
    - WebMaster E-mail:example@example.com(管理者のメールアドレスを入力)
    - サイト E-mail:example@example.com(管理者のメールアドレスを入力)
- ユーザ
    - Administrator:admin
    - Admin password:test
- プラグイン
    - 全部有効
- データベース初期化
    - 「Restart」ボタンをクリック
    - 「実行」ボタンを何回かクリック
- 設定保存
    - 「Save Configuration」ボタンをクリック
    - 「click here to start using your new site」ボタンをクリック (極めて重要)
        - http://localhost:2080/index.php

ここの手順はほぼ完全に下記の参考サイトに準拠しています。

wkiki.seesaa.net

これで無事にOpenUploadにアクセスすることができました
エラーは起きず表示にも異常はありません。

 

終わりに

注意事項や感想をまとめました。

  • 検証環境ではアクセス先のアドレスが「http://localhost:2080」のようになります。
    • しかしファイルのダウンロードリンクは「http://localhost2380」のようになるため、手動で「:」を入力する必要があります
    • これに気が付かず何度も設定や動作を確認する羽目になりました
  • ダウンロードURLをクリックするとファイルのダウンロードページが表示されます
    • 直接ダウンロードできるリンクがほしい場合はダウンロードページ内のファイルアイコンを右クリックすると取得できます
    • このURLには規則性があり簡単に推測できますセキュリティ的に大問題です。
  • PHP7.Xではエラーになりスクリプトが動作しません
    • CentOS6.8ではPHP5.3.3がインストールされるため問題ありませんが、Ubuntuなどで使う場合はPHP5.6などを指定してください。
    • 一つ一つバージョンを入れ替えながら正解の組み合わせを探しました。本当に大変でした
    • 動作環境不明なの使おうとか思ったのが間違いだったのかもしれません
    • これ組むのに4日かかりましたガッデム
  • このプログラムは2010年から更新されていません。そしてデザインがダサいです
    • ですがファイル転送システムとして必要な機能はすべてそろっています