Шукати в цьому блозі

пʼятницю, 30 жовтня 2009 р.

Быстрая установка и настройка lighttpd на Ubuntu server 9.04 + SSL

Возникла необходимость поднять легкий(на слабом компьютере) веб-сервер с поддержкой SSL.
Был выбран lighttpd с установкой на имеющиюся платформу на базе ОС Ubuntu Server Edition 9.04 (Jaunty Jackalope).

Установка веб-сервера:
sudo apt-get install lighttpd

Для поддержки SSL:
sudo apt-get install openssl

Создаем каталоги, назначение которых буде указанно позже при конфигурации веб-сервера:


sudo mkdir -p /var/www/Abase/
sudo mkdir -p /var/www/Abase/cgi-bin/
sudo mkdir -p /var/www/Abase/cgi-bin/.access
sudo mkdir -p /etc/lighttpd/certs
sudo mkdir -p /var/www/log.Abase
sudo chown www-data:www-data /var/www/log.Abase
sudo chmod 755 /var/www/log.Abase



Редактируем файл конфигурации:

cd /etc/lighttpd
vim lighttpd.conf


lighttpd.conf

Подключаемые модули:
server.modules = (
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_cgi",
"mod_auth",

)


Указываем корень сервера и лог-файлов:

server.document-root = "/var/www/Abase/"
server.errorlog = "/var/log/lighttpd/error.log"
accesslog.filename = "/var/log/lighttpd/access.log"


Указываем файлы, которые будут подставляться, в качестве индексных файлов:
index-file.names = ( "index.cgi", "index.html",
"index.htm", "default.cgi",
"index.shtml" )



Описываем правила для CGI скриптов (в моем случае-это скрипты написанные на Perl):

static-file.exclude-extensions = ( ".cgi",".pl" )

cgi.assign = ( ".pl" => "/usr/bin/perl",
".cgi" => "/usr/bin/perl" )

$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = (".cgi" => "/usr/bin/perl",
".pl" => "/usr/bin/perl" )
}


Описываем авторизацию при доступе к серверу, в даном случае от корня и всем разрешенным пользователям:
auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile ="/var/www/Abase/cgi-bin/.access/.lpassword"
auth.require = ( "/" => (
"method" => "basic",
"realm" => "Password protected area",
"require" => "valid-user"
)
)


Назначаем порт, на котором будет работать сервер, если эта инструкция за комментирована, то по-умолчанию порт 80.
server.port = 8080


SSL инструкции:

$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem"
server.document-root = "/var/www/Abase/"
server.errorlog = "/var/www/log.Abase/Abase.error.log"
accesslog.filename = "/var/www/log.Abase/Abase.access.log"
}


UID от которых будет работать lighttpd:
server.username = "www-data"
server.groupname = "www-data"



Lighttpd по-умолчанию разрешает листать все каталоги от корня и показывать все вложенные файлы. Поэтому введем некоторые ограничения на каталоги /cgi-bin/.access/ и /cgi-bin/, а именно запретим листание и показ файлов начинаемых с точки:

$HTTP["url"] =~ "^/cgi-bin/.access/($|/)" {
dir-listing.activate = "disable",
dir-listing.hide-dotfiles = "enable"
}
$HTTP["url"] =~ "^/cgi-bin/($|/)" {
dir-listing.activate = "disable",
dir-listing.hide-dotfiles = "enable"
}


Сохраняем настройки и выходим из редактора, остальные инструкции можно оставить по-умолчанию, или же изучив документацию править под свои задачи.
Конечно это примитивная и первичная настройка веб-сервера, не настроено "руление" ошибок, может что еще, но данной конфигурации достаточно для старта.

Небольшое отступление от параноика, я всегда думаю, о том что-то упустил в настройках по безопасности, потому в каталоге /var/www/Abase/cgi-bin/ разместил индексный файл с редиректом на корень, вот его листинг:

cat /var/www/Abase/cgi-bin/default.cgi

#!/usr/local/bin/perl
use CGI;
my $query = CGI->new();
print $query->redirect('/')


Создание сертификатов.
Конечно, если Вы работаете в большой солидной компании, но лучше прикупить сертификатов, но в частном случае можно сгенерировать и свои:

cd /etc/lighttpd/certs
openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes
chmod 400 lighttpd.pem


Этот сертификат действительный 365 дней. Конечно все браузеры будут предупреждать о том что сертификат не доверительный, но пользователь может добавлять его в исключения.

Создаем файл, где будут хранится списки разрешенных пользователей и их пароли:
cat > .lpassword
username1:username1password
username2:username2password
username3:username3password

^D
Добавили три пользователя username1, username2, username3 с паролями username1password, username2password, username3password.

sudo chown root:www-data /var/www/Abase/cgi-bin/.access
sudo chmod 750 /var/www/Abase/cgi-bin/.access
sudo chown root:www-data /var/www/Abase/cgi-bin/.access/.lpassword
sudo chmod 640 /var/www/Abase/cgi-bin/.access/.lpassword



Теперь редактировать файл пользователей Вы сможете только указав прямую ссылку на файл:
sudo vim /var/www/Abase/cgi-bin/.access/.lpassword


Перезапускаем наш веб-сервер:
/etc/init.d/lighttpd restart

Проверяем в браузере.

источник 1
источник 2

четвер, 29 жовтня 2009 р.

Установка Perl модуля DBD::mysql. Ошибка Can't exec "mysql_config".

Ubuntu linux 9.04 server ed.
Имея установленный mysql-client при установке, с помощью cpan, модуля DBD::mysql, процесс завершался ошибой:

Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Can't exec "mysql_config": No such file or directory at Makefile.PL line 464.
Can't find mysql_config. Use --mysql_config option to specify where mysql_config is located
Failed to determine directory of mysql.h. Use

perl Makefile.PL --cflags=-I dir

to set this directory. For details see the INSTALL.html file,
section "C Compiler flags" or type

perl Makefile.PL --help
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
Warning (usually harmless): 'YAML' not installed, will not store persistent state
CAPTTOFU/DBD-mysql-4.013.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
Could not read '/root/.cpan/build/DBD-mysql-4.013-2UEonO/META.yml'. Falling back to other methods to determine prerequisites
Failed during this command:
CAPTTOFU/DBD-mysql-4.013.tar.gz : writemakefile NO '/usr/bin/perl Makefile.PL INSTALLDIRS=site' returned status 512


Решение - установка дополнительного пакета libmysql++-dev который содержит C++ API для запросов к Mysql (и других SQL баз):
sudo apt-get install libmysql++-dev

Шпаргалка по простейшей настройке сетевых интерфейсов в Ubuntu linux

Установлено Ubuntu linux server 9.04
Два сетевых интерфейса (eth0, eth1).

Необходимо настроить eth0 на получение адреса по DHCP, к eth1 привязать статический адрес:

sudo vi /etc/network/interfaces

#Интерфейс получает адрес по DHCP
auto eth0
iface eth0 inet dhcp


#Интерфейс имеет статический адрес, маршрут по умолчанию, через этот интерфейс

auto eth1
iface eth1 inet static
address 192.168.1.90
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255


Перечитываем настройки интрфейсов:
sudo /etc/init.d/networking restart

Изменение имени хоста:

sudo /bin/hostname
sudo /bin/hostname newname


Источник

понеділок, 12 жовтня 2009 р.

Установка DSS(Darwin Streaming Server 6.0.3) на Linux (Ubuntu 9.04 server)

По сути сие руководство перевод статьи How to install Darwin Streaming Server 6.0.3 on Ubuntu 8.04.2 Hardy.

И так:

1. sudo apt-get update && sudo apt-get upgrade - обновляем систему;

2. sudo apt-get install build-essential - если еще не установили(этот пакет необходим для сборки пакетов Debian);

3. sudo addgroup -–system qtss
sudo adduser –system –no-create-home –ingroup qtss qtss
- добавляем группу и пользователя, от которого будет запускаться DSS.

4. cd /usr/local/src/ - переходим в каталог, в котором будем собирать наш сервер из исходников.

5. с сервера http://github.com/lstoll/dss скачиваем последнюю версию DSS (в моем случае это версия lstoll-dss-984a136).

6. tar -xvf lstoll-dss-984a136.tar - распаковываем;

7. cd lstoll-dss-lstoll-dss-984a136/ - переходим в образовавшийся каталог;

8. /Buildit install - подготавливаем пакет к инсталяции;

9. cd DarwinStreamingSrvr6.0.3-Linux переходим в образовавшийся каталог;

10. ./Install - инсталлируем, в процессе установки возникнет необходимость ввести имя пользователя и пароль;

11. если инсталляция прошла успешно, то введя в браузер адрес хоста и порт 1220 увидете панель администрирования (логин и пароль введенные значения в пункте 10)



12. Создаем скрипт запуска
cd /etc/init.d/
cat > dss
#!/bin/sh
#
# chkconfig: 35 92 12
# description: Quicktime Streaming Media Server
#
# Slight tweak of file create by Larry Underhill 05/20/02
#
# init script to start up the quicktime (Darwin) streaming server
# tested on Redhat 7.2, Fedora Core 4 and CentOS-4.3
# source function library
#. /etc/rc.d/init.d/functions

case "$1" in
start)
if test -r /var/lock/dssd
then
echo "Lockfile /var/lock/dssd exists. Server not started."
failure
else
echo "Starting Darwin Streaming Server: "
/usr/local/sbin/DarwinStreamingServer && touch /var/lock/dssd
echo "Starting DSS Admin Console: "
/usr/local/sbin/streamingadminserver.pl
echo "DSS and DSS Admin Console started…"
fi
;;

stop)
echo "Stopping Darwin Streaming Server: "
[ -f /var/lock/dssd ] || exit 0
echo "stopping…"
killall DarwinStreamingServer && killall streamingadminserver.pl
#ps ax | awk ‘{print $1" " $5}’ | awk ‘/DarwinStreamingServer/ {print $1}’ | xargs -r kill -9 && success || failure
#echo "Stopping DSS Admin Console: "
#ps ax | awk ‘/streamingadminserver.pl/ {print $1}’ | xargs -r kill -9 && success || failure
rm -f /var/lock/dssd
echo
;;

restart)
$0 stop
sleep 1
$0 start
;;

*)
echo "Usage: $0 [start|stop|restart]"
exit 1
esac
exit 0


выходим из cat нажав ctrl + d

13. chmod +x dss - делаем созданный скрипт исполняемым;

14. root@vombantu:/etc/init.d# update-rc.d dss defaults
update-rc.d: warning: /etc/init.d/dss missing LSB information
update-rc.d: see
Adding system startup for /etc/init.d/dss ...
/etc/rc0.d/K20dss -> ../init.d/dss
/etc/rc1.d/K20dss -> ../init.d/dss
/etc/rc6.d/K20dss -> ../init.d/dss
/etc/rc2.d/S20dss -> ../init.d/dss
/etc/rc3.d/S20dss -> ../init.d/dss
/etc/rc4.d/S20dss -> ../init.d/dss
/etc/rc5.d/S20dss -> ../init.d/dss


15. для проверки можем перезапустить наш Darwin Streaming Server
masteruser@vombantu:~$ sudo /etc/init.d/dss restart
Stopping Darwin Streaming Server:
Starting Darwin Streaming Server:
Starting DSS Admin Console:
DSS and DSS Admin Console started…


Наслаждаемся.

источник.

Linux (Ubuntu) + ffmpeg with amr, mp3, faac, faad

Исходные данные:
ОС - Ubunu server 9.04 в минимальной конфигурации.
Необходимо собрать ffmpeg c поддержкой amr,faac,faad,mp3,h264

1) обновляемся sudo apt-get update && sudo apt-get upgrade

2) sudo apt-get install build-essential

3) скачиваем исходники ffmpeg wget http://ffmpeg.org/releases/ffmpeg-export-snapshot.tar.bz2,
можно с svn svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg, но у меня прокси не пропускает.

4) для х264 apt-get install libx264-dev
правда могут случиться исключения, у некоторых камрадов, с этим пакетом ffmpeg, не собирался, потому есть вариант слить исходники и скомпилировать:
git clone git://git.videolan.org/x264.git , но опять мой прокси не пропускает, потому исходники перенес на флешке.

распаковываем, далее
cd x264/
./configure
make && make install

5) apt-get install libgpac-dev libmp3lame-dev libfaac-dev libfaad-dev

6) AMR sudo apt-get install libamrnb-dev libamrwb-dev можно так, но я предпочел скачать исходники с http://opencore-amr.sourceforge.net и собрать кодеки из них.

7) распаковываем и заходим в каталог ffmpeg-export-snapshot
./configure --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-shared --enable-libfaac --enable-libmp3lame --enable-gpl --enable-nonfree --enable-version3 --enable-libfaad --enable-yasm


make && make install

После конфигурирования, зборки и установки обнаружился при запуске сбой:
error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory
В источнике №2 было найдено решение:
cd /etc/ld.so.conf.d
echo /usr/local/lib > custom-libs.conf
/usr/local/lib

Как результат:
ffmpeg
FFmpeg version SVN-r20192-snapshot, Copyright (c) 2000-2009 Fabrice Bellard, et al.
built on Oct 12 2009 14:14:37 with gcc 4.3.3
configuration: --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-shared --enable-libfaac --enable-libmp3lame --enable-gpl --enable-nonfree --enable-version3 --enable-libfaad --enable-yasm
libavutil 50. 3. 0 / 50. 3. 0
libavcodec 52.36. 0 / 52.36. 0
libavformat 52.39. 0 / 52.39. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0. 7. 1 / 0. 7. 1
At least one output file must be specified


Были использованы следующие источники:
источник №1
источник №2
источник №3



UPD: 18.09.2010