カテゴリー
FreeBSD Software Squirrelmail

FreeBSD (Squirrelmail)

/usr/ports/mail/squirrelmail

以前は/user/ports/japanese/に日本語版が置いてあったが今はここのみに置いてあるみたい。

日本語版本家では1.4.5で止まっているけど、portsのは1.4.8。とりあえずportsで入れてみる。

# cd /usr/ports/mail/squirrelmail
# portinstall

その後、/usr/local/www/squirrelmailに降りて、

# cd /usr/local/www/squirrelmail
# ./configure

で各種設定を行う。

日本語を使うなら、 メニュー10番目のLanguageの所を

Language preferences
1.  Default Language       : ja_JP
2.  Default Charset        : iso-2022-jp
3.  Enable lossy encoding  : false

でOK。あと、メニュー2番目のServer SettingsでIMAPサーバーを選択すれば使えるようになります。ウチはuw IMAPなのでこんな感じ。

IMAP Settings
--------------
4.  IMAP Server            : localhost
5.  IMAP Port              : 143
6.  Authentication type    : cram-md5
7.  Secure IMAP (TLS)      : false
8.  Server software        : uw
9.  Delimiter              : detect

あとは、適当に好みで。

apacheの設定は、SSLで使いたかったのでIncludesに置いたhttpd-ssl.confに下記を追記。

<code>Alias /webmail "/usr/local/www/squirrelmail"</code>
AllowOverride All
Options FollowSymLinks ExecCGI Includes
Allow from All

これで https://wwwほげほげ/webmail で使えるようになる。
ところが、 返信とかすると下記のようなウォーニングが。

Warning: preg_split() expects parameter 4 to be long, string given in /usr/local/www/squirrelmail/functions/imap_messages.php on line 808Warning: Invalid argument supplied for foreach() in/usr/local/www/squirrelmail/functions/mime.php on line 52

ぐぐってみたらパッチ発見。

http://www.hmailserver.com/forum/viewtopic….

http://sourceforge.net/tracker/index.php?func=detail&aid=1543573…..

# diff imap_messages.php.org imap_
messages.php
808c808
&lt; $flags = preg_split('/ /', $regs[1],-1,'PREG_SPLIT_NI_EMPTY');
---
&gt;                 $flags = preg_split('/ /', $regs[1],-1,PREG_SPLIT_NO_EMPTY);

これで解決。

カテゴリー
Apache FreeBSD PHP Software

FreeBSD (PHP5)

/usr/ports/lang/php5

# portinstall lang/php5
# cat /var/db/ports/php5-extensions/options

# This file is auto-generated by ‘make config’.
# No user-servicable parts inside!
# Options for php5-5.2.0
_OPTIONS_READ=php5-5.2.0
WITH_CLI=true
WITH_CGI=true
WITH_APACHE=true
WITHOUT_DEBUG=true
WITH_SUHOSIN=true
WITH_MULTIBYTE=true
WITHOUT_IPV6=true
WITHOUT_REDIRECT=true
WITHOUT_DISCARD=true
WITH_FASTCGI=true
WITH_PATHINFO=true

/usr/ports/lang/php5-extensions

# portinstall lang/php5
# cat /var/db/ports/php5-extensions/options

# This file is auto-generated by ‘make config’.
# No user-servicable parts inside!
# Options for php5-extensions-1.0
_OPTIONS_READ=php5-extensions-1.0
WITHOUT_BCMATH=true
WITH_BZ2=true
WITH_CALENDAR=true
WITH_CTYPE=true
WITHOUT_CURL=true
WITHOUT_DBA=true
WITHOUT_DBASE=true
WITH_DOM=true
WITHOUT_EXIF=true
WITHOUT_FILEINFO=true
WITHOUT_FRIBIDI=true
WITH_FTP=true
WITH_GD=true
WITH_GETTEXT=true
WITHOUT_GMP=true
WITH_HASH=true
WITH_ICONV=true
WITHOUT_IMAP=true
WITHOUT_INTERBASE=true
WITHOUT_LDAP=true
WITH_MBSTRING=true
WITHOUT_MCRYPT=true
WITHOUT_MHASH=true
WITHOUT_MING=true
WITHOUT_MSSQL=true
WITH_MYSQL=true
WITHOUT_MYSQLI=true
WITHOUT_NCURSES=true
WITHOUT_ODBC=true
WITHOUT_OPENSSL=true
WITHOUT_PCNTL=true
WITH_PCRE=true
WITH_PDF=true
WITH_PDO=true
WITHOUT_PGSQL=true
WITH_POSIX=true
WITHOUT_PSPELL=true
WITHOUT_READLINE=true
WITHOUT_RECODE=true
WITH_SESSION=true
WITHOUT_SHMOP=true
WITH_SIMPLEXML=true
WITHOUT_SNMP=true
WITHOUT_SOAP=true
WITHOUT_SOCKETS=true
WITH_SQLITE=true
WITHOUT_SYBASE_CT=true
WITHOUT_SYSVMSG=true
WITHOUT_SYSVSEM=true
WITHOUT_SYSVSHM=true
WITHOUT_TIDY=true
WITH_TOKENIZER=true
WITHOUT_WDDX=true
WITH_XML=true
WITH_XMLREADER=true
WITHOUT_XMLRPC=true
WITH_XMLWRITER=true
WITHOUT_XSL=true
WITHOUT_YAZ=true
WITH_ZIP=true
WITH_ZLIB=true

/usr/local/etc/apache22/httpd.confに下記追記

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

同じく、index.phpをDeirectoryIndexに追記

DirectoryIndex index.php index.html index.htm
カテゴリー
FreeBSD MySQL

FreeBSD (MySQL5.1)

/usr/ports/databases/mysql51-server

/usr/local/etc/pkgtools.conf

‘databases/mysql51-*’ => [
‘WITH_XCHARSET=all’,
],

↑ 紆余曲折の末、とりあえずこれで済ませました。

# portinstall database/mysql51-server
# cd /usr/local/bin
# ./mysql_install_db
# cd /var/db
# chown -R mysql:mysql mysql

/etc/rc.conf に mysql_enable=”YES” を追記。

デフォルトのDBディレクトリは /var/db/mysql になるので、別の場所にしたければ、 /etc/rc.conf にmysql_dbdir = “ほげほげ” をさらに追記すればいい。

カテゴリー
Apache FreeBSD Software

FreeBSD (Apache2.2 : httpready)

「[warn] (2)No such file or directory: Failed to enable the ‘httpready’ Accept Filter」と言ってApacheに怒られた。

ちょっとググってみたらビンゴなページがあった。感謝。

# kldload accf_http.ko

or
「/boot/loader.conf」に

accf_http_load=”YES”

を追加。

カテゴリー
FreeBSD squid

FreeBSD (Squid 2.6)

/usr/ports/www/squid26

/usr/local/etc/pkgtools.confに下記追記

MAKE_ARGS = {
‘*’ => ‘WITHOUT_X11=yes’,
‘www/squid26′ => [
‘SQUID_UIG=squid’,
‘SQUID_GID=squid’,
‘SQUID_LANGUAGES=”English Japanese”‘,
‘SQUID_DEFAULT_LANG=Japanese’,
],
}

# portinstall www/squid26

で一発。ダイアログで下記を選択

SQUID_DELAY_POOLS=true
SQUID_SNMP=true
SQUID_CARP=true
SQUID_WCCP=true
SQUID_IDENT=true
SQUID_REFERER_LOG=true
SQUID_USERAGENT_LOG=true
SQUID_KQUEUE=true

/usr/local/etc/squid/squid.confを編集
#キャッシュを増やす 100(MB)->4096(MB)
cache_dir ufs /usr/local/squid/cache 4096 16 256
#アクセス許可のネットワークを指定
acl ほげほげ src www.xxx.yyy.zzz/255.255.255.248
#アクセスを許可
http_access allow ほげほげ

#できるだけ寡黙なプロキシにするための設定
visible_hostname unknown
forwarded_for off
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

昔のsquidの時は下3行の設定が無くてソースをいじって対応してました。なのでportsは使っていなかったけど、今回はportsを使うようにしました。

他にも
anonymize_headers deny From Referer Server
anonymize_header deny User-Agent WWW-Authenticate Link
fake_user_agent Mozilla/4.99 [en] (Windows NT 5.0; U)

とかあるけど、ここまでやると逆に不自然なのであえて指定してません。

設定間違いが無いかは
/usr/local/sbin/squid parse

で確認。エラーが出たら修正。

portsの場合はデフォルトで/usr/local/squid下にキャッシュやログができます。

squidは使い始めにキャッシュのディレクトリ構造を作ってやる必要があるので

/usr/local/sbin/squid -z

で初期化する。

/etc/rc.confに

squid_enable=yes

を追加。

/usr/local/etc/rc.d/squid startで起動。

なんかstopがうまく効かない。とにかく動いたので後日調べよう。

↑これは/usr/local/squid/logs/squid.pidに変な数字が入っていたせいだった。消して再起動で動くようになった。んー、まあいいか。

パスワードによるアクセス制限

squid.confに追記

acl hogehoge proxy_auth REQUIRED
http_access allow hogehoge

auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/passwd.squid
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

/usr/local/etcにパスワードファイル作成

# htpasswd -c passwd.squid  ユーザー名
New password:
Re-type new password:
Adding password for user  ユーザー名