Установка конференции phpBB на сервер



Установка программ

Понадобится lighttpd, PHP, APC, msmtp (считаем, что MySQL установили ранее). Ниже - установка полного комплекта (много лишних модулей, но они могут понадобиться для других проектов):

opkg install lighttpd
opkg install lighttpd-mod-access
opkg install lighttpd-mod-accesslog
opkg install lighttpd-mod-alias
opkg install lighttpd-mod-auth
opkg install lighttpd-mod-cgi
opkg install lighttpd-mod-cml
opkg install lighttpd-mod-compress
opkg install lighttpd-mod-evasive
opkg install lighttpd-mod-evhost
opkg install lighttpd-mod-expire
opkg install lighttpd-mod-extforward
opkg install lighttpd-mod-fastcgi
opkg install lighttpd-mod-flv-streaming
opkg install lighttpd-mod-magnet
opkg install lighttpd-mod-proxy
opkg install lighttpd-mod-redirect
opkg install lighttpd-mod-rewrite
opkg install lighttpd-mod-rrdtool
opkg install lighttpd-mod-scgi
opkg install lighttpd-mod-secdownload
opkg install lighttpd-mod-setenv
opkg install lighttpd-mod-simple-vhost
opkg install lighttpd-mod-ssi
opkg install lighttpd-mod-status
opkg install lighttpd-mod-trigger-b4-dl
opkg install lighttpd-mod-userdir
opkg install lighttpd-mod-usertrack
opkg install lighttpd-mod-webdav
opkg install php5
opkg install php5-cgi
opkg install php5-cli
opkg install php5-fastcgi
opkg install php5-mod-ctype
opkg install php5-mod-curl
opkg install php5-mod-dom
opkg install php5-mod-ftp
opkg install php5-mod-gd
opkg install php5-mod-hash
opkg install php5-mod-iconv
opkg install php5-mod-json
opkg install php5-mod-mbstring
opkg install php5-mod-mysql
opkg install php5-mod-mysqli
opkg install php5-mod-openssl
opkg install php5-mod-pdo-mysql
opkg install php5-mod-pdo-sqlite
opkg install php5-mod-pdo
opkg install php5-mod-session
opkg install php5-mod-simplexml
opkg install php5-mod-soap
opkg install php5-mod-sockets
opkg install php5-mod-sqlite3
opkg install php5-mod-xml
opkg install php5-mod-xmlreader
opkg install php5-mod-xmlwriter
opkg install php5-mod-zip
oplg install php5-pecl-apc

opkg --force-depends install php5-pecl-apc
opkg install msmtp

Настройка программ

lighttpd

lighttpd настраивается в соответствии с документацией, предоставляемой разработчиками phpBB. Пример (см. etc/lighttpd/lighttpd.conf):

# Deny access to internal phpbb files.
$HTTP["url"] =~ "^/forum/(config\.php|common\.php|_install|includes|cache|files|store|images/avatars/upload)" {
url.access-deny = ( "" )
}

Минимальный набор модулей:

server.modules = ( 
"mod_access",
"mod_rewrite", 
"mod_redirect", 
"mod_auth", 
"mod_fastcgi",
"mod_cgi",
"mod_accesslog"
)

Имя индексного файла:

index-file.names = ( "index.php", "index.html", "default.html", "index.htm", "default.htm" )

Типы файлов:

mimetype.assign = (  
".pdf"          =>      "application/pdf",
".sig"          =>      "application/pgp-signature",
".spl"          =>      "application/futuresplash",
".class"        =>      "application/octet-stream",
".ps"           =>      "application/postscript",
".torrent"      =>      "application/x-bittorrent",
".dvi"          =>      "application/x-dvi",
".gz"           =>      "application/x-gzip",
".pac"          =>      "application/x-ns-proxy-autoconfig",
".swf"          =>      "application/x-shockwave-flash",
".tar.gz"       =>      "application/x-tgz",
".tgz"          =>      "application/x-tgz",
".tar"          =>      "application/x-tar",
".zip"          =>      "application/zip",
".mp3"          =>      "audio/mpeg",
".m3u"          =>      "audio/x-mpegurl",
".wma"          =>      "audio/x-ms-wma",
".wax"          =>      "audio/x-ms-wax",
".ogg"          =>      "application/ogg",
".wav"          =>      "audio/x-wav",
".gif"          =>      "image/gif",
".jar"          =>      "application/x-java-archive",
".jpg"          =>      "image/jpeg",
".jpeg"         =>      "image/jpeg",
".png"          =>      "image/png",
".xbm"          =>      "image/x-xbitmap",
".xpm"          =>      "image/x-xpixmap",
".xwd"          =>      "image/x-xwindowdump",
".css"          =>      "text/css",
".html"         =>      "text/html",
".htm"          =>      "text/html",
".js"           =>      "text/javascript",
".asc"          =>      "text/plain",
".c"            =>      "text/plain",
".cpp"          =>      "text/plain",
".log"          =>      "text/plain",
".conf"         =>      "text/plain",
".text"         =>      "text/plain",
".txt"          =>      "text/plain",
".dtd"          =>      "text/xml",
".xml"          =>      "text/xml",
".mpeg"         =>      "video/mpeg",
".mpg"          =>      "video/mpeg",
".mov"          =>      "video/quicktime",
".qt"           =>      "video/quicktime",
".avi"          =>      "video/x-msvideo",
".asf"          =>      "video/x-ms-asf",
".asx"          =>      "video/x-ms-asf",
".wmv"          =>      "video/x-ms-wmv",
".bz2"          =>      "application/x-bzip",
".tbz"          =>      "application/x-bzip-compressed-tar",
".tar.bz2"      =>      "application/x-bzip-compressed-tar",
# default mime type
""              =>      "application/octet-stream",
)

PHP-fastcgi:

fastcgi.server = (
".php" => (
	"localhost" => (
		"max-procs" => 2,
		"idle-timeout" => 30,
		"socket" => "/media/DISK_A1/system/tmp/php-fastcgi.socket",
		"bin-path" => "/media/DISK_A1/system/usr/bin/php-fcgi",
		"bin-environment" => (
			"PHP_FCGI_CHILDREN" => "",
			"PHP_FCGI_MAX_REQUESTS" => "100"
		)
	)
)
)

rewrite:

url.rewrite-if-not-file = (
"^/(.*)\?(.*)$" => "/index.php?q=$1&$2",
"^/(.*)$" => "/index.php?q=$1"
)

PHP

В etc/php.ini внести изменения или убедиться в правильности настроек:

[PHP]

sendmail_path = "/media/DISK_A1/system/usr/bin/msmtp -t -i"

max_execution_time = 3600	; Maximum execution time of each script, in seconds.
max_input_time = 3600	   	; Maximum amount of time each script may spend parsing request data.
memory_limit = 20M		; Maximum amount of memory a script may consume.

error_reporting  =  E_ALL & ~E_NOTICE & ~E_STRICT

doc_root = "/media/DISK_A1/system/www"

upload_tmp_dir = "/media/DISK_A1/system/tmp"
upload_max_filesize = 8M

extension=apc.so
extension=ctype.so
extension=curl.so
extension=dom.so
extension=ftp.so
extension=gd.so
extension=hash.so
extension=iconv.so
extension=json.so
extension=mbstring.so
extension=mcrypt.so
extension=mysql.so
extension=mysqli.so
extension=openssl.so
extension=pdo.so
extension=pdo-mysql.so
extension=session.so
extension=sockets.so
extension=xml.so

[APC]
apc.enabled = 1
apc.shm_size = 32M		;The size of each shared memory segment.
apc.shm_strings_buffer = 2M	;Strings buffer must be < shm_size
apc.max_file_size = 1M		;Max file size
apc.gc_ttl = 345600		;4 * 24 * 3600
apc.rfc1867_ttl = 345600	;4 * 24 * 3600 sec
apc.num_files_hint = 1024	;1000 default
[Date]

date.timezone = Europe/Moscow
[Session]

session.save_path = "/media/DISK_A1/system/tmp"

APC

Качаем apc.php с http://pecl.php.net/package/APC и устанавливаем в system/www/apc. Настройки уже были выполнены в php.ini.

Изменяем настройки сервера lighttpd.conf, для GIGA II параметр PHP_FCGI_CHILDREN можно увеличить до 3-5, а для первой GIGA более 1-2 нежелательно (мало памяти):

PHP-fastcgi:

fastcgi.server = (
".php" => (
	"localhost" => (
		"max-procs" => 1,
		"idle-timeout" => 30,
		"socket" => "/media/DISK_A1/system/tmp/php-fastcgi.socket",
		"bin-path" => "/media/DISK_A1/system/usr/bin/php-fcgi",
		"bin-environment" => (
			"PHP_FCGI_CHILDREN" => "2",
			"PHP_FCGI_MAX_REQUESTS" => "100"
		)
	)
)
)

msmtp

Пример настроек для Яндекс-почты в etc/msmtprc:

account yandex
host smtp.yandex.ru
port 587
protocol smtp
auth on
from <мой email>
user <мой email>
password <мой пароль>
tls on
tls_starttls on
tls_certcheck off
account default : yandex
logfile /media/DISK_A1/system/var/log/msmtp.log
syslog LOG_MAIL
phpBB

Качаем дистрибутив - лучше взять переведенный с http://phpbbguru.net - и далее ставим по прилагаемой к дистрибутиву инструкции.