PHP5 mittels Source Code auf einem frischen Ubuntu installieren

Das “hineinkompilieren” eines Advantage Database-Moduls machte es für mich erforderlich, die aktuelle PHP-Version auf einem frisch installierten Ubuntu (14.04) zu installieren.

Angelehnt an diese Anleitung entstand für mich der folgende Workarround:

Nach der Installation sind zuerst die Voraussetzungen für die Verwendung von PHP notwendig:

sudo apt-get install git build-essential autoconf apache2-prefork-dev

Anschließend installierte ich den Apache und zugehörige DEV-Module:

sudo apt-get install apache2 apache2-dev

Für das erfolgreiche Absolvieren benötigte ich noch die folgenden “Zusatzmodule”:

sudo apt-get php5-cli php5-mysql php5-gd php5-mcrypt php5-curl libapache2-mod-php5 php5-xmlrpc mysql-client libapache2-mod-fastcgi libxslt1.1 libxslt1-dev

 

sudo apt-get install php5-dev libbz2-dev libmysqlclient-dev libxpm-dev libmcrypt-dev libcurl4-gnutls-dev libxml2-dev libjpeg-dev libpng12-dev libfreetype6-dev libicu-dev

Wenn noch MySQL gewünscht ist, lässt sich dieses noch einfach ergänzen

sudo apt-get install mysql-server

Jetzt könnt ihr testen, ob der Apache richtig installiert wurde, indem ihr die IP-Adresse der Ubuntu-Servers im Browser aufruft:

Ubuntu Apache2 Install Confirmation SiteJetzt ist es an der Zeit den PHP Quelltext herunterzuladen:

git clone https://github.com/php/php-src.git

Checkt die von Euch gewünschte Version aus:

git checkout PHP-5.6.26

oder

git checkout PHP-5.6

Um aus dem PHP-Source nachher das makefile mit .configure zu erzeugen, benötigt ihr noch Bison, sonst bringt er folgende Fehlermeldung:

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure: error: bison is required to build PHP/Zend when building a GIT checkout!

Diese Meldung umgeht ihr, indem ihr Euch bison von http://launchpadlibrarian.net herunterladet und installiert:

wget http://launchpadlibrarian.net/140087283/libbison-dev_2.7.1.dfsg-1_amd64.deb
wget http://launchpadlibrarian.net/140087282/bison_2.7.1.dfsg-1_amd64.deb
sudo dpkg -i libbison-dev_2.7.1.dfsg-1_amd64.deb
sudo dpkg -i bison_2.7.1.dfsg-1_amd64.deb

geht in den PHP-Source-Path – bei mir:./bu

cd ~/php-source

Jetzt muss das .configure-Skript erstellt werden mit

./buildconf

Als nächstes wird mit /.configure eingestellt, welche Module wir in PHP haben möchten. Ich empfehle diesen Mix aus üblichen PHP-Modulen:

./configure –with-apxs2=/usr/bin/apxs2 –with-mysql  –enable-mbstring   –with-curl   –with-openssl   –with-xmlrpc   –enable-soap   –enable-zip   –with-gd   –with-jpeg-dir   –with-png-dir   –with-mysql   –with-pgsql   –enable-embedded-mysqli   –with-freetype-dirphp    –enable-intl   –with-xsl –enable-mbstring   –with-curl   –with-openssl   –with-xmlrpc   –enable-soap   –enable-zip   –with-gd   –with-jpeg-dir   –with-png-dir   –with-mysql   –with-pgsql   –enable-embedded-mysqli   –with-freetype-dir     –enable-intl   –with-xsl –prefix=/usr/local/php

Mit den folgenden Befehlen erstellt ihr das Setup und installiert anschließend PHP auf dem Server

sudo make

sudo make install

libtool –finish /home/gustini/php-src/libs

Jetzt kopiert ihr eine der PHP-INIs (develpment oder production) an den Zielordner:

sudo cp php.ini-development /usr/local/lib/php.ini

Um PHP im Apache einzubinden, müsst ihr die Apache2.conf um folgende Zeilen ergänzen:

sudo vim /etc/apache2/apache2.conf

LoadModule php5_module /usr/local/php/lib/libphp5.so
AddType application/x-httpd-php .php

Damit PHP auch funktioniert, muss Apache2 vom ThreadSafe-Mode in den NotThreadSafeMode umgeschaltet werden:

sudo a2dismod mpm_event

sudo a2enmod mpm_prefork

cd

Jetzt müsst ihr noch den Apache2 neu starten:

sudo /etc/init.d/apache2 stop

sudo /etc/init.d/apache2 start

Anschließend sollte Apache und PHP5 erfolgreich installiert sein.

Ergänzende Hinweise:

Hinzufügen von PHP zum Pfad

sudo vim ~/.bashrc

Am Ende der Datei hinzufügen:

export PATH=$PATH:/usr/local/php/bin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bitte lösen Sie die folgende Rechenaufgabe, um zu zeigen, dass Sie kein Bot sind. Danke! * Time limit is exhausted. Please reload CAPTCHA.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.