Difference between revisions of "PHP"
(Warning about -O3 optimization) |
(→32Bit: Fixed a bit of dubious wording) |
||
(16 intermediate revisions by 8 users not shown) | |||
Line 7: | Line 7: | ||
---- | ---- | ||
− | {{Package-Introduction|PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.}} | + | {{Package-Introduction|PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.|http://www.php.net/}} |
== Warning: == | == Warning: == | ||
Line 22: | Line 22: | ||
=== Optional === | === Optional === | ||
* [[libjpeg]] | * [[libjpeg]] | ||
+ | * [[libmcrypt]] | ||
* [[GDBM]] | * [[GDBM]] | ||
* [[OpenSSL]] | * [[OpenSSL]] | ||
* [[OpenLDAP]] | * [[OpenLDAP]] | ||
* [[MySQL]] | * [[MySQL]] | ||
+ | * [[GD]] | ||
== Configuration Information == | == Configuration Information == | ||
Line 33: | Line 35: | ||
If you use Apache 1 then you must use --with-apxs instead --with-apxs2 | If you use Apache 1 then you must use --with-apxs instead --with-apxs2 | ||
− | {{Note|There are some | + | If you want use Libmcrypt then you must add --with-mcrypt to the configure script |
− | }} | + | |
+ | |||
+ | {{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}} | ||
+ | |||
+ | {{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 <nowiki>http://bugs.gentoo.org/show_bug.cgi?id=211611</nowiki>, there are more).}} | ||
== Non-Multilib == | == Non-Multilib == | ||
Line 42: | Line 51: | ||
./configure --prefix=/usr --sysconfdir=/etc/php \ | ./configure --prefix=/usr --sysconfdir=/etc/php \ | ||
--libdir=/usr/lib --localstatedir=/var \ | --libdir=/usr/lib --localstatedir=/var \ | ||
− | --with-apxs2=/usr/sbin/apxs --with-mysql && | + | --with-apxs2=/usr/sbin/apxs --with-mysql \ |
+ | --with-layout=GNU && | ||
make | make | ||
Line 48: | Line 58: | ||
make install | make install | ||
− | cp php.ini- | + | cp php.ini-production /etc/php/php.ini |
The install script changes your Apache configuration and adds the entry: "LoadModule php{{PHP-Version2}}_module lib/apache/libphp{{PHP-Version2}}.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: | The install script changes your Apache configuration and adds the entry: "LoadModule php{{PHP-Version2}}_module lib/apache/libphp{{PHP-Version2}}.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: | ||
Line 68: | Line 78: | ||
</head> | </head> | ||
<body> | <body> | ||
− | <? | + | <?php |
phpinfo(); | phpinfo(); | ||
?> | ?> | ||
Line 85: | Line 95: | ||
CC="gcc ${BUILD32}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" USE_ARCH=32 \ | CC="gcc ${BUILD32}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" USE_ARCH=32 \ | ||
− | ./configure --prefix=/usr --sysconfdir=/etc/php --libdir=/usr/lib --localstatedir=/var | + | ./configure --prefix=/usr --sysconfdir=/etc/php --libdir=/usr/lib \ |
− | + | --localstatedir=/var --with-apxs2=/usr/sbin/apxs --with-mysql \ | |
− | make | + | --with-layout=GNU && |
+ | make | ||
Install the package: | Install the package: | ||
− | make install | + | make install && |
− | mv -v /usr/bin/php-config{,-32} | + | mv -v /usr/bin/php-config{,-32} && |
− | cp php.ini- | + | cp php.ini-production /etc/php/php.ini |
The installscript change your Apache config and add the entry: "LoadModule php{{PHP-Version2}}_module lib/apache/libphp{{PHP-Version2}}.so" | The installscript change your Apache config and add the entry: "LoadModule php{{PHP-Version2}}_module lib/apache/libphp{{PHP-Version2}}.so" | ||
Line 107: | Line 118: | ||
− | If you build | + | If you also choose to build a 64Bit PHP, you must: |
rm -f /etc/php/pear.conf | rm -f /etc/php/pear.conf | ||
Line 118: | Line 129: | ||
CC="gcc ${BUILD64}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" USE_ARCH=64 MYSQL_LIB_DIR=/usr/lib64 \ | 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 \ | + | ./configure --prefix=/usr --sysconfdir=/etc/php \ |
− | + | --libdir=/usr/lib64 --localstatedir=/var \ | |
+ | --with-apxs2=/usr/sbin/apxs --with-mysql \ | ||
+ | --with-layout=GNU && | ||
make | make | ||
Line 127: | Line 140: | ||
mv -v /usr/bin/php-config{,-64} | mv -v /usr/bin/php-config{,-64} | ||
ln -sfv multiarch_wrapper /usr/bin/php-config | ln -sfv multiarch_wrapper /usr/bin/php-config | ||
− | cp php.ini- | + | cp php.ini-production /etc/php/php.ini |
The installscript change your Apache config and add the entry: "LoadModule php{{PHP-Version2}}_module lib64/apache/libphp{{PHP-Version2}}.so" | The installscript change your Apache config and add the entry: "LoadModule php{{PHP-Version2}}_module lib64/apache/libphp{{PHP-Version2}}.so" | ||
Line 145: | Line 158: | ||
LoadModule php{{PHP-Version2}}_module lib64/apache/libphp{{PHP-Version2}}.so | LoadModule php{{PHP-Version2}}_module lib64/apache/libphp{{PHP-Version2}}.so | ||
}} | }} | ||
+ | |||
+ | [[Category:Programming]] |
Latest revision as of 11:34, 2 January 2011
Download Source: | http://us2.php.net/get/php-5.3.2.tar.bz2/from/us.php.net/mirror |
---|
Contents
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
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 installerNon-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-production /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-production /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 also choose to build 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-production /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>