1-8.サーバーの設定 のバックアップ(No.16)


いろいろなサーバーの設定

http://www.knts.net/Xlc/modules/pico/category0016.html
ここらへんを参考に。
EdenにOMVインストールする前に、
apache, rep2, torrent, dice, ぐらいやっとけば良い。

コンピュータ名の変更

/etc/hosts
/etc/hostname
を変更

apache2

ソフトウェア管理から入れれば完了。

webminインストール

webminホームページから、debパッケージダウンロード。
https://localhost:10000/と入力します。
httpsでの接続確認
セキュリティ例外の追加
ログイン画面:管理権限のあるユーザーとそのパスワードを入力
Webmin画面に入ったらまず日本語化をします。
左メニュー:check Language and Theme をクリック
Languageは Japanese (JA_JP.UTF-8)を選択
webmin変更後の初期画面
Webmin設定ボタンをリクック
もう一度言語選択 - 言語アイコンをクリック
Webminが使用する言語を選択:japanese(JA_JP.UTF-8)
Webminのインストールと初期設定
外部からのアクセスの禁止:アクセスはローカルPCのみ
Webminのアクセス制限をします。
Webminボタン-Webminの設定-IPアドレスの制御をクリック
チェックボックス リストされたアドレスのみ許可にチェック
一覧にローカルネットワークを含める

PHPとmysql

ソフトウェアの管理からPHP5インストール
ソフトウェアの管理からmysql-serverインストール
ソフトウェアの管理から、php5-mysqlインストール

apache modules

Webmin:サーバ Apache Webサーバをクリック
グローバル設定をクリック
Configure Apache Modulesをクリック
userdir include rewriteをチェック
Enable Selectd Modulessをクリック
ソフトウェアの管理からPHP5-curlをインストール
ソフトウェアの管理からPHP5-gdをインストール
ソフトウェアの管理からphp5-imagickをインストール
ソフトウェアの管理からphp5-mcryptをインストール
Webminサーバより - Apache Webサーバ - Apacheを停止 - Apacheを起動を行い
ブラウザより http://localhost/test.php で組み込まれているか確認します。

http://www.server-world.info/query?os=Ubuntu_14.04&p=httpd&f=2

自分ひとりだけで使うので気にするのは

<Directory "/var/www/html/">
   Options +ExecCGI
   AddHandler cgi-script .cgi .pl
</Directory>

ぐらいでいい。
ユーザディレクトリ使った方が、パーミッション設定とかはやりやすいような気もするが。
不具合がでるまでこれで。

rep2

sudo apt-get -y install apache2 php5 php-pear php-compat php-http-request php-pager php-file php5-curl curl unzip
sudo pear install Net_UserAgent_Mobile
curl -L -o /tmp/rep2.zip http://akid.s17.xrea.com/cgi/dl/dl.php?dl=p2
sudo unzip -x /tmp/rep2.zip -d /var/www/html
sudo cp -r /tmp/rep2.old/data /var/www/html/rep2/data
sudo chown -R www-data:www-data /var/www/rep2/html
firefox http://localhost/rep2/

eAccelerator

非力だったのでWindowsの時には入れていたけど、どーすっかな…。
まー入れるか。

https://docs.moodle.org/24/en/Installing_eAccelerator_In_Ubuntu_Server

2chproxy

2chproxy.pl
git clone https://github.com/yama-natuki/2chproxy.pl.git

変更

DEDICATED_BROWSER => “rep2”,                    #使用している専ブラの名前
DAT_DIRECTORY => “/var/www/html/rep2/data/”,    #datファイルが置いてあるディレクトリ

あとは起動時にdaemonで動くように設定。「自動起動するアプリの設定」で充分。
rep2のuser confでプロキシ使うように設定。

samba

http://t-akiyama.at.webry.info/201404/article_9.html
http://t-akiyama.at.webry.info/201405/article_5.html

bittorrent client

デフォルトで入っているtransmissonの問題点は、ラベルがつけられないこと。
qbittorrentを入れてみる。qbittorrent-noxとatコマンドで(cronでも)なんとかなる。
ktorrentだとかなり細かい時間指定ができる。しかしでかい。これのためにKDE?それに起動オプション不明。wikiは死んでるし。
結局utorrentを入れるのが正解か。ワンクリック全ストップ/全再開ができないが。→できる。FirefoxアドオンのTorrent Status Toolを入れればいい。
http://askubuntu.com/questions/530955/how-to-install-utorrent-v3-3-on-14-04
http://helpdeskgeek.com/how-to/install-and-configure-utorrent-server-in-ubuntu-linux/
utorrent web uiを他マシンから使うのは、Windows10からだと大丈夫なのだが他のだと上手くいかない。何故か不明。
bittorent(utorrent) remote使う?これってプライバシー上問題なのかどうなのか、なんも情報がない。
でもremote使えばスマホからも操作可能。
起動スクリプト作って~/binにおいて、「自動起動するアプリの設定」で起動。

DDNS updater

はじめDiCEのLinux版入れたけど、バイナリって…。
つーかDiCE使っているとなんかOfflineになるし。バイナリで直せないしゴミですね。
スクリプト拾ってきてやるほうがいいんでないの?

http://ieserver.net/ddns-update.txt
http://ai-line.com/linux/
https://www.cphub.net/?id=40&pid=304
http://sourceforge.net/projects/ddclient/
とかGnuDIP clientとか。

変更しやすいのでhttp://ieserver.net/ddns-update.txtを使う。
外スクリプトとか使わないで、ルーターにBasic認証付きでステータスページにアクセスしてグローバルアドレス取得するように変更…だがルータのパスワード見せるのも…という感じなので、もともとのipcheck.shtmlのままに戻す。以下の変更は行い、ユーザ権限でcron回す。

  • 前回更新からx分以内では更新しない
  • 前回更新からy日過ぎた場合は強制的に更新する
#!/usr/bin/perl

# 下記のスクリプトを
# 1. グローバルIPアドレスを使用しているルータから取得 >> できるけど外した
# 2. 前回更新からx分以内では更新しない
# 3. 前回更新からy日過ぎた場合は強制的に更新する
# ように自分で変更した。 

# ieServer.Net 専用 DDNS IP アドレス更新スクリプト - ddns-update.pl
# 作成者:山本恭弘@Agora Inc. 作成日:2004/03/24
#
# 回線割り当てグローバルIPアドレスを確認し、変化があれば新IPアドレスを
# DDNSに登録。当コマンドを一定の間隔で実行し、IPアドレスの変化を監視&
# 更新処理する。利用には perl wget cron が利用可能である必要あり。
#
# 回線に割り当てられた IPアドレス は http://ieserver.net/ipcheck.shtml
# へのアクセスによって確認。
#
# cron にて当コマンドを等間隔で実行し、回線IPを確認。変化があればDDNSに
# IPアドレスを登録。DDNSサーバーへの負荷軽減の点から実行間隔は10分以上と
# すること。
# crontab設定例(/usr/local/ddns/ddns.plにスクリプトを置き10分間隔で実行)
# 5,15,25,35,45,55 * * * * /usr/local/ddns/ddns-update.pl

# 以下2ファイルの配置ディレクトリは好みに応じ設定
# 1. 設定IPアドレスワークファイル
$CURRENT_IP_FILE = "/home/hoge/log/current_ip";

# 2. 設定状況ログファイル
$LOG_FILE        = "/home/hoge/log/ip_update.log";

# 3. 最終更新時間
$LAST_TIME=0;
@fileinfo = (stat $CURRENT_IP_FILE);
$LAST_TIME = $fileinfo[9];

# 前回アップデートからこの時間(min)以内では更新しない 
$UPDATE_INTERVAL_MIN = 60;

# 前回アップデートからこの時間(day)過ぎたら強制的に更新する。
$FORCE_UPDATE_DAY = 7;

# 回線IP確認ページURL
$REMOTE_ADDR_CHK = "http://ieserver.net/ipcheck.shtml";
# DDNS更新ページURL
# wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨
$DDNS_UPDATE     = "http://ieserver.net/cgi-bin/dip.cgi";

# ieServer.Netにて取得したアカウント(サブドメイン)情報を記入
$ACCOUNT         = "	";	# アカウント(サブドメイン)名設定
$DOMAIN          = "	";	# ドメイン名設定
$PASSWORD        = "	";	# パスワード設定

if(!open(FILE,"$CURRENT_IP_FILE")) {
    $CURRENT_IP = '0.0.0.0';
    } else {
    $CURRENT_IP = <FILE>;
    close FILE;
}
#print $CURRENT_IP;

$NEW_IP = '0.0.0.0';				# meaning offline
$NEW_IP = `wget -q -O - $REMOTE_ADDR_CHK`;

### My case, get global ip from router instead of outside:
#open(STANET, "wget -q --http-user=xxx --http-password=xxx http://192.168.11.1/stanet.asp -O - |")  || die "can't wget : $!";
##or# open(STANET, "curl -u xxx:xxx http://192.168.11.1/stanet.asp - |")  || die "can't wget : $!";
#while (<STANET>) {
#    if(/name=\"ip\" value=\"/){
#        $NEW_IP=substr($', 0, length($')-3);
#        print $NEW_IP;
#    }
#}
#close(STANET) || die "can't close wget : $!";

#
# offline | >1wks | unchange | <60min | action
# 1       | x     | x        |        | No & log(offline) if ($CURRENT_IP != '0.0.0.0') 
# 0       | 1     | x        | x(0)   | Update & log
# 0       | 0     | 1        | x      | No
# 0       | 0     | 0        | 1      | No 
# 0       | 0     | 0        | 0      | Update & log

if ($NEW_IP eq "0.0.0.0" ) {
    if ($CURRENT_IP != '0.0.0.0') {
        open (FILE ,">$CURRENT_IP_FILE");
        print FILE $NEW_IP;
        close FILE;
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");   
        print FILE "$TIME offline\n";
        close FILE;
    } else {
	;
    }
} elsif (((time-$LAST_TIME) >= $FORCE_UPDATE_DAY * 24 * 60 * 60 )
	 ||(($CURRENT_IP ne $NEW_IP) && ((time-$LAST_TIME) >= $UPDATE_INTERVAL_MIN * 60))) {
    $STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`;
    if ($STATUS =~ m/$NEW_IP/) {    
        open (FILE ,">$CURRENT_IP_FILE");
        print FILE $NEW_IP;
        close FILE;
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT.$DOMAIN Updated $CURRENT_IP to $NEW_IP\n";
        close FILE;
    } else {
        $TIME = localtime;
        open (FILE ,">>$LOG_FILE");
        print FILE "$TIME $ACCOUNT.$DOMAIN Update aborted $CURRENT_IP to $NEW_IP\n";
        close FILE;
    }
}

exit;

Cloud Strage

ownCloud or Seafile or Pydio