PHP Selber Bauen
Total Page:16
File Type:pdf, Size:1020Kb
PHPPHP selberselber bauenbauen PHPPHP UserUser GroupGroup FrankfurtFrankfurt 31.03.201131.03.2011 WalterWalter EbertEbert http://www.flickr.com/photos/zunami/4738471442/ Willkommen bei den anonymen PHPlern Mein Name ist Walter und ich kompiliere mir PHP selber Nicht immer, aber immer öfter Goggler-Handzeigen http://www.flickr.com/photos/zunami/3125589973/ http://php.net/releases/5_3_0.php http://www.php.net/releases/5_3_3.php http://derickrethans.nl/distributions-please-dont-cripple-php-or-red-hat-stop-fucking-around.html Kompatibilität / Features Du musst zum Beispiel: PHP4 irgendwer? ● eine alte PHP Version unterstützen ● mehrere PHP Versionen bzw. Konfigurationen testen ● proprietäre Extensions nutzen die nur mit bestimmten PHP Versionen funktionieren ● die letzte Entwickler-Version testen (trunk) http://www.flickr.com/photos/mama/94778673/ b ./configure make sudo make install http://www.php.net/downloads.php b ./configure make make test sudo make install Linux Unix Mac OS X Windows -> benutze einfach die binaries oder wenn man wirklich muss; besuche: http://wiki.php.net/internals/windows/stepbystepbuild b \ = escape linebreaks sudo apt-get install \ automake autoconf gcc \ libtool binutils subversion \ libxml2-dev libcurl4-dev \ libfreetype6-dev libjpeg-dev libpng-dev Packages fuer debian / ubuntu ./configure --help b sage: configure "options# "host# $ptions! [defaults in brackets after descriptions# %onfiguration! --cache-file&'()* cache test results in '()* --help print this message --no-create do not create output files --quiet, --silent do not print `checking.... messages --version print the version of autoconf that created con /irectory and file names: --prefix=01*'(2 install architecture-independent files in 01*' "/usr/local# --exec-prefix=*01*'(2 install architecture-dependent files in *01*'( "same as prefix# --bindir=/(1 user executables in /(1 [*01*'(2/bin# --sbindir&/(R system admin executables in /(1 "*01*'(2/sbin# --libexecdir&/(1 program executables in /(1 "*01*'(2/libexec# --datadir&/(R read-only architecture-independent data in /(1 "01*'(2/share] --sysconfdir&/(1 read-only single-machine data in /(1 "01*'(X/e --sharedstatedir&/(1 modifiable architecture-independent data in D( "01*'(2/com# --localstatedir&/(1 modifiable single-machine data in D(1 "01*'(2/ --libdir=/(1 object code libraries in /(1 [*01*'(2/lib# --includedir&/(1 % header files in /(1 "01*'(X/include# b ./configure \ --with-apxs2 \ --with-mysql=mysqlnd --with-mysqli=mysqlnd \ -–with-pdo-mysql=mysqlnd \ --with-curl \ --with-gd \ --with-jpeg-dir=/usr --with-png-dir=/usr \ --with-freetype-dir=/usr Fuer Apache: Sudo apt-get install apache2-prefork-dev b ./configure \ --enable-fpm \ --with-gettext --enable-zend-multibyte \ --enable-mbstring --with-mcrypt \ --enable-soap --enable-wddx --with-xsl \ --with-curl --with-openssl \ --with-zlib-dir=/usr --with-bz2 --enable-zip \ --with-gd --with-jpeg-dir=/usr \ --with-png-dir=/usr --with-freetype-dir=/usr \ --enable-exif \ --with-mysql=mysqlnd --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-pgsql=/usr --with-pdo-pgsql \ --without-sqlite --without-sqlite3 \ --without-pdo-sqlite \ --with-mm=/usr ./configure ... b checking whether to build shared libraries... no checking whether to build static libraries... yes creating libtool appending configuration tag "CXX" to libtool Generating files updating cache ./config.cache creating ./config.status creating php5.spec creating main/build-defs.h creating scripts/phpize creating scripts/man1/phpize.1 creating scripts/php-config creating scripts/man1/php-config.: creating sapi/cli/php.1 creating main/php_config.h creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file )(%*@AE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. b make /bin/sh /home/walter//ownloads/php-9.3.9/libtool --silent --preserve-dup-deps --mode&compile gcc -(ext/date/lib -(ext/date/ -(/home/walter//o3nloads/php-5.6.5/ext/date/ -/0?0;C>$D;(@% -(/home/walter//o3nloads/php-5.6.5/include ... lxml2 -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lcrypt -o sapi/cli/php 8enerating phar.php 8enerating phar.phar 0*CR package 0?0;Crchive not installed: generated phar 3ill re+uire 0?0's phar extension be enabled. directorygraphiterator.inc directorytreeiterator.inc clicommand.inc invertedregexiterator.inc pharcommand.inc phar.inc Build complete. /on't forget to run .make test.. make test &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&b 0?0 ! /home/3alter//ownloads/php-9.3.9/sapi/cli/php 0?0;AC0I ! cli 0?0;E*1A($@ ! 5.6.9 F*@/;E*1A($@! 2.6.G 0?0;$A ! Linux - Linux )D- 2GG 2.6.69-25-generic H44-Ubuntu ADP (@( actual ! /home/3alter//ownloads/php-9.3.9/tmp-php.ini ... IC1@*/ >*A> A DDC1J --------------------------------------------------------------------- via [ext/pdo;sqlite/tests/common.phpt# AK)ite 0/$ %ommon! Bug #64660 Linserting streams as )$BsM"ext/pdo via [ext/s+lite/tests/pdo/common.phpt# AK)ite2 P/$ %ommon: Bug H6466G Linserting streams as L$BsM [ext/s Bug #6N866 Lfile;exists(M silently truncates after a null byteM [ext/ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Jou may have found a problem in 0?0. Ie would like to send this report automatically to the 0?0 QC team, to give us a better understanding of ho3 the test cases are doing. (f you don.t 3ant to send it immediately, you can choose "s7 to save the report to a file that you can send us later. /o you want to send this report nowP "Jns#! sudo make install 8enerating phar.php b 8enerating phar.phar 0*CR package 0?0;Crchive not installed: generated phar 3ill directorygraphiterator.inc directorytreeiterator.inc clicommand.inc invertedregexiterator.inc pharcommand.inc phar.inc (nstalling 0?P AC0I module! fpm (nstalling 0?P %)( binary! /usr/local/bin/ ... (nstalling man pages! /usr/local/man/man1/ page! phpi5e.: page! php-config.1 (nstalling 0*C1 environment! /usr/local/lib/php/ "0*C1# Archive_>ar - installed: :.3.Q "0*C1# Console_8etopt - installed: :.2.6 "0*C1# Structures;Graph- installed: :.0.6 "0*C1# 2D); til - installed: :.2.: "0*C1# 0*C1 - installed: :.9.: Iarning! a 0*C1 user config file already exists from a previous Irote 0*C1 system config file at! /usr/local/etc/pear.conf Jou may want to add: /usr/local/lib/php to your php.ini include_path /home/3alter/Do3nloads/php-9.3.9/build/shtool install -c ext/phar/ph ln -s -f /usr/local/bin/phar.phar /usr/local/bin/phar (nstalling 0/O headers: /usr/local/include/php/ext/pdo/ b sudo cp php.ini-development /usr/local/lib/php.ini oder sudo cp php.ini-production /usr/local/lib/php.ini b Mit der neuesten Entwickler-Version Entweder: wget http://snaps.php.net/php-trunk-latest.tar.bz2 Oder: svn checkout http://svn.php.net/repository/php/php-src/trunk/ trunk cd trunk ./buildconf ./configure make sudo make install Standard aktivierte Extensions (in php 5.3) Core ctype date dom ereg fileinfo filter hash Iconv json libxml pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML SPL SQLite sqlite3 standard tokenizer xml xmlreader xmlwriter ./configure --disable-simplexml --without-s+lite6 Populäre PHP Extensions ● APC, xCache, eAccelerator ● Memcache, memcached ● Xdebug ● PostgreSQL, mongoDB, OCI8, SQLSRV ● Sphinx, xapian, mnogosearch, solr ● Suhosin b PECL sudo pecl install apc http://pecl.php.net/ b Extensions kompilieren phpi5e ./configure make sudo make install Phpize gibt es ab php 5.3.6 auch fuer windows b /usr/local/lib/p$p.ini "apc# extension&apc.so "xdebug] 5end;extension&7/usr/local/lib/php /extensions/no-debug-non-5ts- 2GGNG626/xdebug.so7 http://de.php.net/manual/de/install.php Walter Ebert Web &evelopment @wltrd walterebert.de blog.walterebert.com slideshare.net/walterebert Search Meetup Frankfurt (12.4.) searchmeetupfrankfurt.de .