PHP

From CBLFS
Revision as of 16:25, 22 August 2009 by Devilsclaw (talk | contribs) (Configuration Information)
Jump to navigationJump to search
Download Source: http://us2.php.net/get/php-5.3.2.tar.bz2/from/us.php.net/mirror

Introduction to PHP

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

Project Homepage: http://www.php.net/

Warning:

The PHP Developer team means:

"We do not recommend using a threaded MPM in production with Apache2. Use the prefork MPM instead, or use Apache1. For information on why, read the related FAQ entry on using Apache2 with a threaded MPM"[1]"

Dependencies

Required

Optional

Configuration Information

See the output of ./configure --help for many more configuration options.

If you use Apache 1 then you must use --with-apxs instead --with-apxs2

If you want use Libmcrypt then you must add --with-mcrypt to the configure script


Caution.png

Note

PHP does not use DESTDIR, it uses INSTALL_ROOT for the same purpose. Use INSTALL_ROOT as you would normally use DESTDIR. There are some errors that are safe to ignore. It also will fail if it does not find a valid httpd.conf in the < DIRECTORY >etc/apache folder. one way to fix this is

install -d <DIRECTORY>/etc/apache && cp /etc/apache/httpd.conf <DIRECTOR>/etc/apache/

or figure out a way to fake the httpd.conf. remember to deal with the new data in httpd.conf with your installer
Caution.png

Note

There are some reproducable problems with PHP on both x86 and x86_64 architecture when compiling with GCC4 and -O3 optimization (see for example http://bugs.gentoo.org/show_bug.cgi?id=211611, there are more).

Non-Multilib

Compile the package:

./configure --prefix=/usr --sysconfdir=/etc/php \
    --libdir=/usr/lib --localstatedir=/var \
    --with-apxs2=/usr/sbin/apxs --with-mysql \
    --with-layout=GNU &&
make

Install the package:

make install
cp php.ini-recommended /etc/php/php.ini

The install script changes your Apache configuration and adds the entry: "LoadModule php5_module lib/apache/libphp5.so". But it forgets to set the mime application type. Open /etc/apache/httpd.conf and add following line in the <IfModule mime_module> section:

AddType application/x-httpd-php .php .phtml .php3 .htm .html

When you want start a site with php-code, you must add:

<IfModule dir_module>
   DirectoryIndex index.html index.php index.php3 index.htm
</IfModule>

To test your PHP installation, try this:

cat > /srv/www/htdocs/phptest.php << "EOF"

 
 PHP-Testpage
 
 
 
  
 
EOF
/etc/rc.d/init.d/apache restart
lynx localhost/phptest.php

Multilib

32Bit

Compile the package:

CC="gcc ${BUILD32}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" USE_ARCH=32 \
./configure --prefix=/usr --sysconfdir=/etc/php --libdir=/usr/lib \
    --localstatedir=/var --with-apxs2=/usr/sbin/apxs --with-mysql \
    --with-layout=GNU &&
make

Install the package:

make install &&
mv -v /usr/bin/php-config{,-32} &&
cp php.ini-recommended /etc/php/php.ini

The installscript change your Apache config and add the entry: "LoadModule php5_module lib/apache/libphp5.so" But it forgets to set the mime applicationtype. So go to the /etc/apache/httpd.conf and add following line in the <IfModule mime_module> section:

AddType application/x-httpd-php .php .phtml .php3 .htm .html

When you want start a site with php-code, you must add:

IfModule dir_module>
   DirectoryIndex index.html index.php index.php3 index.htm
</IfModule>


If you build also a 64Bit PHP, you must:

rm -f /etc/php/pear.conf

64Bit

Compile the package:

CC="gcc ${BUILD64}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" USE_ARCH=64 MYSQL_LIB_DIR=/usr/lib64 \
./configure --prefix=/usr --sysconfdir=/etc/php \
    --libdir=/usr/lib64 --localstatedir=/var \
    --with-apxs2=/usr/sbin/apxs --with-mysql \
    --with-layout=GNU &&
make

Install the package:

make install
mv -v /usr/bin/php-config{,-64}
ln -sfv multiarch_wrapper /usr/bin/php-config
cp php.ini-recommended /etc/php/php.ini

The installscript change your Apache config and add the entry: "LoadModule php5_module lib64/apache/libphp5.so" But it forgets to set the mime applicationtype. So go to the /etc/apache/httpd.conf and add the following line in the <IfModule mime_module> section:

AddType application/x-httpd-php .php .phtml .php3 .htm .html

When you want start a site with php-code, you must add:

<IfModule dir_module>
   DirectoryIndex index.html index.php index.php3 index.htm
</IfModule>
Caution.png

Note

If you have a 32bit Apache then make sure you have the following in httpd.conf:
LoadModule php5_module   lib/apache/libphp5.so

If you have a 64bit Apache then make sure you have the following in httpd.conf:

LoadModule php5_module   lib64/apache/libphp5.so
Retrieved from "?title=PHP&oldid=18920"