Cygal.net.pl

Systemy, Sieci i takie tam :)

Wiele wersji php w ispconfig3

Panel ISPConfig3 jest darmowym cenionym panelem do zarządzania serwerem hostingowy. Panel ten posiada możliwość łatwego zarządzania vhostami apacha lub nginxa, php, bazami danych mysql, strefami dns, kontami pocztowymi czy tez kontami ftp. Często zdarza się, że potrzebujemy uruchomić nasza aplikacje PhP na nowszej lub starszej wersji tego popularnego języka programowania. Poniżej przedstawię w jaki prosty sposób możemy tego dokonać za pomaca panelu ISPConfig3. Opis instalacji potrzebnych pakietów przedstawiony zostanie w oparciu o system linux Debian.

1). Instalujemy oraz włączamy mod_fastcegi oraz mod_fcgid.

apt-get install libapache2-mod-fastcgi libapache2-mod-fcgid php5-cgi php5-fpm
a2enmod fcgid
a2enmod fastcgi

service apache2 restart

Powyższe komendy zainstalują nam potrzebne moduły dla apacha jak również php-cgi oraz php-fpm w wersjach z repozytorium ( w Debianie jest to wersja php5.3) .
Następnie ręcznie skompilujemy i zainstalujemy php-cgi oraz php-fpm w wersji 5.4.24

2) przygotowanie struktury katalogów

cd /opt/
mkdir php5.4.24

mkdir -p /usr/local/src/php5-build
cd /usr/local/src/php5-build

3) pobranie źródeł php oraz wymaganych zależności do kompilacji php.

wget http://pl1.php.net/get/php-5.4.24.tar.gz/from/this/mirror -O php5.4.24.tar.gz
tar -xvzf php5.4.24.tar.gz 

cd php-5.4.24/

apt-get install build-essential
apt-get build-dep php5

apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev

4). tworzymy symlinka dla biblioteki libc-client.a

W systemie 64 bitowym musimy utworzyć symlinka biblioteki libc-client.a w katalogu bibliotek 64 bitowych.

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

W przypadku braku folderu /usr/lib/x86_64-linux-gnu/ należy go utworzyć
mkdir -p /usr/lib/x86_64-linux-gnu/

5) kompilujemy nasze nowe php

Ważne aby pamiętać iż w systemie możemy mieć tylko jedna wersje mod_php, zatem musimy przy kompilacji włączyć php-cgi i/lub php-fpm w zależności od potrzeb. Poniżej przykład kompilacji zarówno php-cgi jaki php-fpm. W tym celu na koncu naszych opcji kompilacji dodajemy przełączniki –enable-cgi –enable-fpm. Warto również zadbać o zdefiniowanie –prefix zgodnie z nasza wcześniejszej stworzą struktura katalogów.

./configure --prefix=/opt/php5.4.24 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --enable-cgi --enable-fpm

Następnie wykonujemy komendy make i make install

make
make install

6). Konfigurujemy nasze nowe Php
W tym celu przechodzimy do katalogu do którego zainstalowaliśmy nasza nowa wersje php.

cd /opt/php5.4.24/

następnie przechodnimi do katalogu z konfiguracja czyli do etc

cd etc/

teraz skopiujmy przykładowa konfiguracje dla php-fpm na docelowy plik konfiguracyjny oraz przegrajmy nasze nowe php.ini.

cp /opt/php5.4.24/etc/php-fpm.conf.default /opt/php5.4.24/etc/php-fpm.conf
cp /etc/php5/cgi/php.ini /opt/php5.4.24/lib/

stwórzmy katalog pool.d dla naszej konfiguracji php-fpm

mkdir /opt/php5.4.24/etc/pool.d

dobrze teraz przyszła pora na skonfigurowanie php-fpm.

vim /opt/php5.4.24/etc/php-fpm.conf

W piliku konfigurujemy nasze parametry.

[bash]
pid = run/php-fpm.pid
[…]
user = www-data
/pidgroup = www-data
[…]
listen = 127.0.0.1:8998
[…]
include=/opt/php5.4.24/etc/pool.d/*.conf
[/bash]

7). Tworzymy skrypt startowy dla php-fpm

vim /etc/init.d/php5-fpm 

[bash]
#! /bin/sh
### BEGIN INIT INFO
# Provides: php5.4.24-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php5.4.24-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php5.4.24/sbin/php-fpm
php_fpm_CONF=/opt/php5.4.24/etc/php-fpm.conf
php_fpm_PID=/opt/php5.4.24/var/run/php-fpm.pid
php_opts="–fpm-config $php_fpm_CONF"

wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
‘created’)
if [ -f "$2" ] ; then
try=”
break
fi
;;
‘removed’)
if [ ! -f "$2" ] ; then
try=”
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found – php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found – php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found – php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esac
[/bash]

nadajemy skryptowi prawa do wykonywania

chomod +x /etc/init.d/php5.4.24-fpm

startujemy nasze php-fpm

/etc/init.d/php5.4.24-fpm start

8). Konfigurujemy dodatkowe wersje php w panelu ISPConfig3

Logujemy sie do naszego panelu ISPConfig
klikamy: System->Dodatkowe wersje PhP -> Add new PHP Version
ispconfig_php_1

Wskazujemy nazwę naszego serwera oraz wpisujemy nazwę naszej wersji php

ispconfig_php_2

konfigurujemy w panelu nasza nowa wersje php-cgi

ispconfig_php_3

ostatnim krokiem jest skonfigurowanie nowej wersji php-fpm

ispconfig_php_4

Teraz w możemy już z listy rozwijanej w konfiguracji vhosta wybrać nasza wersje php zarówno php-cgi jaki php-ftp

ispconfig_php_5

One thought on “Wiele wersji php w ispconfig3
  • zool pisze:

    Witam

    Bardzo fajny artykuł tylko szkoda że nie można zobaczyć zdjęć od ispconfig_php_1 do ispconfig_php_5.

    Dziękuję i pozdrawiam

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


Time limit is exhausted. Please reload CAPTCHA.