Skocz do zawartości
t4t4v4

PHP 5.3.8 + suPHP + FastCGI + DirectAdmin = ERROR

Polecane posty

A więc robię wszystko podręcznikowo:

cd /usr/local/src
wget http://archive.eu.apache.org/dist/httpd/mod_fcgid/mod_fcgid-2.3.5.tar.bz2
tar jxf mod_fcgid-2.3.5.tar.bz2
cd mod_fcgid-2.3.5
APXS=/usr/sbin/apxs ./configure.apxs && make && make install
chmod 755 -R /etc/httpd
mkdir /fcgi

cd /usr/local/directadmin/custombuild/
nano -w options.conf ## wyłączam CLI, włączam CGI

./build php n

 

I wywala elegancko błąd:

/usr/local/directadmin/custombuild/php-5.3.8/sapi/cli/php: /usr/local/lib/libxml2.so.2: no version information available (required by /usr/local/directadmin/custombuild/php-5.3.8/sapi/cli/php)
make[1]: *** [install-pear-installer] Error 255
make: *** [install-pear] Error 2

 

Co może być powodem takiego błędu?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Prosiłbym o jeszcze trochę pomocy, naprowadzenia:

 

# locate libxml2.so.2
/usr/lib/libxml2.so.2
/usr/lib/libxml2.so.2.7.8
/usr/lib/vmware-tools/lib32/libxml2.so.2
/usr/lib/vmware-tools/lib32/libxml2.so.2/libxml2.so.2
/usr/lib/vmware-tools/lib64/libxml2.so.2
/usr/lib/vmware-tools/lib64/libxml2.so.2/libxml2.so.2
/usr/local/lib/libxml2.so.2
/usr/local/lib/libxml2.so.2.7.6
/usr/local/lib/libxml2.so.2.7.8

 

Zrobiłem dowiązanie symboliczne:

ln -s libxml2.so.2 /usr/local/lib/libxml2.so.2.7.8

 

I błąd nadal ten sam. Do którego pliku dowiązać libxml2.so.2 ?

 

 

EDIT: Ok, trybi.. Dowiązałem do 2.7.6 i na razie to jakoś działa :)

 

Teraz taki error:

Installing PEAR environment:	  /usr/local/lib/php/
make[1]: *** [install-pear-installer] Error 255
make: *** [install-pear] Error 2

Edytowano przez Avatat (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie masz w php.ini jakiś dziwnych modułów dodanych, które moga wywalać peara? APC np. ma takie właściwości ;).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W którym php.ini mam grzebać? W tym od CGI czy od CLI? Ani w tym ani w tym nie ma nic oprócz ionCube ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeśli wcześniej używałeś PHP 5.2 to wywal je z php.ini, które jest używane (pewnie to w domyślnej ścieżce) - IonCuby się różnią w zależności od wersji PHP, pewnie robi się jakiś segfault.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wywaliłem rozszerzenie zend z php.ini i nadal ten sam błąd. Może plik ustawień kastombilda w czymś pomoże:

default_php=5
php5_ver=5.3
php4_cli=no
php4_cgi=no
php5_cli=no
php5_cgi=yes
ioncube=yes
zend=no
#Possible values - recommended or dist
php_ini_type=recommended

 

Coś zmienić?

Edytowano przez Avatat (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A system masz w miare aktualny? options.conf jest ok.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

apt-get update && apt-get upgrade

 

Zrobione, błąd się powtarza. Próbowałem z Custombuild 1.1 i 1.2 - to samo..

Udostępnij ten post


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

@patryk: ale on coś pisał że wyłączył cli i włączył cgi więc lokalizacja pliku php.ini się zmieniła.

 

@Avatat: Nie wiem gdzie może być problem, aczkolwiek wywal te źródła i wklep od nowa po tych kombinacjach ./build php5-cgi n

Jeżeli dalej będzie się sypać, sprawdź/za aktualizuj bibloteki które kompiluje custombuild i sprawdź/usuń /usr/local/etc/php5/cgi/php.ini

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Powiem Wam, że poszło dalej, teraz elegancki błąd 500 Internal Server Error w przeglądarce :)

CHMODy 755, użytkownik poprawnie ustawiony..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Który plik logów wrzucić?

 

Edit: Dobra, jest teraz taki bajzel po moim grzebaniu, że wywalam wszystkie utworzone przez custombuild'a konfiguracje i skompilowane paczki i zaczynam od początku - ma działać :)

Edytowano przez Avatat (zobacz historię edycji)

Udostępnij ten post


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

Popraw uprawnienia po mod_php, tak na szybko chmody ( wszystkie pliki na 644, w wypadku jak masz .cgi/.pl, zmień składnie albo dopisz coś podobnego z 755 dla ów plików ).

 

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

 

I uprawnienia dla userów:

#!/bin/sh

for username in `ls /usr/local/directadmin/data/users`; do
{
	for domains in `cat /usr/local/directadmin/data/users/$username/domains.list`; do
	{
			chown $username:$username /home/$username/domains/$domains/p*_html -R
  }
	done;
}
done;

 

ps. gdyby coś jeszcze nie tak z katalogami userów to via skrypt da:

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

Edytowano przez patrys
. (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No i poszło wszystko wpi..u :)

 

Zrobiłem wszystko od początku, wywaliłem stare kompilacje, konfiguracje itp iteą..

Włączam - jest, działa! Ale trzeba dokończyć instalację wg: http://woshka.com/blog/apache/compile-apache-with-php-and-mod_fcgid-fastcgi-in-directadmin-installed-control-panel.html

 

Zacząłem grzebać w tych szablonach vhostów, porobiłem skrypty te od FCGI, poprawiłem php.ini i: /etc/init.d/httpd restart poszło elegancko..

Włączam jakąkolwiek stronę i 500 Internal Error, robiłem to co wyżej i nic nie dało..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

error_log: http://wklej.to/6ISGO

suexec_log brak, w php.ini wskazałem inny plik: http://wklej.to/4PG81

suphp.log pusty

 

Pewnie wywołujesz we wrapperze php, zamiast php-cgi i stąd ten błąd.

To jakim cudem na CGI (tym od DA) działało? Spaprało się jak zacząłem kontynuować instalację FCGI z powyższej stronki..

 

Może to Was jakoś naprowadzi (przykładowy plik httpd.conf użytkownika):

<VirtualHost 192.168.1.1:80 >

ServerName www.domena.pl
ServerAlias www.domena.pl domena.pl
ServerAdmin webmaster@domena.pl
DocumentRoot /home/admin/domains/domena.pl/public_html
ScriptAlias /cgi-bin/ /home/admin/domains/domena.pl/public_html/cgi-bin/
UseCanonicalName OFF
SuexecUserGroup admin admin
CustomLog /var/log/httpd/domains/domena.pl.bytes bytes
CustomLog /var/log/httpd/domains/domena.pl.log combined
ErrorLog /var/log/httpd/domains/domena.pl.error.log
<Directory /home/admin/domains/domena.pl/public_html>
 Options +Includes -Indexes
<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/admin/public_html/fcgid.sh" .php
   Options +ExecCGI
   allow from all
</Files>
</IfModule>

#			    suPHP_Engine ON
#			   suPHP_UserGroup admin admin
</Directory>
</VirtualHost>

Edytowano przez Avatat (zobacz historię edycji)

Udostępnij ten post


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

Dziwnie rozlokowany starter, ale zrób to sensownie:

<IfModule mod_fcgid.c>
	<Directory |DOCROOT|>
			Options +Includes -Indexes +ExecCGI
			FcgidWrapper /fcgi/|USER|/fcgid.sh .php
	</Directory>
	<Directory /fcgi/|USER|>
			AllowOverride None
			Options +ExecCGI MultiViews -Indexes
			Order allow,deny
			Allow from all
	</Directory>
</IfModule>

 

I starter też /fcgi/admin/fcgid.sh

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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To samo sad.png

 

httpd.conf dla użytkownika:

<VirtualHost 192.168.1.1:80 >

ServerName www.domena.pl
ServerAlias www.domena.pl domena.pl
ServerAdmin webmaster@domena.pl
DocumentRoot /home/admin/domains/domena.pl/public_html
ScriptAlias /cgi-bin/ /home/admin/domains/domena.pl/public_html/cgi-bin/
UseCanonicalName OFF
SuexecUserGroup admin admin
CustomLog /var/log/httpd/domains/domena.pl.bytes bytes
CustomLog /var/log/httpd/domains/domena.pl.log combined
ErrorLog /var/log/httpd/domains/domena.pl.error.log
<Directory /home/admin/domains/domena.pl/public_html>
 Options +Includes -Indexes
<IfModule mod_fcgid.c>
			<Directory |DOCROOT|>
							Options +Includes -Indexes +ExecCGI
							FcgidWrapper /fcgi/|USER|/fcgid.sh .php
			</Directory>
			<Directory /fcgi/|USER|>
							AllowOverride None
							Options +ExecCGI MultiViews -Indexes
							Order allow,deny
							Allow from all
			</Directory>
	</IfModule>

#				suPHP_Engine ON
#			   suPHP_UserGroup admin admin
</Directory>
</VirtualHost>

 

Edit: Aa, mój błąd, już poprawiam smile.png

 

 

Edit 2: Znów bajzel zrobiłem - od nowa.. Tym razem zastosuję się do wskazówek @UP co do tych skryptów i konfiguracji httpd.conf, zobaczymy czy pomoże..

Edytowano przez Avatat (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wklej wynik polecenia

/usr/sbin/suexec -V

Zwróć uwagę, czy AP_DOC_ROOT nie jest ustawione na jakieś dziwne wartości w stylu /var/www

Jeśli tak, to czeka cię rekompilacja suexecka.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oh my Gosh..

Zrobiłem czystki konfiguracji i skompilowanych paczek i zacząłem od nowa - standardowe CGI od DA się skompilowało, wchodzę na stronkę i "500 Internal Error". Rynce opadają :)

 

@UP:

# /usr/sbin/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"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zapodaj error_log (ale nie główny w /var/log/httpd/ tylko subdomenowy - /var/log/httpd/domains/twojadomena.pl.error.log)

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ę


×