Zuletzt geändert am 21. September 2014 um 09:51

PHP5 CentOS

Vorbereitung

Für mcrypt

Sonst kann das Paket "libmcrypt-devel" im nächsten Schritt nicht installiert werden.

rpm -ivh http://ftp.tu-chemnitz.de/pub/linux/fedora-epel/6/i386/epel-release-6-7.noarch.rpm
yum update

Benötigte Pakete installieren

yum install gcc gcc-c++ libxml2-devel openssl-devel curl-devel \
libjpeg-devel libpng-devel freetype-devel libc-client-devel \
libicu-devel libmcrypt-devel mysql-devel aspell-devel libxslt-devel \
bzip2-devel libtidy-devel

PHP herunterladen

Neuste Version gibt es hier zum Download: http://php.net/downloads.php#v5

wget http://de1.php.net/get/php-5.3.20.tar.gz/from/de3.php.net/mirror
tar -xf php-5.3.20.tar.gz
cd php-5.3.20

Kompilieren und installieren

'./configure' \
'--prefix=/package/php-5.3.20' \
'--with-libdir=lib' \
'--with-config-file-path=/package/php-5.3.20/etc' \
'--with-config-file-scan-dir=/package/php-5.3.20/etc/conf.d' \
'--with-mysql' \
'--with-mysqli' \
'--with-pdo-mysql' \
'--with-gd' \
'--with-jpeg-dir' \
'--with-tidy' \
'--enable-mbstring' \
'--with-imap' \
'--with-imap-ssl' \
'--with-mcrypt' \
'--with-curl' \
'--with-kerberos' \
'--enable-bcmath' \
'--with-zlib' \
'--with-freetype-dir=/usr' \
'--with-gettext' \
'--with-bz2' \
'--with-openssl' \
'--with-sqlite' \
'--with-xsl' \
'--with-pspell' \
'--with-xmlrpc' \
'--enable-soap' \
'--enable-pcntl' \
'--enable-xml' \
'--enable-zip' \
'--enable-intl' \
'--enable-sockets' \
'--enable-exif' \
'--enable-calendar' \
'--enable-shmop' \
'--enable-ftp' \
'--disable-posix'
make
make install

Bekannte Fehler

Wenn dieser Fehler kommt, fehlt die Verknüpfung zu der benötigten .so Datei.

/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
yum install libtool-ltdl libtool
ln -s /usr/lib/libltdl.so.7.2.1 /usr/lib/libltdl.so

mod_fastcgi Installation

Benötigte Pakete installieren

yum install libtool httpd-devel apr-devel apr

mod_fastcgi herunterladen

wget http://www.fastcgi.com/dist/mod_fastcgi-current.tar.gz
tar -xf mod_fastcgi-current.tar.gz
cd mod_fastcgi-*

Kompilieren und installieren

cp Makefile.AP2 Makefile

32bit

make top_dir=/usr/lib/httpd
make install top_dir=/usr/lib/httpd

64bit

make top_dir=/usr/lib64/httpd
make install top_dir=/usr/lib64/httpd

fastcgi Modul laden

nano /etc/httpd/conf.d/mod_fastcgi.conf

Inhalt:

LoadModule fastcgi_module modules/mod_fastcgi.so

fcgi wrapper anlegen

nano /var/www/cgi-bin/php-fcgi-starter

Inhalt:

#!/bin/bash
# Shell Script To Run PHP5 using mod_fastcgi under Apache 2.x
### Set PATH ###
PHP_CGI=/package/php-5.3.20/bin/php-cgi
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
### no editing below ###
export PHP_FCGI_CHILDREN
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI

Rechte setzen, damit die Datei ausgeführt werden darf.

chmod +x /var/www/cgi-bin/php-fcgi-starter


Apache beibringen, wie er .php Dateien ausführen soll.

nano /etc/httpd/conf.d/mod_fastcgi.conf

Folgenden Inhalt ganz unten hinzufügen:

<Directory "/var/www/html">
  Options -Indexes FollowSymLinks +ExecCGI
   AllowOverride AuthConfig FileInfo
   AddHandler php5-fastcgi .php
   Action php5-fastcgi /cgi-bin/php-fcgi-starter
   DirectoryIndex index.php index.html
   Order allow,deny
   Allow from all
</Directory>

Apache neustarten

service httpd restart