例: 2014/5 OSバージョン FreeBSD 9.1-RELEASE-p13 amd64
おうちで同じ環境が欲しい バイナリ作りたい、ライトでphpコンパイルしたいなど
サーバー容量が増えたので、ローカル環境でテストする意味合いが薄れつつある。
必要なもの(Windows)
設定例は、ページの最後に移動しました
参考:さくらのFreeBSDのパーティションの仕切り方
/ - 1024MB swap - 1024MB /var - 4096MB /usr - 4096MB /home - 残り全て
/tmpディレクトリ作成
rm -r /tmp ln -s /var/tmp /tmp
//参考 //さくらインターネット、専用サーバースレ Part9 410より //ttp://serverfan.dip.jp/freebsd/install62.html
pkg_add | pkg_delete | pkg_info |
freebsd-update | ||
adduser | passwd | sysinstallコマンドでもできる |
chown | chmod | |
cd | mkdir | |
rm | rmdir | |
ls |
既定の設定 | アドレス | ネットマスク | 範囲 |
ホストオンリーアダプター | 192.168.56.1 | 255.255.255.0 | |
DHCPサーバー | 192.168.56.100 | 255.255.255.0 | 192.168.56.[101-254] |
1:NAT インターネット通信する場合 2:ホストオンリーアダプター
必要な置換を追加 192.168.56.10 freebsd.localhost
keymap="jp.106.kbd" hostname="freebsd.localhost" # 1:NAT、2: host only adaptor defaultrouter="192.168.56.1" ifconfig_em0="DHCP" ifconfig_em1="inet 192.168.56.10 netmask 255.255.255.0" sendmail_enable="YES" #sshを有効 sshd_enable="YES" #FTP bftpd 〜 /usr/local/sbin/bftpd -nd
インストール後にすぐに設定したほうがいい edit /etc/rc.conf /etc/netstart 外部のホストに ping してみる
Virtualbox ゲストOS 追加パッケージ pkg_add -r virtualbox-ose-additions
192.168.56.10 freebsd.localhost
ping -c 1 yahoo.co.jp
ping freebsd.localhost -n 1
#!/usr/bin/perl use CGI; $cgi = new CGI; print "Content-type: text/html\n\n"; #$cgi ->charset(""); #$cgi ->charset("utf8"); $cgi ->charset("sjis"); #$cgi ->charset("eucjp"); #print $cgi->header('text/html'); # if (!($ENV{'REMOTE_ADDR'} eq "YourREMOTE_ADDR")) { print("reject"); exit(0); } # if (!($ENV{'REMOTE_HOST'} eq "YourRemoteHost")) { print("reject"); exit(0); } # if (!($ENV{'REMOTE_ADDR'} =~ m/YourRemoteAddress\./i)) { print("reject"); exit(0); } # if (!($ENV{'REMOTE_ADDR'} =~ m/192\./i)) { print("reject"); exit(0); } # if (!($ENV{'REMOTE_HOST'} =~ m/\.YourRemoteHost/i)) { print("reject"); exit(0); } $os = $list = {}; open (RUNCMD, "uname -mrs |"); $os{"uname"} = <RUNCMD>; close (RUNCMD); open (RUNCMD, "uname -r |"); $os{"version"} = <RUNCMD>; close (RUNCMD); open (RUNCMD, "uname -m |"); $os{"platform"} = <RUNCMD>; close (RUNCMD); $CMD = "/usr/sbin/pkg_info"; open (RUNCMD, "$CMD |"); @{$os{"pkg_info_src"}} = <RUNCMD>; close (RUNCMD); chomp($os{"uname"}); chomp($os{"version"}); chomp($os{"platform"}); $os{"FTP_base"} = "ftp://ftp.jp.freebsd.org/pub/FreeBSD/ports/" . $os{"platform"} . "/"; $os{"PACKAGESITE"} = $os{"FTP_base"} . "packages-" . lc( (($os{"version"} =~ m/^([^-]+-[^\-]*)/ ) ? $1 : "7-stable") ) . "/Latest/"; $os{"PACKAGESITE_stable"} = $os{"FTP_base"} . "packages-" . (($os{"version"} =~ m/^([\d]+)/ ) ? $1 : "7") . "-stable/Latest/"; $os{"pkg_info"} = join("", @{$os{"pkg_info_src"}}); $menubar = "<p><a href=\"#top\">トップ</a>" . " | <a href=\"#list\">リスト</a>" . " | <a href=\"#command\">追加用コマンド</a>" . " | <a href=\"#osusume\">おすすめ</a></p>"; print("<html><body><a name=\"top\"></a>"); print("<p>$os{\"uname\"}</p>"); print("<p>RemoteAddress:$ENV{'REMOTE_ADDR'}</p>"); print("<p>RemoteHost:$ENV{'REMOTE_HOST'}</p>"); print("<a name=\"list\"></a>" . $menubar); $list{"pkg_add"} = $list{"portupgrade"} = $list{"all"} = ""; $tableBody = "<tr><td>No</td><td>Name</td><td>version</td><td>description</td></tr>\n"; $count = 0; for (my $i=0; $i<=$#{$os{"pkg_info_src"}}; $i++) { chomp($os{"pkg_info_src"}[$i]); # removes newlines # pakegaename-version description # (pakegaename)-(version) (description) # ($1)-($2)-($3) if ($os{"pkg_info_src"}[$i] =~ m/^([^\s]+)-([^\s]+)\s+(.+)/) { $count++; $tableBody .= sprintf("<tr><td>%d</td><td>%s</td><td>%s</td><td>%s</td></tr>" ,$count,$cgi->escapeHTML($1),$cgi->escapeHTML($2),$cgi->escapeHTML($3))."\n"; $s .= sprintf("pkg_add -r %s" , $cgi->escapeHTML($1))."\n"; $list{"pkg_add"} .= "pkg_add -r " . $cgi->escapeHTML($1) . "\n"; $list{"portupgrade"} .= "portupgrade -PP -r --new " . $cgi->escapeHTML($1) . "\n"; $list{"all"} .= " " . $cgi->escapeHTML($1);; } } print "total $count<br>\n"; print "<table border=\"1\">" . $tableBody . "</table>\n"; print("<a name=\"command\"></a>" . $menubar); $onClick = 'onclick="this.select()"'; $textarea_options = "wrap=off rows=5 cols=60 " . $onClick; print("<p>#csh<br>setenv PACKAGESITE " . $os{"PACKAGESITE"} . "<br>\n"); print("setenv PACKAGESITE " . $os{"PACKAGESITE_stable"} . "</p>\n"); print("<p>#sh<br>export PACKAGESITE=" . $os{"PACKAGESITE"} . "<br>\n"); print("export PACKAGESITE=" . $os{"PACKAGESITE_stable"} . "</p>\n"); print "<div>pkg_add<br><textarea id=\"text1\" ${textarea_options}>" . $list{"pkg_add"} . "</textarea></div>\n"; print "<div>portupgrade<br><textarea id=\"text2\" ${textarea_options}>" . $list{"portupgrade"} . "</textarea></div>\n"; print "<div>portupgrade<br><textarea id=\"text3\" ${textarea_options}>" . "portupgrade -PP -r --new " . $list{"all"} . "</textarea></div>\n"; print "<div>pkg_info<br><textarea id=\"text10\" ${textarea_options}>" . $cgi->escapeHTML($os{"pkg_info"}) . "</textarea></div>\n"; print("<a name=\"osusume\"></a>" . $menubar); @TuikaList = ("apache+mod_ssl" , "ftpd-tls"); print "おすすめの追加パッケージ<br>\n"; foreach $item (@TuikaList) { print $cgi->escapeHTML($item) . "<br>\n"; } print("</body></html>"); 1;