Страница 4 из 5

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 10:25:37
Alex Keda
от бля...
кто тя так учил делать-то? :))
mv - сохраняет права исходного файла, а после закачки у него (у временного) всегда стоят 600
юзай копирование.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 10:29:52
gmn
lissyara писал(а):от бля...
кто тя так учил делать-то? :))
mv - сохраняет права исходного файла, а после закачки у него (у временного) всегда стоят 600
юзай копирование.
Да, осталось только код Joomla перелопатить (именно с этого и началось, что через админку загружают файл, загружается, а потом апачу файл не доступен) и разработчикам запретить обновлять движек. :)
Надо искать, как права на загружаемый файл устанавливать 640.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 10:41:40
Alex Keda

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 11:33:27
gmn
lissyara писал(а):http://ru2.php.net/chmod
Не то. Я ж код сайтов переделывать не буду ...

Нашел в /usr/ports/www/apache20/Makefile.doc:

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

##      WITH_SUEXEC:              Enable suExec support
##            SUEXEC_DOCROOT:     SuExec root directory
##            SUEXEC_USERDIR:     User subdirectory (default public_html)
##            SUEXEC_SAFEPATH:    Set the safepath
##            SUEXEC_LOGFILE:     Set log file for suexec (default: /var/log/httpd-suexec.log)
##            SUEXEC_UIDMIN:      Minimal allowed UID (default 1000)
##            SUEXEC_GIDMIN:      Minimal allowed GID (default 1000)
##            SUEXEC_CALLER:      User allowed to call SuExec (default
##                                ${WWWOWN} (www))
##            SUEXEC_UMASK:       Defines umask for suexec'd process(default:
##                                unset)
Добавляю в make.conf:

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

.if ${.CURDIR} == ${PORTSDIR}/www/apache20
WITHOUT_SSL=            yes
WITHOUT_DAV_MODULES=    yes
WITH_SUEXEC_MODULES=    yes
# wich suexec run
SUEXEC_DOCROOT="/www/sites"
SUEXEC_USERDIR="/www/sites/*/cgi-bin"
WITH_SUEXEC_UMASK=0026
.endif
suexec -V
-D AP_DOC_ROOT="/www/sites"
-D AP_GID_MIN=1000
-D AP_HTTPD_USER="www"
-D AP_LOG_EXEC="/var/log/httpd-suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/local/bin:/usr/bin:/bin"
-D AP_SUEXEC_UMASK=000
-D AP_UID_MIN=1000
-D AP_USERDIR_SUFFIX="/www/sites/*/cgi-bin"

И хоть тресни, SUEXEC_UMASK=000
Похоже, что я на верном пути ... Но что-то не так задаю.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 12:14:25
gmn
Практически финал моим испытаниям с suexec ...
Итак, make.conf

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

.if ${.CURDIR} == ${PORTSDIR}/www/apache20
WITHOUT_SSL=            yes
WITHOUT_DAV_MODULES=    yes
WITH_SUEXEC_MODULES=    yes
SUEXEC_DOCROOT="/www/sites"
SUEXEC_USERDIR="/www/sites/*/cgi-bin"
SUEXEC_UMASK=0026
WITH_SUEXEC_UMASK=0026
.endif
Что-то из SUEXEC_UMASK и WITH_SUEXEC_UMASK срабатывает :)
suexec -V

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

 -D AP_SUEXEC_UMASK=026
Но еще одни грабли ...
Если чистый php-cgi - получаю заданную umask для файла, созданного через php-cgi, т.е. файл с правами "-rw-r-----", что мне и надо.
Но если fastcgi - "фигвам". Хоть застрелись - права 600.
Т.е. или искать дальше, или от fastcgi придется отказаться.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 12:31:05
Alex Keda
попробуй в три цифры задать...

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 12:51:54
gmn
lissyara писал(а):попробуй в три цифры задать...
Работает и так. НО только без fastcgi !!!
С fastcgi всеравно права загруженного файла 600.
Где-то (или в cgi-bin/php.sh или еще куда-то) наверное надо umask втиснуть.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-10-31 17:01:10
gmn
Если в php.ini юзера НЕ задавать параметры, то все ОК:
open_basedir
upload_tmp_dir
Если задать open_basedir но не задать upload_tmp_dir - ругается:
open_basedir restriction in effect. File(/var/tmp)
Если же задать и open_basedir и upload_tmp_dir, то файл загружается, но права 600.

Похоже, что надо еще для fastcgi tmp определять (он упорно с /var/tmp работает).
mod_fcgid: stderr: PHP Warning: File upload error - unable to create a temporary file

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 9:52:20
gmn
В общем, с предыдущими несколькими сообщениями разобрался.
fastcgi ни причем.
Виноваты были open_basedir и upload_tmp_dir в php.ini.

Появился еще вопрос.
Не совсем касается статистики, но касается пересборки ядра для большего количества групп.
Сделал, как здесь написано http://www.lissyara.su/?id=1066, пересобрал ядро вчера.
Все вроди как хорошо. Но сегодня решил fatcgi вернуть обратно.
Для проверки запускаю sockstat и получаю:

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

sockstat: struct xunpcb size mismatch
sockstat: struct xunpcb size mismatch
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
...
Первые попытки поиска в инете дали, что это ошибка.
Интересно, lissyara или еще кто пересобирали ядро для kern.ngroups: 64 ?
Ошибок небыло после этого?
P.S. FreeBSD 6.2-RELEASE-p8

Вот еще нашел ссылочку http://www.lexa.ru/inet-admins/msg16461.html
Похоже, что не только ядро надо пересобирать?

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 11:16:17
Alex Keda
вообще-то в статье написано что рекомендуется пересобирать вообще всё...
я пересобирал ядро, ребут, мир, ребут, весь софт с ключиком -f

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 11:18:55
gmn
lissyara писал(а):вообще-то в статье написано что рекомендуется пересобирать вообще всё...
я пересобирал ядро, ребут, мир, ребут, весь софт с ключиком -f
Да, хлопотно получится ...
Пока в число 16 вписываюсь - верну все обратно.
А потом уже скоро будет семерка ... Может там уже будет параметр kern.ngroups изменяемым ...

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 11:23:32
Alex Keda

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

lissyara# sysctl kern.ngroups=32
sysctl: oid 'kern.ngroups' is read only
lissyara# uname -a
FreeBSD lissyara.moskb.local 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Mon Oct 29 18:31:39 MSK 2007     lissyara@lissyara.moskb.local:/usr/obj/root/BSD/7-current/src/sys/GENERIC  i386
lissyara#

такие вещи надо делать заранее.
ещё когда тока сервер ставишь.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 11:38:15
gmn
lissyara писал(а):

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

lissyara# sysctl kern.ngroups=32
sysctl: oid 'kern.ngroups' is read only
А через /boot/loader.conf тоже не задается?
lissyara писал(а): такие вещи надо делать заранее.
ещё когда тока сервер ставишь.
Так отож :)
Хотел как лучше, а получилось, как всегда.
Может какие выходные убъю, и пересоберу все.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 12:10:52
Alex Keda
нет. на 8 не пробовал, на 7 точно - нет.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 12:26:58
paix
Afaik делать права вида
user:www куда распостраненней.

и в ДА так, и в плеске...В цпанели не помню но кажется тоже.

Все работает...и ничего пересобирать и править не нужно.

В чем преимущества вашего способа?

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 12:54:55
gmn
Да вот я тоже особо не пойму разницы :) Но делаю ...
Ведь в итоге группа (а в ней Apache) всеравно имеет права ан чтение.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 13:24:01
paix
gmn писал(а):Да вот я тоже особо не пойму разницы :) Но делаю ...
Потому у тебя и не работает ;)

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 13:37:13
gmn
paix писал(а):
gmn писал(а):Да вот я тоже особо не пойму разницы :) Но делаю ...
Потому у тебя и не работает ;)
Не надо ... :)
Проверил. Работает при правах 640 user:www

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 15:32:25
Alex Keda
вообще-то ещё есть acl...
работу файловой системы замедлит, количество метаданных увеличит - но тоже решение.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 16:10:39
gmn
Да, есть. Только я даже в ядре отключал, помоему, за ненадобностью.
Вот расписано красиво об acl http://www.linuxcenter.ru/lib/articles/ ... _acl.phtml

Да и права 640 user:www тоже решают проблему.
И не надо юзера www включать в каждую группу, а получаем тот же эффект.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-01 17:31:57
Alex Keda
по ссылке не ходил, но думаю что в мане красивей...

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-05 17:44:14
gmn
Привет.

Еще не на все грабли наступил ... :)
Еще вопрос.
И так.
Apache2, PHP, fascgi

wrapper для fastcgi - php.sh

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

#!/bin/sh
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/local/bin/php-cgi -c /www/sites/test/etc/
При выводе phpinfo "Environment" практически пуст, что приводит к невозможности делать rewrite:

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

RewriteCond %{HTTP_HOST} ^test.site [NC]
RewriteRule ^(.*)$ http://new.site/$1 [L,R=301]
Т.е. получается, что не передается HTTP_HOST
Если fastcgi убрать - все ок.
Что я еще не учел?

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-05 18:12:25
gmn
Похоже, плохо с этим дело - http://www.fastcgi.com/mod_fastcgi/docs ... stcgi.html:
Session affinity (as well as distribution) should be achievable outside of mod_fastcgi using mod_rewrite. If you get this working, please post the details to fastcgi-developers@fastcgi.com so they can be included here.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-05 18:42:57
paix
Всетаки рекомендую делать как описано в официальной документации.
http://www.fastcgi.com/docs/faq.html#PHP

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

#!/bin/sh
PHPRC="/usr/local/etc/php/client"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/local/bin/php-fcgi
На счет реврайтов, не сильно понял что там у тебя не передается, у меня работают под мод_фастцжи тяжелющие цмс по типу DLE, активно использующие реврайт (а то какже ЧПУ иначе? ;) и все ок.

Re: Apache2 - статистика по сайтам.

Добавлено: 2007-11-05 19:12:27
gmn
Спасибо за ответ.
paix писал(а):Всетаки рекомендую делать как описано в официальной документации.
http://www.fastcgi.com/docs/faq.html#PHP

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

#!/bin/sh
PHPRC="/usr/local/etc/php/client"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
exec /usr/local/bin/php-fcgi
Так вроди бы так же и сделано (почти).

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

httpd.conf
<IfModule mod_fastcgi.c>
        FastCgiConfig   -singleThreshold 30 -minProcesses 2 -restart    \
                        -idle-timeout 400 -killInterval 200 -autoUpdate \
                        -pass-header HTTP_AUTHORIZATION
        FastCgiWrapper /usr/local/sbin/suexec
        FastCgiIpcDir /var/run/fastcgi
        Action application/x-httpd-fastphp /php-fcgi/php.sh
        Action application/x-httpd-php /php-fcgi/php.sh
        AddType application/x-httpd-fastphp     .php
        <Location /php-fcgi/>
                Options ExecCGI FollowSymLinks
                SetHandler fastcgi-script
        </Location>
</IfModule>
В конфиге вирт. сайтов:

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

Alias /php-fcgi/ /www/sites/test/cgi-bin/
В каталоге cgi-bin каждого вирт.сайта лежит скрипт php.sh:

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

#!/bin/sh
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
exec /usr/local/bin/php-cgi -c /www/sites/test/etc/
paix писал(а): На счет реврайтов, не сильно понял что там у тебя не передается, у меня работают под мод_фастцжи тяжелющие цмс по типу DLE, активно использующие реврайт (а то какже ЧПУ иначе? ;) и все ок.
Что касается rewrite, то при описанной выше схеме с fastcgi не работает rewrite:

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

RewriteCond %{HTTP_HOST} ^oldsite.name [NC]
RewriteRule ^(.*)$ http://newsite.name/$1 [L,R=301]
А вообще rewrite работает ... Вот с http_host не работает, потому что нет такой переменной при использовании fastcgi.
Если отключаю fastcgi в выводе phpinfo в секции "Environment" становится много чего доступно ...
При включенном fastcgi только PATH, PHP_FCGI_CHILDREN.