Skocz do zawartości
t4t4v4

PHP 5.3.8 + suPHP + FastCGI + DirectAdmin = ERROR

Polecane posty

Gość patrys

Dostajesz na tacy... czytać i myśleć !

 

[Mon Nov 14 21:18:32 2011] [error] [client 77.254.250.118] No user or group set - set suPHP_UserGroup

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

suphp ci nie działa, bo w customizowanych templatkach vhostów apaczowych zapewne wyciąłeś suPHP_UserGroup

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No templatka wygląda tak:

<IfModule mod_fcgid.c>
   <Files ~ (\.fcgi)>
    SetHandler fcgid-script
    Options +FollowSymLinks +ExecCGI
   </Files>
</IfModule>
<IfModule mod_fcgid.c>
<Files ~ (\.php)>
   SetHandler fcgid-script
   FCGIWrapper "/fcgi/|USER|/public_html/fcgid.sh" .php
   Options +ExecCGI
   allow from all
</Files>
</IfModule>
|*if CLI="1"|
#			   php_admin_flag engine |PHP|
#			   <IfModule !mod_php6.c>
#					   php_admin_flag safe_mode |SAFE_MODE|
#			   </IfModule>
#			   php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |USER|@|DOMAIN|'
|*endif|
|*if OPEN_BASEDIR="ON"|
#			   php_admin_value open_basedir |OPEN_BASEDIR_PATH|
|*endif|
|*if SUPHP="1"|
#			    suPHP_Engine |PHP|
#			   suPHP_UserGroup |USER| |GROUP|
|*endif|

 

Więc co poprawić? Tak każą robić na wielu stronach, więc myślałem, że tak poprawnie jest..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zdecyduj się na tylko JEDNO z możliwych rozwiązań.

Albo uruchamiasz skutecznie FastCGI, albo wywalasz te radosne twórczości i te płotki sprzed linijek, zostawiając stockowe pliki. Równolegle ci to nijak NIE zadziała.

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Chcę mieć jedno rozwiązanie - FastCGI + PHP 5.3.8 :)

Więc co mam zrobić aby korzystać z FCGI? Już zgłupiałem..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok, działa..

 

Zrobiłem to w takiej kolejności:

./build set php5_cgi yes
./build set php5_cli no
./build update_data
./build php d
./build rewrite_confs

cd /usr/local/directadmin/custombuild
mkdir -p custom/suphp
cp -fp configure/suphp/configure.suphp custom/suphp/configure.suphp
perl -pi -e 's/paranoid/owner/' custom/suphp/configure.suphp
./build clean
./build suphp
cd /usr/local/directadmin/data/templates/custom
cp -f ../virtual_host* .
perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' virtual_host*.conf
perl -pi -e 's/suPHP_UserGroup/#suPHP_UserGroup/' /etc/httpd/conf/httpd.conf
echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue

 

Dalej jak tutaj:http://wingfoss.com/content/install-mod-fcgid-on-direct-admin z tą różnicą, że do pliku: /usr/local/directadmin/scripts/custom/fcgid.sh wrzuciłem:

#!/bin/sh
PHPRC="~"
export PHPRC
export PHP_FCGI_CHILDREN=1
exec /usr/local/php5/bin/php-cgi

 

Na koniec dla utrzymania porządku:

echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue

find /home/*/domains/*/p*_html -type d -print0 | xargs -0 chmod 711
find /home/*/domains/*/p*_html -type f -print0 | xargs -0 chmod 644

 

Z podziękowaniami dla Kafi, Patrys, Patryk - wspólnie do czegoś doszliśmy smile.png

Dobrej nocki!

Edytowano przez Avatat (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Już zapomnijmy o tym suPHP - pomieszało mi się kompletnie..

 

Powróciłem do prac nad FastCGId i wyskakuje znów 500 Internal Server Error a logi mówią:

[Tue Nov 22 01:37:08 2011] [warn] [client 178.36.208.132] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Tue Nov 22 01:37:08 2011] [error] [client 178.36.208.132] Premature end of script headers: index.php

 

suExec log:

[2011-11-22 01:37:08]: uid: (1002/admin) gid: (1003/admin) cmd: fcgid.sh
[2011-11-22 01:37:08]: target uid/gid (1002/1003) mismatch with directory (0/0) or program (0/0)

 

Co z tym fantem zrobić? :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

[2011-11-22 01:37:08]: target uid/gid (1002/1003) mismatch with directory (0/0) or program (0/0)

Problem z suexec wink.png

 

* Error out if the target name/group is different from

* the name/group of the cwd or the program.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyli to błąd wywołany brakiem uprawnień i to powinno dopomóc:

cd /usr/local/directadmin/scripts && ./set_permissions.sh

find /home/*/domains/*/p*_html -type d -print0 | xargs -0 chmod 711
find /home/*/domains/*/p*_html -type f -print0 | xargs -0 chmod 644

 

W nocy popróbuję z uprawnieniami i grupami i dam znać :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

sprawdź czy właściciel i grupa jest dobrze ustawiona na plikach, np ls -la

Dla katalogów daj 755, dla plików php 644 i powinno wszystko grać. Bez kombinowania z suexeciem wink.png

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys
Bez kombinowania z suexeciem

na pewno ?

Powyżej masz wklejony opis z suexec.c, jeżeli tego nie zakomentuje i nie skompiluje suexec to nie odpali tego fastcgi ...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

W temacie masz fcgid, jednak to mało istotne.

By odpalić starter/wrapper musi on być na uprawnieniach usera i być na koncie usera więc jest to niebezpieczne

Wypadało by zmienić te reguły suexec, by mógł być zabezpieczony przed edycją i by można było go wynieść poza katalog usera ( drugie niekoniecznie).

 

Kończąc jeżeli chcesz tak bez zmian w suexec, to utwórz starter na koncie usera może być w public_html lub niżej i nadaj mu chmod 555 z prawami usera.

Edytowano przez patrys
EDIT (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ja trzymam wrappery poza /home i /var + open_basedir. Coś tam kiedyś kombinowałem w suexecu jak wrappery były w katalogach domen - cgi-bin. Ale zrezygnowalem z tego rozwiązania.

 

Avatat, luknij też na to: http://www.bxtra.net/comment/2260

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys
Ja trzymam wrappery poza /home i /var + open_basedir. Coś tam kiedyś kombinowałem w suexecu jak wrappery były w katalogach domen - cgi-bin. Ale zrezygnowalem z tego rozwiązania

Zadziała z fcgid gdy katalog w którym będzie starter będzie miał prawa usera z którego chcesz odpalić starter.

Jednak większość trzyma wszystko na koncie użytkownika więc wtedy nie jest to bezpieczne gdy może to ktoś edytować.

 

Avatat, luknij też na to: http://www.bxtra.net/comment/2260

 

Nie musi być

/fcgi/${username}/public_html

, aż brzydko wygląda.

Łyknie każdą nazwę, dla DA najlepiej zmienić to na np.

/usr/local/directadmin/data/users/$username/php/php5.ini

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zadziała z fcgid gdy katalog w którym będzie starter będzie miał prawa usera z którego chcesz odpalić starter.

Więkość rzeczy rozbija się o bezpieczeństwo. Akurat korzystam z fcgid

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

To tylko by znieść zabezpieczenie na exec przez inny uid.

Jak zrobisz tak jak wyżej stosując dobry chmod ( ex. 555 ), i właściwego użytkownika to zadziała.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Właśnie, tak poza tematem (dziś w nocy jeszcze będę męczyć i dam znać) - dlaczego każdy użytkownik musi mieć oddzielny skrypt startowy (fcgid.sh) skoro one niczym się nie różnią? Mi to w sumie w niczym nie przeszkadza, ale pytam z czystej ciekawości :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak to się nie różnią... a uid/gid tego wrappera to co?

Oczywiście, można zrobić to na jednym fizycznym pliku, ale wtedy masz ten mismatch owner, który zacytowałeś - i musisz przeedytować suexecka, który ze względów bezpieczeństwa nie pozwala na uruchamianie skryptów o innym uid niż ten zdefiniowany jako SuexecUser.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dobrze, różnią się uid/gid ale nie różnią się zawartością. Czy takie uruchamianie z oddzielnych starterów jest bezpieczniejsze niż z jednego wspólnego (po zmodyfikowaniu źródła suexeca)?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×