mod_uploaderをDebian上に設置するガイド
mod_uploaderとはApacheのモジュールとしてC++で記述されたファイルアップローダーです。perlやphpなどを必要としません。
Apacheの動作する環境であれば、UNIX系OS、Windowsにて動作させる事が可能です。
一般的なアップローダーはメモリ食いなのに対して省メモリかつ高速な動作が出来る為、サーバーのスペックを大きく求めません。
またアップローダーで唯一の欠点であるアップロード時の進捗状況についてもリアルタイムに表示出来、大きなファイルのアップロードも安心して行えます。
こちらのページは、Debian GNU/Linuxにおけるインストールについて簡単に手順をまとめたものになります。
一部のLinuxでは近い過程になりますが、完全に同じではありませんのでご了承願います。
また、mod_uploaderのホームページに書かれている手順と異なる部分がありますが、こちらでは実際に運用しているものを記載いたします。
他のOS/ディストリでのインストール方法
動作確認環境
- Debian GNU/Linux 3.1~8.0
- Apache 2.2.6~2.4
準備
Debian用のパッケージが公開されました。こちらを利用するとコンパイルの課程が不要になります。1~5を飛ばして設定の項目から作業可能です。
- Debian用パッケージダウンロード&インストール
dpkg -i libapache2-mod-uploader_3.1.1-1_i386.deb
- Debian用パッケージアンインストール
dpkg --purge libapache2-mod-uploader
各種設定は
/etc/apache2/mods-available/uploader.conf
から行う様になります。
- ダウンロード
http://green-rabbit.sakura.ne.jp/mod_uploader/
こちらのサイトからダウンロードします。
mod_uploader-3.2.0.tgz
からダウンロードして下さい。
Debian上で直接ダウンロードする場合は
# wget http://green-rabbit.sakura.ne.jp/mod_uploader/dist/mod_uploader-3.2.0.tgz
のようになります。(バージョン3.2.0の場合)
- ライブラリのインストール
ルート権限を持った状態で以下のライブラリをインストールします。
# apt-get install g++ # apt-get install make # apt-get install libtool # apt-get install apache2-mpm-prefork # apt-get install apache2-prefork-dev # apt-get install libmagick++-dev
- アーカイブの展開
出来るならば/tmpや/dev/shmなどを作業ディレクトリにすると良いのですが特にどこでも構いません。
# ls -al mod_uploader* -rw-r--r-- 1 root root 2664055 2014-09-01 00:46 mod_uploader-3.2.0.tgz # tar zxf mod_uploader-3.2.0.tgz # ls -al mod_uploader* drwxr-xr-x 19 root root 4096 2014-09-01 00:50 mod_uploader-3.2.0 -rw-r--r-- 1 root root 2664055 2014-09-01 00:46 mod_uploader-3.2.0.tgz
アーカイブが壊れていない限りは正常に展開出来ると思います。
- コンパイル
ソースの展開が出来たらコンパイルを行います。
# cd mod_uploader-3.2.0 ←入力して下さい # ./configure ←入力して下さい checking ~略~ ~略~ # make apache-module ←入力して下さい Compiling ~略~ ~略~ Generation mod_uploader.so ~略~ cp -f src/mod_uploader.so ./
これでmod_uploader.soが出来ているはずです。
- インストール
次にインストールを行います。
# make -f GNUmakefile.apache install ←入力して下さい /usr/bin/apxs2 -i -a -n "uploader" mod_uploader.so /usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/bin/libtool' mod_uploader.so /usr/lib/apache2/modules /usr/bin/libtool --mode=install cp mod_uploader.so /usr/lib/apache2/modules/ cp mod_uploader.so /usr/lib/apache2/modules/mod_uploader.so ~略~ #
これにてインストール作業は終了です。
設定
- apache2.confの編集
/etc/apache2/apache2.confを編集して実際にアップローダーを設置します。
# vi /etc/apache2/apache2.conf
以下の部分を末尾の方にでも追加して下さい。
# ●URLの設定 # <Location /upload> とした場合 # http://host/upload へアクセスするとアップローダーの画面になります。 # またこのディレクトリは作成しないで下さい。存在するディレクトリを指定すると正しく処理が行えません。 # <Location /upfiles> SetHandler uploader # ●ローカルのディレクトリ設定 # # アップローダーの設置場所を指定します。絶対アドレスかルートからの相対アドレスで記述します。 # "http://host/upfiles" もしくは "/upfiles" Locationで設定したURLに合わせます。 # またこのディレクトリは作成しないで下さい。存在するディレクトリを指定すると正しく処理が行えません。 UploaderBaseUrl "http://ore.sama.com/upfiles" # こちら以下にあるディレクトリ指定についてはDocumentRootの下である必要はありません。 # # アップロードされたデータのインデックス情報を格納しておくディレクトリの指定を行います。 # "/home/www/updata" , "/usr/local/index" , "/data/fileindex" などなど自由に UploaderDataDirectory "/home/www/updata" # アップロードされたデータを実際に格納しておくディレクトリです。 # "/home/www/upfile" , "/usr/local/files" , "/data/filedata" などなど自由に UploaderFileDirectory "/home/www/upfiles" # アップロードされたデータのサムネイル情報を格納しておくディレクトリの指定を行います。 # コンパイル時にサムネイル画像の作成オプション(開発元ホームページ参照)を指定した場合にのみ有効です。 # "/home/www/thumb" , "/usr/local/thumb" , "/data/thumb" などなど自由に UploaderThumbDirectory "/home/www/thumb" # テンポラリディレクトリです。アップロード中のデータを格納します。 # アップロードが完了すると、UploadFileDirectoryへファイルの移動を行います。 # そのため、UploadFileDirectoryと物理的に同じハードディスクを設定して下さい。 # "/home/www/temp" , "/usr/local/temp" , "/data/temp" などなど自由に UploaderTempDirectory "/home/www/temp" # アップロード可能な最大領域。このサイズを超えると古いものから順に自動的に削除されます。 # サイズの設定は1KB単位の指定になります。 UploaderTotalFileSizeLimit 51200 # アップロード可能な総ファイル数。この設定数まで登録可能です。 # 上限を越えると古いものから順に自動的に削除されます。 UploaderTotalFileNumberLimit 50 # アップロード可能な1ファイルあたりの最大サイズ。このサイズより大きなファイルはアップできません。 # サイズの設定は1KB単位の指定になります。 UploaderFileSizeLimit 1024 # 1画面に表示するファイル数。1画面に表示するファイル数が少ない程、総ページ数は増えます。 UploaderPerPageItemNumber 10 # ●表示するhtmlの設定 # # アップローダーのメインとなるページのファイル名を指定します。 UploaderIndexViewTemplate "/home/www/updata/index.htm" # アップローダーのアップロード中となるページのファイル名を指定します。 UploaderProgressViewTemplate "/home/www/updata/progress.htm" # アップローダーのダウンロードPASS入力となるページのファイル名を指定します。 UploaderDownloadViewTemplate "/home/www/updata/download.htm" # アップローダーのサムネイルを表示するページのファイル名を指定します。 UploaderThumbnailViewTemplate "/home/www/updata/thumbnail.htm" # アップローダーの管理画面となるページのファイル名を指定します。 UploaderAdminViewTemplate "/home/www/updata/admin.htm" # アップローダーのエラー表示画面となるページのファイル名を指定します。 UploaderErrorViewTemplate "/home/www/updata/error.htm" </Location> # ●エイリアスの設定 # # img/css/jsファイルを格納しているディレクトリを指定します。 Alias /upfiles/up_img "/home/www/updata/img" Alias /upfiles/up_css "/home/www/updata/css" Alias /upfiles/up_js "/home/www/updata/js"
なお、アップローダーを設置するディレクトリはルート直下である必要があります。
~で始まるユーザーディレクトリには設置する事が出来ません。
複数の設置を行う時はLocationをそれぞれ設定してください。(2.4.0より複数の設置に対応しました)
- apache2を起動する
あとはapache2を起動すれば操作は完了です。
mod_uploaderはapacheのモジュールとなっているため、apache2.confのリロードが行われない限りは設定が有効になりませんので注意して下さい。
# /etc/init.d/apache2 start
なお、apache2 reloadによるapache2.confのリロードは現在稼働しているapache2のプロセスの全てが終了するまでapache2を一時的に止める動作をしますのでおすすめしません。
apache2.confのリロードを行う時は一旦apache2 stopで止めるか、apache2 restartにて再起動する事を推奨します。
ログの設定
- logrotateを行っている場合について※重要※
mod_uploaderを使う仕様上注意するべき事として、logrotateを行う際にapacheを一旦終了する必要があります。
単純にrestartするだけではうまくいかないので、以下の様にlogrotateのスクリプトを変更して下さい。
# vi /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/apache2ctl -k stop test -x /usr/sbin/logrotate || exit 0 /usr/sbin/logrotate /etc/logrotate.conf /usr/sbin/apache2ctl -k start
- アクセスログを切り分ける
mod_uploaderにはアクセスログを設定するための環境変数が用意されています。以下の様に設定する事でmod_uploaderに対するアクセスログを記録する事が出来ます。
# vi /etc/apache2/sites-available/default
任意の場所に以下の行を追加して下さい。
CustomLog /var/log/apache2/upload.log uploader env=uploader_upload CustomLog /var/log/apache2/download.log uploader env=uploader_download CustomLog /var/log/apache2/remove.log uploader env=uploader_remove
管理設定
- 管理者権限※重要※
管理者用は以下の機能を利用できます。
-ダウンロードPASS無しでのファイルの取得
-ファイルの強制削除
-アップロード者のIPアドレスの確認
これらの機能は
http://ore.sama.com/upfiles/admin
(upfilesをURLに設定している場合)
へアクセスする事で使用出来ます。
しかし、このディレクトリは初期段階では誰でもアクセス出来てしまいます。
アクセス元IPの制限を行うか、認証をかける様にして管理者以外には公開されないようにしましょう。
アクセス元IPの制限を行う場合
# vi /etc/apache2/apache2.conf
任意の場所へ以下の様に記述して下さい。一例ですので自分の環境に合わせて設定して下さい。
.adminpasswdの作成方法についてはhtpasswdについて検索して調べてください。
<Location /upload/admin> Order Deny,Allow Deny From All Allow From 192.168.1.1 Allow From 127.0.0.1 </Location>
認証をかける場合
<Location /upload/admin> AuthUserFile /home/www/.adminpasswd AuthName "Please enter your ID and Password" AuthType Basic require valid-user </Location>
- 投稿制限
同一IPからの多重アクセスに対する制限をかける事をおすすめします。
DoS攻撃状態になるとサーバの処理が非常に重くなり色々な影響が発生しますので制限をかけてしまうというものです。
実際の動作上としてはダウンロードよりもアップロードに対しての攻撃を受けた時に大きな被害が出る様に感じられました。
同一IPからの接続数を制限するにはapacheにmod_limitipconnを導入します。
以下の手順でインストール出来ます。
まずはapache2のモジュールのコンパイル環境を用意するために
# apt-get install apache2-dev
を行います。次に本体のソースをダウンロードします。
# wget http://dominia.org/djao/limit/mod_limitipconn-0.22.tar.gz # tar xvfz mod_limitipconn-0.22.tar.gz # cd mod_limitipconn-0.22 # vi Makefile
makeを行う前に、Makefileを編集します。
APXS=apxs2
APXS=apxsと記述されている所を、APXS=apxs2と書き足します。
# make # make install
これにてコンパイルは完了です。mod_limitipconn.soもapache2のモジュールのディレクトリにコピーされます。
apache2で読み込める様に設定します。
# vi /etc/apache2/mod-available/limitipconn.load
limitipconn.loadの中身は以下の様にして保存します。
LoadModule limitipconn_module /usr/lib/apache2/modules/mod_limitipconn.so
ExtendedStatus Onこれにて基本的な設定は完了します。あとは、apache2.confか.htaccessによって制御を行います。
apache2.conf
<IfModule mod_limitipconn.c> <Location /> MaxConnPerIP 3 NoIPLimit image/* </Location> </IfModule>
この設定を行うと、image/*以外のファイルのダウンロードについて、1IPでは同時接続数3となります。
.htaccess
<Limit GET> <IfModule mod_limitipconn.c> MaxConnPerIP 3 OnlyIPLimit application/* audio/* </IfModule> </Limit> <Limit POST> <IfModule mod_limitipconn.c> MaxConnPerIP 2 </IfModule> </Limit>
この設定を行うと、application/*および、audio/*のファイルのダウンロードについては、1IPでは同時接続数3までとし、ファイルのアップロードに関しては1IPで同時接続数2までとなります。
うまく設定を行う事で同一IPからの攻撃を幾分守れる様になると思います。
更に手を加えようとする方は「Apache2でmod_limitipconnを使う方法
」が参考になると思います。
- 強制ダウンロードパスワード化(上級者向け)
アップロード時にダウンロードパスワードを指定しないと登録できない用にするにはソースコードの変更が必要です。
ちょっとした知識が必要ですのでよく分からない人にはおすすめいたしません。 変更が必要なのは2ファイルになります。
src/PostDataChecker.cpp 87~88line付近
+ if (strlen(download_pass) == 0) { + THROW(MESSAGE_POST_DOWNLOAD_PASS_EMPTY); + } else if (strlen(download_pass) > (ITM_MAX_DOWNLOAD_PASS_SIZE-1)) { - if (strlen(download_pass) > (ITM_MAX_DOWNLOAD_PASS_SIZE-1)) {
include/MessageJA.h 81line付近
+#define MESSAGE_POST_DOWNLOAD_PASS_EMPTY "\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xa5\xd1\xa5\xb9\xa5\xef\xa1\xbc\xa5\xc9\xa4\xac\xb6\xf5\xa4\xc7\xa4\xb9\xa1\xa5" #define MESSAGE_POST_DOWNLOAD_PASS_TOO_LONG "\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xa5\xd1\xa5\xb9\xa5\xef\xa1\xbc\xa5\xc9\xa4\xac\xc4\xb9\xa4\xb9\xa4\xae\xa4\xde\xa4\xb9\xa1\xa5"
これらの変更を行ってから再度コンパイルすれば修正変更が完了します。
#追記
MessageJA.hではなく、MessageJA.h.inを変更しろとMessageJA.hに書かれているね orz
include/MessageJA.h.in 81line付近
+#define MESSAGE_POST_DOWNLOAD_PASS_EMPTY "ダウンロードパスワードがありません." #define MESSAGE_POST_DOWNLOAD_PASS_TOO_LONG "ダウンロードパスワードが長すぎます."
ってことで、これで。
- admin時にセッション制限を無視する(上級者向け) ver2.4.2で実装されました。
利用者が増えてくるとadmin時にセッション制限に引っかかる事態になる事もしばしばありえます。
そこでadmin時はセッション制限に引っかからないように強引に回避させます。 ただし、セッションがぎちぎちの時ですとうまくダウンロード出来ない事があります(現象見れば意味は分かります。深刻ではありません)のであしからず。
変更が必要なのは1ファイルになります。
src/uploader_handler.cpp 691~693line付近
+ if (!is_admin_mode && !can_download(config, Response::get_remote_addr(r))) { - if (!can_download(config, Response::get_remote_addr(r))) { THROW(MESSAGE_DOWNLOAD_SESSION_LIMIT_EXCEEDED); }
この変更を行ってから再度コンパイルすれば修正変更が完了します。
動作画面
こちらにて実際に動作させております。
かりんとあぷろだ
コメント
- virtual hostを使用していても記述場所、記述内容は変わりませんか? -- hanami? {2007-07-01 (日) 12:24:20};
- どの部分の記述になりますか?virtual host時で変わる部分と変わらない部分があるとは思いますが。 -- {2007-07-01 (日) 18:51:22};
- apache2.confに追記する部分です。 -- hanami? {2007-07-02 (月) 03:06:55};
- Debianの場合は他のディストリビューションと異なってvirtual host時の設定が分かりにくい様ですが、sites-enabled下の方で設定すればよさそうです。apache2.confに記述すると全hostに有効になりそう? -- {2007-07-02 (月) 13:18:29};
- sites-enabledで有効になる、sites-available内の各サイト設定で設定を追記してもapache2.confで追記してもapache2が起動出来なくなります。。 -- hanami? {2007-07-02 (月) 18:11:59};
- UploaderBaseUrlの行を#で無効化すると起動出来るようにはなりますが、勿論動作はしないようです。 -- hanami? {2007-07-02 (月) 18:14:09};
- virtual hostを使っていない状態でも動きますか?apache2が起動しない状態という事は設定が間違っていそうです。Locationで指定したディレクトリは存在していませんよね?存在していると起動できません。 -- {2007-07-02 (月) 22:56:06};
- virtual host未使用の起動はできます、Locationで指定したディレクトリもありません。 -- hanami? {2007-07-02 (月) 23:21:20};
- 先程ひとつ問題に気付きました、、ApacheのVerが2.0.54でした・・。2.2以上じゃないと動作しませんよね・・? -- hanami? {2007-07-02 (月) 23:22:34};
- 2.2以上のみ対応です。2.0.xでは動作しません。 -- {2007-07-02 (月) 23:26:02};
- ここで聞く事じゃないかも知れませんが・・DebianでApache2のみのアップデートはapt-getで出来るものなんでしょうか? -- hanami? {2007-07-02 (月) 23:42:26};
- confファイルで設定したindex.htmを書き換えても画面に変化がないのですが…何か思い当たる節が有れば教えていただけますか。 -- こーじ? {2007-07-02 (月) 23:56:48};
- apache2の再起動をしないと有効になりません。apache2をstartさせた時に読み込む仕様です。>こーじさん -- {2007-07-03 (火) 00:41:44};
- カーネルごとアップデートした方がいいと思いますよ>hanamiさん -- {2007-07-03 (火) 00:42:35};
- 環境がGLANTANKの為・・カーネルごとのアップデートは厳しそうです。。 -- hanami? {2007-07-03 (火) 02:08:35};
- 公式にはApache 2.0 以上となっていますが無理なんでしょうか・・? -- hanami? {2007-07-03 (火) 02:26:34};
- 公式の方の書き換え漏れかと。2.0対応は2.1.3までですね。http://acapulco.dyndns.org/mod_uploader/mod_uploader-ap2.0.so
というのがあるみたいですがどうでしょう。 -- {2007-07-03 (火) 10:11:17};
- また、apache2.0.x対応版はconfの記述方法も異なりますので注意して下さい。 -- {2007-07-03 (火) 10:12:17};
- mod_uploader-ap2.0.soと現在インストール済みの2.4.6をリネームして置き換えてみました。が・・リネームして置き換えるだけではファイルバージョンが違うとエラーが出て起動出来ませんね。。 -- hanami? {2007-07-03 (火) 12:10:03};
- mod_uploader-ap2.0.soというのはコンパイル済みの物なんですよね? -- hanami? {2007-07-03 (火) 12:11:43};
- mod_uploader-ap2.0.soの場合のインストール方法がわからず苦戦中・・2.1.3でのインストールも試してみましたが、過去のconf記述方法を見つける事ができず。。 -- hanami? {2007-07-03 (火) 14:41:27};
- 2.1.3でインストールし直し、conf内のapache.confを参考にして<Location /up>のくくりを変えてみましたが動作しませんでした。後はmod_uploader-ap2.0.soに望みをかけています (T-T -- hanami? {2007-07-03 (火) 15:59:55};
- こちらに作者さんがいらっしゃいますよ>http://pc11.2ch.net/test/read.cgi/mysv/1173959386/
-- {2007-07-03 (火) 18:14:27};
- 作者さんへのご質問をしようと思いましたが書き込みが出来ない状態でした・・が参考にさせて頂きました、ありがとうございます。もう少し頑張ってダメなら諦める事にします。 -- hanami? {2007-07-05 (木) 20:55:58};
- こんにちは。私はdebian etchとapache 2.2.3 mod_uploader 2.5.4の組み合わせで使っています。導入の参考にさせていただきました。ところで、/etc/apache2/mods-available/mod_uploader.loadの内容なのですがLoadModuleのあとのコロンは要らないのではないでしょうか -- oshikoji? {2007-09-10 (月) 12:59:43};
- 特にLoadModuleのあとにコロン等は不要です。スペースかTABで切ってあればよいと思います。Debian以外のディストリビューションの場合はちょっと分かりません。 -- {2007-09-11 (火) 03:05:56};
- タグの更新が反映されているのですが表示されません。どうやったら綺麗にかりんとさんにょうにアフィとか出るのでしょうか -- みなこ? {2008-02-03 (日) 16:10:21};
- みなこさん>どの様に記述しているのか分からないのでなんとも。普通にテンプレートのhtmlで表示されているなら問題ないはずですが。 -- {2008-02-17 (日) 23:44:59};
- nHUgoOjQhe -- fghswxnzr? {2008-11-17 (月) 02:17:52};
- 私もみなこさんと同じで、グーグルアドセンスの表示に失敗しています。 テンプレートの修正の反映はしています。Adsenseタグもソースに反映していますが、実際に表示はさません。 普通にテンプレートの編集だけで問題ないって事ですけど・・・禁止ワード的なもので表示されないのかな? -- なお? {2009-04-01 (Wed) 13:04:02};
- 自己解決しました。 デフォルトのcssga -- なお? {2009-04-01 (Wed) 13:48:55};
- 自己解決しました。デフォルトのCSSが原因でした。 -- なお? {2009-04-01 (Wed) 13:49:34};
- FOLeA4 I've recently started a website, the info you offer on this site has helped me greatly. Thanks for all of your time & work. -- crork seo? 2015-06-04 (Thu) 12:46:46
- dIWyPgpadzgBdvyAQ -- fjgywiq? 2015-08-04 (Tue) 09:57:39
- UOKgCrohPTiLi -- hxzhrhz? 2017-02-28 (Tue) 07:06:02
- CBcKgHpkLrRVAT -- Xbbintvv? 2017-03-01 (Wed) 09:49:19
- wDAFWxBhpvlS -- Tcepkbpa? 2017-03-01 (Wed) 15:02:34
- yPvPNixiHjKJ -- Sycutljr? 2017-03-01 (Wed) 20:05:53
- pTKYPJjLtcmhY -- Hgjqwkmw? 2017-03-02 (Thu) 01:25:37
- sdhwVChgMcFdz -- Cytotecon? 2017-03-02 (Thu) 09:35:11
- zgjQLokbj -- Cytotecon? 2017-03-02 (Thu) 14:37:37
- PdmbaceKsyiJuH -- Pmekqazu? 2017-03-02 (Thu) 19:49:10
- SgwGbvnrvvMLJlRZzuF -- Tawpkfcx? 2017-03-03 (Fri) 06:06:29
- uYlQUIEVJmOPhtcdCs -- cialison? 2017-03-03 (Fri) 23:31:16
- WJowHcMZzSnbIDSAWHX -- cialison? 2017-03-04 (Sat) 04:53:05
- mBnRNdSLEeBp -- doxycycline? 2017-03-04 (Sat) 10:12:15
- tXOCUtgJqJBfLtX -- Sfvpdikd? 2017-03-04 (Sat) 15:38:08
- vXVTXoxisLWVz -- Jhmkbpok? 2017-03-04 (Sat) 20:47:12
- pnkZtUCEapBktPcMl -- Glctzjlv? 2017-03-05 (Sun) 02:09:33
- ArMQSxrlVgcJHhKasl -- Rfdvauqm? 2017-03-05 (Sun) 20:07:39
- SiHXkKbBeUK -- Jzaadpyu? 2017-03-06 (Mon) 02:03:54
- ShcVgPzklXkBjXHcyI -- Parsiiyk? 2017-03-06 (Mon) 06:48:24
- bWiiNTwECx -- buy viagra canada? 2017-03-10 (Fri) 18:35:36
- wzfmNtqHlOCuKc -- buy cialis generic tadalafil? 2017-03-10 (Fri) 18:35:55
- zwiPSioLlMvvSGpX -- buy cialis online without script? 2017-03-11 (Sat) 00:15:42
- LayrdBTeNKnp -- viagra online? 2017-03-11 (Sat) 00:27:54
- DGTmjqbev -- generic viagra? 2017-03-11 (Sat) 17:47:27
- DueXxTNetNznv -- viagra online? 2017-03-11 (Sat) 18:19:59
- VNlXfmUNT -- Viagra? 2017-03-11 (Sat) 23:14:58
- LUDweRycSQpKwC -- silden24.com? 2017-03-12 (Sun) 00:17:04
- PAFhVPCwKW -- can you buy viagra over the counter? 2017-03-12 (Sun) 05:03:42
- UGBwrCXQGnwISweXioD -- silden24.com? 2017-03-12 (Sun) 05:40:30
- SoRiARKPB -- silden24.com? 2017-03-12 (Sun) 10:41:58
- yJJmIpGOFgcSJR -- cialis samples? 2017-03-12 (Sun) 21:59:41
- CuPZHSSW -- can you buy viagra over the counter? 2017-03-13 (Mon) 04:02:20
- KzaYSeUNPKY -- cytotec online? 2017-03-13 (Mon) 10:27:34
- TOHPhQUXleY -- cytotec? 2017-03-13 (Mon) 22:58:39
- YaCqzrJBhFJYHZbWGOk -- cheap cytotec? 2017-03-13 (Mon) 23:23:25
- SofpKqds -- buy real viagra online? 2017-03-14 (Tue) 05:08:09
- qSkwsGlcWwRUIOCmEtm -- can you buy viagra over the counter? 2017-03-14 (Tue) 05:20:58
- uchuWwGcOkFxWjVeHL -- cheap cytotec? 2017-03-14 (Tue) 10:57:42
- zUdNWdhfjEQ -- buy viagra canada? 2017-03-15 (Wed) 23:04:06
- mBfcmuLlxnwkJPvTMT -- buy deltasone? 2017-03-16 (Thu) 05:11:03
- KadgSBtyPZhfDR -- viagra online? 2017-03-16 (Thu) 11:06:31
- aXXTmapjNbozSQY -- buy viagra without doctor prescription? 2017-03-16 (Thu) 11:19:14
- eaTWNQLFNICjFqAlcXX -- buy viagra canada? 2017-03-16 (Thu) 16:47:56
- fFISrYUHZFcfGNSqky -- Cialis? 2017-03-20 (Mon) 00:13:42
- rUMvLIxQmCVyaJZGZ -- Cialis Online? 2017-03-20 (Mon) 00:29:08
- BigAWJHyOgZEN -- Antibiotic? 2017-03-20 (Mon) 14:08:18
- XSdQkSwifRVSGPc -- amoxil canada? 2017-03-20 (Mon) 14:37:46
- VwZRzsko -- amoxil canada? 2017-03-20 (Mon) 20:41:36
- HbEpJVukzFpQhfFY -- Antibiotic? 2017-03-20 (Mon) 20:56:27
- YuADkOGunoCVxFiD -- ViagraOnli? 2017-03-29 (Wed) 18:19:17
- LhCKnKSlkiF -- TadalCan? 2017-03-29 (Wed) 18:52:04
- LWkzpFjfSTAkx -- Alexey? 2017-03-31 (Fri) 19:00:33
- lZiHNMXjhpUJS -- MarkMike? 2017-04-01 (Sat) 00:54:27
- znHOLDAuXoszvAltLa -- Sildenafil? 2017-04-03 (Mon) 12:58:18
- nlIaXQVyKDRIQ -- MikeThank? 2017-04-03 (Mon) 13:41:59
- gFtnHcyJYZz -- Sildenafil? 2017-04-05 (Wed) 03:58:07
- IoaWeiJAoTjccjaPZFs -- levitra 20 mg canada? 2017-04-06 (Thu) 12:40:16
- oSAkdZxDLZx -- cialis coupon? 2017-04-06 (Thu) 12:54:10
- PtPKyatQJ -- viagra definition? 2017-04-07 (Fri) 14:20:24
- snHlbwDI -- synthroid? 2017-04-07 (Fri) 14:39:44
- dJtdllNM -- generic cialis? 2017-04-10 (Mon) 13:48:04
- wCvvrBgZnEtkMnoM -- Cost of Cialis in USA? 2017-04-10 (Mon) 14:13:05
- ATQhAokXM -- Cialis? 2017-04-14 (Fri) 13:25:08
- QzIqSbtixVmDcr -- viagra? 2017-04-25 (Tue) 21:11:21
ここはにちゃんねるではありません。非建設的なものや非難・中傷・罵倒などのコメントはご遠慮願います。
またそういった目的のコメント者は荒らしと判断し利用プロバイダへの連絡を行う等の対処を行います。
内容に問題がある場合は『間違っている』と書いても修正できませんので、どこがどの様に『間違っている』のかを明確に書いて下さい。