LINUX.ORG.RU

Вопрос по Lighttpd

 ,


0

0

Подскажите ламеру, т.е. мне, что я не так делаю.

После компиляции и установки Lighttpd 1.4.31 из исходников, выполнил Init-скрипт, приведённый в wiki проекта, с учётом версии ОС и версии сервера.

После попытки стартовать сервис (daemon) ничего не выводило никуда, сервак не запускался, в логах пустота была. В общем, странно. Попробовал стартовать демон вручную - запустился! Значит дело в скрипте старта...

Пришлось полезть в /etc/init.d/lighttpd и найти там нечто непонятое мне. Очень прошу пояснить, что же у меня не получилось.

1-ое что обнаружил - это кривой путь в скрипте /etc/init.d/lighttpd:

# Check for missing binaries (stale symlinks should not happen)
#LIGHTTPD_BIN=/usr/sbin/lighttpd #это было, пришлось менять путь
LIGHTTPD_BIN=/usr/local/sbin/lighttpd
test -x $LIGHTTPD_BIN || exit 5

Путь изменил (видимо, это баг), теперь хотя бы не вываливается втихую. Теперь при старте серва вываливается с ошибкой:

/etc/init.d/lighttpd: 54: .: Can't open /etc/rc.status


Смотрю строку 54 и вижу фигу:
. /etc/rc.status

/etc/rc.status не существует. Все попытки поиска в инете ничего не находят.

Объясните пожалуйста ламеру (мне), что за команда такая "." (точка) ? Я знаю, что "." это текущий каталог в пути, но что значит «точка пробел путь» ?

Заранее спасибо.

P.S. На форуме lighttpd меня послали в Караганду, сказали, мол, если не знаешь что это, ставь только из пакетов убунты. но ведь они тоже когда-то начинали с нуля, если не помогать другим людям, мир погрузится в хаос и анархию... Я всегда стараюсь помогать если могу.

Правильно послали.

1. . — алиас source, man внутренние команды bash.

2. В чём вообще сакральный смысл сборки руками, тем более под убунтой?

spyro ()
Ответ на: комментарий от sergv

Спасибо!

Кто-нибудь имеет опыт установки Lighttpd 1.4.31 из сырцов? Не могу понять, почему же нету rc.status и где бы его раздобыть.

McArcher ()
Ответ на: комментарий от McArcher

Пользуются мозгом. Читают документацию. man lighttpd хотя бы. Запускают демона в ручную. Потом пишут или адаптируют готовый Init-скрипт.

sdio ★★★★★ ()
Ответ на: комментарий от sdio

Смею заверить, первые два пункта я успешно выполнил. Третий выполнил по совету из wiki на сайте Lighttpd. Они там сами указали, как лучше изменить скрипт. Процитирую даже (http://redmine.lighttpd.net/projects/lighttpd/wiki/InstallFromSource).

--------------------------

Init script

The init-script that is shipped with the source-tarball is meant to be run on a LSB conforming platform like SuSE, Fedora or Debian. For 1.4.x versions from r2742/1.4.27 onwords , use doc/initscripts/ instead of doc/ in the commands below.

sed -e 's/FOO/lighttpd/g' doc/initscripts/rc.lighttpd > /etc/init.d/lighttpd
chmod a+rx /etc/init.d/lighttpd
cp -p doc/initscripts/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir -p /etc/lighttpd

# < 1.4.27
install -Dp ./doc/lighttpd.conf /etc/lighttpd/lighttpd.conf

# > 1.4.28
cp -R doc/config/conf.d/ doc/config/*.conf doc/config/vhosts.d/ /etc/lighttpd/

chkconfig lighttpd on

If you're running CentOS or RHEL you might need to change the first line to this

sed -e 's/FOO/lighttpd/g' doc/initscripts/rc.lighttpd.redhat > /etc/init.d/lighttpd

In Debian / Ubuntu you use update-rc.d rather than chkconfig:

update-rc.d lighttpd defaults

--------------------------

Я и сделал по их инструкции. Плюс, добавил команды создания нужных папок и установки владельцев. В итоге мой скрипт стал таким:

sed -e 's/FOO/lighttpd/g' doc/initscripts/rc.lighttpd > /etc/init.d/lighttpd
chmod a+rx /etc/init.d/lighttpd
mkdir /etc/sysconfig
cp -p doc/initscripts/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir -p /etc/lighttpd

# > 1.4.28
cp -R doc/config/conf.d/ doc/config/*.conf doc/config/vhosts.d/ /etc/lighttpd/

update-rc.d lighttpd defaults

# Creating default lighttpd user
addgroup --system lighttpd
adduser --system --no-create-home --ingroup lighttpd lighttpd

# Creating & chowning other dirs
mkdir /var/lighttpd
chown -R lighttpd:lighttpd /var/lighttpd

chown -R lighttpd:lighttpd /etc/lighttpd

mkdir /var/log/lighttpd
chown -R lighttpd:lighttpd /var/log/lighttpd

mkdir /srv/www
mkdir /srv/www/htdocs
mkdir /srv/www/err
chown -R lighttpd:lighttpd /srv/www

mkdir /var/lib/lighttpd
chown -R lighttpd:lighttpd /var/lib/lighttpd

mkdir /etc/lighttpd
chown -R lighttpd:lighttpd /etc/lighttpd

# ?? /tmp/lighttpd-cache

mkdir /var/tmp/lighttpd
chown -R lighttpd:lighttpd /var/tmp/lighttpd

Я что-то неправильно сделал?

McArcher ()

Ubuntu не использует init-скрипты. Пишите upstart job. Можете взять готовый из пакета.

AITap ★★★★★ ()
Ответ на: комментарий от anonymous

Спасибо. Ему можно доверять? Кто-нибудь сравнивал побитово его творения? =)

McArcher ()
Ответ на: комментарий от McArcher

Это значит что мозгов нету не у меня, а у разрабов, которые писали про убунту.

Все-равно их у тебя нет. Так как по-фиг на upstart, ты же не осилил запустить в ручную скрипт, то что он лежит в /etc/init.d/ ничего не значит

sdio ★★★★★ ()
Ответ на: комментарий от sdio

Вы можете обзывать меня сколько Вам угодно, доказывать Вам ЧТО я запускал у меня нет желания =)

Вы даже ПРОЧИТАТЬ ВНИМАТЕЛЬНО ТЕКСТ ТОПИКА НЕ ОСИЛИЛИ! А ещё и обзываетесь... No comments...

McArcher ()
Ответ на: комментарий от McArcher

Что там читать? Если ты не осилил /path/to/lighttpd -f /path/to/lighttpd.conf , то и говорить не о чем. О боже! куда делся rc.status?! мы все умрем!!!

sdio ★★★★★ ()
Последнее исправление: sdio (всего исправлений: 1 )
Ответ на: комментарий от sdio

Хватит биться обстенку!

Подсказака: ищите фразу " Попробовал стартовать демон вручную - запустился!". Я на сервер уже давно файлы загрузил и протестировал страницу ошибки 404, загрузку файлов с неизвестными расширениями и страницу типа «Привет, Мир!»... А Вы всё равно продолжаете биться об стенку... :) Зачем?)))) И моё и Ваше время так тратить бездарно...

Если и это Вам ни о чём не говорит, то уж простите, прошу не занимать место ЛОРа на ненужный оффтоп. Больше не буду в этот топик писать. Даже если назовёте меня лохом :)

Удачи!

McArcher ()

vim /etc/init.d/lighttpd

:i


### BEGIN INIT INFO
# Provides: lighttpd
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $syslog
# Short-Description: lighttpd
# Description: the lighttpd web server
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO

. /lib/lsb/init-functions

LIGHTTPD_BIN=/usr/local/sbin/lighttpd
CONFIG=/etc/lighttpd/lighttpd.conf

function start() {
    "$LIGHTTPD_BIN -f $CONFIG"
}

function stop() {
    pkill lighttpd
}

function restart() {
    stop()
    sleep 3
    start()
}

case "$1" in 
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    restart
    ;;
    *)
    echo "Usage: blah-blah"
    ;;
esac

exit $?
:wq

# update-rc.d lighttpd enable

Difrex ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.