Przedstawię może jakie czynności wykonywałem:
- Instalujemy PHP z MySQL
Kod: Zaznacz cały
apt-get install lighttpd php5-cgi php5-mysql mysql-server
- Zakładamy katalog:
Kod: Zaznacz cały
mkdir /chroot mkdir /mnt/tmp/ chmod 1777 /mnt/tmp/ mkdir /mnt/etc mkdir -p /mnt/var/log/lighttpd chown www-data:www-data /mnt/var/log/lighttpd mkdir -p /mnt/var/tmp/lighttpd/cache/compress/ chown www-data:www-data /mnt/var/tmp/lighttpd/cache/compress/ mkdir -p /mnt/var/cache/lighttpd/uploads chown www-data:www-data /mnt/var/cache/lighttpd/uploads mkdir -p /mnt/home/lighttpd chown www-data:www-data /mnt/home/lighttpd chmod 0700 /mnt/home/lighttpd
- Skrypt l2chroot:
Kod: Zaznacz cały
#!/bin/bash BASE="/mnt" if [ $# -eq 0 ]; then echo "Syntax : $0 /path/to/executable" echo "Example: $0 /usr/bin/php5-cgi" exit 1 fi [ ! $BASE ] && mkdir -p $BASE || : # iggy ld-linux* file as it is not shared one FILES="$(ldd $1 | awk '{ print $3 }' |egrep -v ^'\(')" echo "Copying shared files/libs to $BASE..." for i in $FILES do d="$(dirname $i)" [ ! -d $BASE$d ] && mkdir -p $BASE$d || : /bin/cp $i $BASE$d done # copy /lib/ld-linux* or /lib64/ld-linux* to $BASE/$sldlsubdir # get ld-linux full file location sldl="$(ldd $1 | grep 'ld-linux' | awk '{ print $1}')" # now get sub-dir sldlsubdir="$(dirname $sldl)" if [ ! -f $BASE$sldl ]; then echo "Copying $sldl $BASE$sldlsubdir..." /bin/cp $sldl $BASE$sldlsubdir else : fi # chmod +x /bin/l2chroot # mkdir -p /mnt/usr/bin # cp /usr/bin/php5-cgi /mnt/usr/bin/ # cp /usr/bin/php5 /mnt/usr/bin/ # cd /mnt/etc/ # cp -avr /etc/php5 . Kopiowanie plikow konfiguracyjnych: # cp /etc/hosts /mnt/etc/ # cp /etc/nsswitch.conf /mnt/etc/ # cp /etc/resolv.conf /mnt/etc/ # cp /etc/services /mnt/etc/ # cp /etc/localtime /mnt/etc/ # /bin/l2chroot /usr/bin/php5-cgi # /bin/l2chroot /usr/bin/php-cgi # cp /lib/ld-linux.so.2 /mnt/lib # dpkg -L php5-mysql # mkdir -p /mnt/usr/lib/php5/20060613+lfs # cp /usr/lib/php5/20060613+lfs/mysql.so /mnt/usr/lib/php5/20060613+lfs/ # cp /usr/lib/php5/20060613+lfs/mysqli.so /mnt/usr/lib/php5/20060613+lfs/ # cp /usr/lib/php5/20060613+lfs/pdo_mysql.so /mnt/usr/lib/php5/20060613+lfs/ # /bin/l2chroot /usr/lib/php5/20060613+lfs/mysql.so # /bin/l2chroot /usr/lib/php5/20060613+lfs/mysqli.so # /bin/l2chroot /usr/lib/php5/20060613+lfs/pdo_mysql.so # lighty-enable-mod fastcgi
- Pozostaje jeszcze edycja pliku konfiguracyjnego Lighttpd (/etc/lighttpd/lighttpd.conf). edytujemy linie:
Z poziomu chroot będzie ono niedostępne dlatego musimy zmienić jego pomożenie. Najpierw utworzymy katalog i zmienimy jego właściciela na mysql:
Kod: Zaznacz cały
server.chroot = "/mnt" server.document-root = "/home/lighttpd/"
Kod: Zaznacz cały
mkdir -p /mnt/var/run/mysqld/ chown mysql /mnt/var/run/mysqld/
- Następnie edytujemy plik konfiguracyjny MySQL (/etc/mysql/my.cnf) i zmieniamy miejsce gdzie ma być zapisane gniazdo:
Debian posiada dodatkowe skrypty monitorujące pracę MySQL, musimy je powiadomić o tym, że plik gniazda zmienił swoje domyślne położenie. Edytujemy plik /etc/mysql/debian.cnf i sekcję socket ustawiamy na: socket = /chroot/var/run/mysqld/mysqld.sock
Kod: Zaznacz cały
[client] socket = /chroot/var/run/mysqld/mysqld.sock [mysqld_safe] socket = /chroot/var/run/mysqld/mysqld.sock [mysqld] socket = /chroot/var/run/mysqld/mysqld.sock
Teraz możemy zrestartować serwer bazy danych oraz lighttpd:Kod: Zaznacz cały
/etc/init.d/mysql restart /etc/init.d/lighttpd restart
- Oraz dodałem wirtualne hosty w /etc/lighttpd/lighttpd.conf:
Kod: Zaznacz cały
### VirtualneHosty include "virtualhost/domena.pl" #fastcgi.server = ( ".php" => (( # "bin-path" => "/usr/bin/php5-cgi", # "socket" => "/tmp/php.socket", # )))
- I wedle poradnika wszystko cacy, powinno dzałać, lecz wyświetla przeróżne błędy m.in:
Kod: Zaznacz cały
2010-01-12 16:10:46: (log.c.75) server started 2010-01-12 16:10:46: (mod_fastcgi.c.1047) the fastcgi-backend /usr/bin/php-cgi failed to start: 2010-01-12 16:10:46: (mod_fastcgi.c.1051) child exited with status 9 /usr/bin/php-cgi 2010-01-12 16:10:46: (mod_fastcgi.c.1054) If you're trying to run PHP as a FastCGI backend, make sure you're using the FastCGI-enabled version. You can find out if it is the right one by executing 'php -v' and it should display '(cgi-fcgi)' in the output, NOT '(cgi)' NOR '(cli)'. For more information, check http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI#preparing-php-as-a-fastcgi-programIf this is PHP on Gentoo, add 'fastcgi' to the USE f$ 2010-01-12 16:10:46: (mod_fastcgi.c.1358) [ERROR]: spawning fcgi failed. 2010-01-12 16:10:46: (server.c.908) Configuration of plugins failed. Going down.
Czy ktoś może mi w tym przypadku podpowiedzieć bo coś nie tak jest z tym fastcgi?
Dodane:
Jakieś podpowiedzi co do tych błędów - fastcgi?