kafi 2425 Zgłoś post Napisano Listopad 22, 2011 Suexec i tak działa na prawach roota, po czym zmienia EUID procesu. Kwestia tego zabezpieczenia jest, można by ująć, historyczna - po to, aby ktoś nie uruchamiał nie-swoich-skryptów-CGI. Z tym, że jak masz osobny wrapper na usera, to możesz mu łatwo ścieżkę do php.ini stworzyć (ustawić zmienną PHPRC). Przy jednym pliku też się da, ale trzeba troszkę pokombinować Udostępnij ten post Link to postu Udostępnij na innych stronach
t4t4v4 3 Zgłoś post Napisano Listopad 22, 2011 (edytowany) Panocki! Wykorzystując mój geniusz.. Joke, to wszystko dzięki Wam! Skleciłem taki skrypt z dwóch skryptów: #!/bin/sh for username in `ls /usr/local/directadmin/data/users`; do { mkdir -p /fcgi/${username}/public_html cp /usr/local/directadmin/scripts/custom/fcgid.sh /fcgi/${username}/public_html/fcgid.sh && chmod 0700 /fcgi/${username}/public_html/fcgid.sh cp /usr/local/directadmin/scripts/custom/php.ini /fcgi/${username}/public_html/php.ini perl -pi -w -e "s/PHPCFG_BASEDIR/\/home\/${username}\//g;" /fcgi/${username}/public_html/php.ini chown -R ${username}:${username} /fcgi/${username} } done; Po nadaniu uprawnień wszystko ruszyło od kopa. Elegancko działa. PHPInfo mówi: Server API: CGI/FastCGIConfigure Command: ... '--enable-fastcgi' ... Więc FastCGI działczy? Może odejdę od tematu: jak nałożyć limity CPU na wykonywanie skryptów? Próbowałem tak (starter fcgid.sh): #!/bin/sh export PHP_FCGI_MAX_REQUESTS=0 exec cpulimit -P /usr/local/php5/bin/php-cgi -l 5 Skrypt jest wykonywany chyba w nieskończoność, strona nie ładuje się - jak zrobić to poprawnie? Edit: Pomęczyłem, pomęczyłem i doszedłem: #!/bin/sh PHPRC="~" export PHPRC export PHP_FCGI_CHILDREN=1 exec (cpulimit -P /usr/local/php5/bin/php-cgi -l 10) Za pomoc zapraszam do Zamościa na browarka EDIT: Starter z CPULimit niby odpala skrypty PHP ale w ogóle nie limituje procka. Co z tym fantem zrobić? Edytowano Listopad 22, 2011 przez Avatat (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Listopad 23, 2011 To jest dedyk, czy jakiś VPS na np. OpenVZ? Jeśli to drugie, to możesz zapomnieć o używaniu cpulimit. Uruchomić się niby uruchomi, ale sensownie działać nie będzie (czemu? wskazówką jest część wspólna schedulera ovz i cpulimitu - metoda "wstrzymywania" procesów start/stop). Jeśli to dedyk, to spróbuj skompilować sobie cpulimit ze źródełek wersji svn - ale to też lubi działać, jak chce. Udostępnij ten post Link to postu Udostępnij na innych stronach
t4t4v4 3 Zgłoś post Napisano Listopad 23, 2011 To jest VPS na VMWare z jednym fizycznym rdzeniem dla mnie. Rano skompiluję sobie cpulimit, może to coś pomoże. Jeszcze raz dzięki wszystkim za pomoc, dobrej nocki! Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Listopad 23, 2011 Jak go skompilujesz, to wywołaj przez cpulimit --limit 10 /usr/local/php5/bin/php-cgi Przy jednym rdzeniu jeszcze powinno jakoś tam działać Udostępnij ten post Link to postu Udostępnij na innych stronach
t4t4v4 3 Zgłoś post Napisano Listopad 23, 2011 Działa. Limity limitują hardcorowo: Bez limitu czas wykonywania pewnego skryptu 2,7s 50% - 5,8s 5% - 50s Miłego dzionka Udostępnij ten post Link to postu Udostępnij na innych stronach
Uriel 0 Zgłoś post Napisano Styczeń 15, 2012 (edytowany) Na świeżo zainstalowanym DA, kierując się tutorialem podanym wcześniej przez Miłosza, próbowałem zainstalować mod_fcgid. Kilka razy formatowałem vps'a, więc przy okazji kilkakrotnie instalowałem owy mod_fcgid, ale efekt zawsze był taki sam: [sun Jan 15 03:01:03 2012] [warn] [client #] mod_fcgid: can't apply process slot for /fcgi/maciek/public_html/fcgid.sh Co może być przyczyną owego problemu? (system CentOS 6 x32, mod_fcgid 2.3.6) Z góry dzięki za pomoc Edytowano Styczeń 15, 2012 przez Uriel (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość patrys Zgłoś post Napisano Styczeń 15, 2012 Sprawdź uprawnienia i zwiększ ilość procesów w konfiguracji modułu. Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Wrzesień 14, 2014 (edytowany) Odkopię temat, bo korzystałem z informacji w nim zawartych. Na czystym DA zainstalowałem wszystko tak jak w poradniku - http://www.bxtra.net/comment/2260, z jedną różnicą że mod_fcgid w wersji najnowszej, tj. 2.3.9 Wynik polecenia suexec -V: -D AP_DOC_ROOT="/" -D AP_GID_MIN=100 -D AP_HTTPD_USER="apache" -D AP_LOG_EXEC="/var/log/httpd/suexec_log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html" Niestety, ale pojawia się błąd Internal Server Error przy wejściu na stronę z PHP i nie wiem gdzie szukać problemu. Log z pliku suexec_log: [2014-09-14 02:48:42]: uid: (1006/mojekonto) gid: (1008/mojekonto) cmd: fcgid.sh [2014-09-14 02:48:42]: command not in docroot (/fcgi/admin/public_html/fcgid.sh) command not in docroot - z informacji jakie znalazłem wnioskuję, że muszę zmienić AP_DOC_ROOT, jak się domyślam obecnie jest "/" to muszę zmienić chyba na "/fcgi", czyli na katalog gdzie znajdują się startery. Tak więc, czy muszę skompilować na nowo mod_fcgid? Jeżeli tak w jaki sposób mogę to zrobić? EDIT: Udało się, zmieniłem ścieżkę na "/fcgi" w pliku "configure.apache" i skompilowałem apache (./build apache n), ale nadal jest "Internal Server Error". Log z pliku error_log: [Sun Sep 14 02:48:42 2014] [warn] [client xx.xx.xx.xx] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server [Sun Sep 14 02:48:42 2014] [error] [client xx.xx.xx.xx] Premature end of script headers: index.php [Sun Sep 14 02:48:42 2014] [error] [client xx.xx.xx.xx] File does not exist: /var/www/html/500.shtml suexec policy violation: see suexec log for more details Będę wdzięczny za pomoc. na pewno ?Powyżej masz wklejony opis z suexec.c, jeżeli tego nie zakomentuje i nie skompiluje suexec to nie odpali tego fastcgi ... Patrys, o co dokładnie chodziło Ci w tym poście? Edytowano Wrzesień 14, 2014 przez Desavil (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Desavil 88 Zgłoś post Napisano Wrzesień 14, 2014 Problem rozwiązany, w złym miejscu wkleiłem w templatkach ładowanie mod_fcgid. Udostępnij ten post Link to postu Udostępnij na innych stronach