PHP: Difference between revisions

From CBLFS
Jump to navigationJump to search
Mike (talk | contribs)
No edit summary
32Bit: Fixed a bit of dubious wording
 
(49 intermediate revisions by 13 users not shown)
Line 1: Line 1:
{| style="text-align: left; background-color: AliceBlue;"
{| style="text-align: left; background-color: AliceBlue;"
|-
|-
Download Source: http://de.php.net/get/php-4.4.5.tar.bz2/from/a/mirror
!Download Source:
|
| http://us2.php.net/get/php-{{PHP-Version}}.tar.bz2/from/us.php.net/mirror
Download Source: http://de.php.net/get/php-5.2.1.tar.bz2/from/a/mirror
|
|}
|}


----
----


== Introductin to PHP ==
{{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/}}
 
PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.
 
PHP has MANY options that can be used. please refer to the ./configure --help  script and see whats possible.
 


== Warning: ==
== Warning: ==
Line 28: Line 21:


=== Optional ===
=== Optional ===
* [[Zlib]]
* [[libjpeg]]
* [[libjpeg]]
* [[libmcrypt]]
* [[GDBM]]
* [[GDBM]]
* [[OpenSSL]]
* [[OpenSSL]]
* [[OpenLDAP]]
* [[OpenLDAP]]
* [[Mysql]]
* [[MySQL]]
* [[GD]]
 
== 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
 
 
{{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 ==
 
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 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:
 
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"
<html>
<head>
<title>PHP-Testpage</title>
</head>
<body>
<?php
phpinfo();
?>
</body>
</html>
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 php{{PHP-Version2}}_module  lib/apache/libphp{{PHP-Version2}}.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>


== Configuration Information ==


See '''./configure --help''' for more configuration options.
If you also choose to build a 64Bit PHP, you must:
rm -f /etc/php/pear.conf


----
----


== Non-Multilib ==
=== 64Bit ===


Compile the package:
Compile the package:


  ./configure --prefix=/usr --sysconfdir=/etc/php --libdir=/usr/lib --localstatedir=/var --with-apxs2=/usr/sbin/apxs --with-mysql
CC="gcc ${BUILD64}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" USE_ARCH=64 MYSQL_LIB_DIR=/usr/lib64 \
  make && make install
  ./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 php{{PHP-Version2}}_module  lib64/apache/libphp{{PHP-Version2}}.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>


{{Note|If you have a 32bit Apache then make sure you have the following in httpd.conf:
LoadModule php{{PHP-Version2}}_module  lib/apache/libphp{{PHP-Version2}}.so
If you have a 64bit Apache then make sure you have the following in httpd.conf:
LoadModule php{{PHP-Version2}}_module  lib64/apache/libphp{{PHP-Version2}}.so
}}


NOTE: NOT FINISHED YET! PLEASE WATCH OUT!
[[Category:Programming]]

Latest revision as of 12:34, 2 January 2011

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


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 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-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>

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=20943"