Apache + php + suEXEC

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Apache + php + suEXEC

Непрочитанное сообщение Данила » 2006-11-07 20:52:18

Вставил в /etc/make.conf:

(пути и т.д я заменял на свои значения, сдесь привожу данные из статьи)

Система FreeBSD 5.4 RELEASE . PHP установлен как модуль.

Код: Выделить всё


# Директория где лежат порты
PORTSDIR?=      /usr/ports

# APACHE
.if ${.CURDIR} == ${PORTSDIR}/www/apache13
# Для запуска CGI-скриптов от gid и uid пользователя, а не WEB-сервера
WITH_APACHE_SUEXEC=yes
# Где будет работать suexec (ещё будет в userdir)
APACHE_SUEXEC_DOCROOT=/usr/local/hosting
# Пользовательские директории, в которых будет работать suexec
APACHE_SUEXEC_USERDIR="/usr/local/hosting/*/cgi-bin"
# Настройки производительности (без комментов - объяснений толковых не нашёл,
# а может торопился и плохо искал...)
APACHE_SUEXEC_LOG=/usr/local/var/log/httpd-suexec.log
APACHE_HARD_SERVER_LIMIT=yes
WITH_APACHE_PERF_TUNING=yes
APACHE_HARD_SERVER_LIMIT=1024
.endif
Потом

Код: Выделить всё

>cd /usr/ports/www/apache13
/usr/ports/www/apache13/>make deinstall clean
/usr/ports/www/apache13/>make install clean

Вставил это в /etc/login.conf:

Код: Выделить всё

webuser:\
        :copyright=/etc/COPYRIGHT:\
        :welcome=/etc/motd:\
        :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,EDITOR=ee:\
        :path=/bin /usr/bin /usr/local/bin:\
        :manpath=/usr/share/man /usr/local/man:\
        :nologin=/sbin/nologin:\
        :cputime=5m:\
        :datasize=512M:\
        :stacksize=4M:\
        :memorylocked=64M:\
        :memoryuse=256M:\
        :filesize=512M:\
        :coredumpsize=0:\
        :openfiles=1024:\
        :maxproc=64:\
        :sbsize=unlimited:\
        :priority=20:\
        :requirehome:\
        :umask=026:\
        :tc=default:
>cap_mkdb -v /etc/login.conf
cap_mkdb: 9 capability records

Ребутнул апачь, потом вообще ребутнул сервер. Но апачь так и остался nobody. Что делать. Мне ответили что надо занести его в эту группу, но увы, я не знаю как. Подскажите плз. (Юзеры создаются панелью управления, так что на создание их повлиять ни как не получится.)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-07 21:01:23

шелл есть?

Код: Выделить всё

csh
setenv EDITOR ee
vipw
класс пользователя - это 5-e поле из разделённых запятыми (обычно - пустое, эквивалентно - default). т.е.:

Код: Выделить всё

nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin
1. - nobody - имя
2. * - пароль (его отсутствие - т.к. шифрованный пароль никогда не совпадёт со звёздочкой)
3. 65534 - UID (уникальный идентификатор пользователя)
4. 65534 - GID (уник. ид. группы пользователя)
5. пустое поле. это и есть класс логина. сюда вписываешь webuser
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-07 21:01:55

я вот непонял - зачем апач ограничивать, надо же пользователей...
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-07 21:25:17

Вы посоветовали.... вероятно я не так понял. Мне нужно сделать так чтобы я видел кто грузит сервер. То есть элементарно командой top. Этого и пытаюсь добиться. Как сделать в этом случае?

p.s Кстати, клас default - это клас пользователей по умолчанию? То есть если класс пользователя не указан, то применяются настройки класса default?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-07 22:00:58

про P.S. - да.
=========
про top - апач не будет выполняться от того пользователя, которому принадлежит сайт.
по крайней мере, я не знаю таких штатных средств. вариант - php - как cgi и описан в статье.. будет на 10-15% медленней работать. в остально - всё также, тока настройки стали гибче.
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-07 22:46:21

А про первое? Объясните что не так плз, у меня серъезные траблы по этому поводу. Хотелось бы выслушать профи.

Кстати ваш сайт мне и так очень сильно помог. Хорошо пишите, интересно и в тему.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-07 23:44:07

я вот непойму чего ты хочешь в итоге добиться.
ибо если тебя правильно понимаю - на твои вопросы уже ответили неоднокртано.
либо понимаю неверно
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-08 0:08:01

Я хочу узнать, как сделать так, чтобы было видно кто грузит сервер. Я настроил suexec как написано было в статье, но пхп все равно nobody. Вот и хочу я узнать, как заставить пхп выполняться от имени пользователя который их запустил, чтобы я видел , кто создает нагрузку на сервер.

Как заставить пхп? Что нужно сделать чтобы он работал от имени пользователя запустившего скрипт. Возможно вы подумаете "как все запущено", но я не знаю как с пхп модуля к апачу перейти на пхп как CGI. Компилировал пхп с опциями CLI, Module, CGI. Так что по идеи немного поправить надо

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-08 0:14:57

дык... в статье же описано...
модуль из конфига апача убираешь, и настриваешь виртуалхосты по примеру...
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-08 17:20:20

У меня тогда выдает

Код: Выделить всё

Internal Server Error 500.
Вот типичный виртуал хост. Вот конфиг: _http://onepage.ru/httpd.conf

Код: Выделить всё

<VirtualHost 72.232.233.2>
ServerAlias welcam.onepage.ru
ServerAdmin webmaster@welcam.onepage.ru
DocumentRoot /home/ka73ebu/public_html
BytesLog domlogs/welcam.onepage.ru-bytes_log
User ka73ebu
Group ka73ebu
<IfModule mod_php4.c>
php_admin_value open_basedir "/home/ka73ebu/:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_value open_basedir "/home/ka73ebu/:/usr/lib/php:/usr/local/lib/php:/tmp"
</IfModule>
ServerName http://www.welcam.onepage.ru
ServerAlias spb01.net.ru http://www.spb01.net.ru
ServerAlias portal-spb.pp.ru http://www.portal-spb.pp.ru
ServerAlias portal-spb.net.ru http://www.portal-spb.net.ru
ScriptAlias /cgi-bin/ /home/ka73ebu/public_html/cgi-bin/

User ka73ebu
Group ka73ebu
TransferLog /usr/local/apache/domlogs/welcam.onepage.ru
</VirtualHost>
Последний раз редактировалось Alex Keda 2008-09-18 22:30:09, всего редактировалось 1 раз.
Причина: [code][/code] - для кого?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-08 18:57:52

в логах что?
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-08 21:03:21

Какаято байда типа "файл /usr/bin/php/index.php not found". А что касается ошибки 500 то даже хз, в логах не было записи о ней

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-08 21:47:44

ДЫК, а бииарник php где?
============
чё-то не как у меня сделал. php-cgi надо было в cgi-bin rkfcnm
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-08 22:01:46

Вроде так же. Бинарник там и есть.

php-cgi надо было в cgi-bin класть - а какая разница? (это не я клал, а панел ьпо умолчанию).

p.s еси я собираю пхп из портов вместе c suEXEC то также возникает ошибка 500. Ума не приложу в чем дело

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-08 22:31:01

в логах всё написнао...
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-09 2:19:08

_http://onepage.ru/error_log.txt - вот лог. Эксперементировал токо с одним сайтом - /home/codingcl/public_html/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-09 12:00:26

а ты не хочешь сделать как у меня? т.е. бинарники разложить как положено?
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-09 20:24:23

Вопрос уже решен. Спасибо за помощь

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-11-10 0:10:22

ну так поделись решенеим.
интересно же..
Убей их всех! Бог потом рассортирует...

Данила
рядовой
Сообщения: 18
Зарегистрирован: 2006-11-05 18:35:09

Непрочитанное сообщение Данила » 2006-11-10 19:15:48

Проблема была в правах на файлы. httpd.conf - в нем я только закомментировал подключение модуля пхп.

Ну а дальше

chown -Rv danil:nobody /home/danil/public_html