PHP: Install from Source

In both cases, CentOS or Ubuntu, you'll need to install development libraries for the packages to build against.

Configuration

If the PHP configuration of a system provides the configuration options for when it was built, that is the best starting point.

Otherwise, here is a generic list of arguments for configuration. This will build PHP as a CGI, and look for a configuration in /etc/php/php.ini.

./configure '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--prefix=/usr/lib/php5.3' '--mandir=/usr/lib/php5.3/man' '--infodir=/usr/lib/php5.3/info' '--libdir=/usr/lib/php5.3/lib' '--with-libdir=lib' '--disable-maintainer-zts' '--enable-bcmath' '--with-bz2' '--enable-calendar' '--with-curl' '--without-curlwrappers' '--without-enchant' '--disable-exif' '--disable-fileinfo' '--disable-ftp' '--with-gettext' '--with-gmp' '--with-mhash' '--disable-intl' '--without-kerberos' '--enable-mbstring' '--with-mcrypt' '--with-mssql' '--with-onig=/usr' '--with-openssl' '--with-openssl-dir=/usr' '--disable-pcntl' '--without-pgsql' '--disable-posix' '--without-pspell' '--without-recode' '--disable-shmop' '--without-snmp' '--enable-soap' '--disable-sockets' '--without-sybase-ct' '--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm' '--without-tidy' '--disable-wddx' '--with-xmlrpc' '--with-xsl' '--enable-zip' '--with-zlib' '--disable-debug' '--without-cdb' '--without-db4' '--disable-flatfile' '--without-gdbm' '--disable-inifile' '--without-qdbm' '--with-freetype-dir=/usr' '--disable-gd-jis-conv' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--without-xpm-dir' '--with-gd' '--with-mysql=mysqlnd' '--with-mysql-sock=/var/run/mysqld/mysqld.sock' '--with-mysqli=mysqlnd' '--without-oci8' '--with-pdo-dblib' '--with-pdo-mysql=mysqlnd' '--without-pdo-pgsql' '--with-pdo-sqlite=/usr' '--without-pdo-odbc' '--without-readline' '--without-libedit' '--without-mm' '--with-sqlite=/usr' '--enable-sqlite-utf8' '--with-config-file-path=/etc/php/' '--disable-embed' '--enable-cgi' '--disable-fpm' '--without-apxs2' | tee config.out

This configuration will build (ideally) these modules:

  • bcmath
  • bz2
  • calendar
  • Core
  • ctype
  • curl
  • date
  • dom
  • ereg
  • filter
  • gd
  • gettext
  • gmp
  • hash
  • iconv
  • json
  • libxml
  • mbstring
  • mcrypt
  • mhash
  • mssql
  • mysql
  • mysqli
  • mysqlnd
  • openssl
  • pcre
  • PDO
  • pdo_dblib
  • pdo_mysql
  • pdo_sqlite
  • Phar
  • Reflection
  • session
  • SimpleXML
  • soap
  • SPL
  • SQLite
  • sqlite3
  • standard
  • tokenizer
  • xml
  • xmlreader
  • xmlrpc
  • xmlwriter
  • xsl
  • zip
  • zlib