PHP: Hypertext Preprocessor (original) (raw)

Found A Problem?

jaw at jawspeak dot com - Jonathan Andrew Wolte

17 years ago

`Be sure to use double quotes in the php.ini file. For instance:

(lines broken for readability)

this will work:

xdebug debugging

zend_extension="/usr/local/php5/lib/php/extensions
/no-debug-non-zts-20060613/xdebug.so"

this won't:

xdebug debugging

zend_extension='/usr/local/php5/lib/php/extensions
/no-debug-non-zts-20060613/xdebug.so'

You'll get this error:
Failed loading '/usr/local/php5/lib/php/extensions/
no-debug-non-zts-20060613/xdebug.so': (null)

So... double quotes are the way! I know this is obvious, but it's a good thing to remember for the php.ini file.

`

henrick at streamsec dot se

18 years ago

`In order to get PHP 5.2 stable running on Windows Server 2003 x64 (IIS 6.0), I discovered three things (in addition to the other comments above):

`

alvaro at demogracia dot com

17 years ago

`About Apache 2.0 module:

For whatever reason, the Windows installer for PHP/5.2.3 tries to set the PHPIniDir directive using "\" as directory separator:

PHPIniDir "C:\Archivos de programa\PHP\"

It didn't work for me until I edited httpd.conf and replaced it with "/":

PHPIniDir "C:/Archivos de programa/PHP/"

`

randy AT rcs-comp DOT com

19 years ago

(copied from another page) Please note that the SetEnv PHPRC "directory/to/phpini/" only works when using PHP as CGI, but _not_ when you use the PHP Apache Module!

salivatears at gmail dot com

14 years ago

`For windows with limited file permission (Windows XP)

  1. Install Apache in your folder profile "C:\Documents and Settings\your_profile"

  2. Add the following directives to you httpd.conf
    PHPINIDir "C:\Documents and Settings\your_profile\php"

LoadModule php5_module "C:\Documents and Settings\your_profile\php\php5apache2_2.dll"

AddType application/x-httpd-php .php

  1. Edit the following directive to you php.ini
    extension_dir = "C:\Documents and Settings\your_profile\php\ext"

  2. Move the file libmysql.dll from C:\Documents and Settings\your_profile\php\ to C:\Documents and Settings\your_profile\php\ext\

  3. Restart httpd using command line

`

cduke420 at gmail dot com

18 years ago

`[ When php run as Apache Module ]
DOCUMENT_ROOT .htaccess
+======================================+
SetEnv PHPRC /home/user/dir-containing-phpinifile
+======================================+

[ When php run as CGI ]
Place your php.ini file in the dir of your cgi'd php binary, in this case /cgi-bin/
DOCUMENT_ROOT .htaccess
+======================================+
AddHandler php-cgi .php .htm
Action php-cgi /cgi-bin/php5.cgi
+======================================+

[ PHP run as cgi with wrapper (for FastCGI) ]
Your wrapper script should look something like:
+======================================+
#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /user/htdocs/cgi-bin/php.cgi -c /home/user/php.ini
+======================================+

original article:
http://www.askapache.com/2007/php/custom-phpini-tips-and-tricks.html

`

goran

11 years ago

`To run separate apache and php processes on centos (at least) without
having to compile and install separate versions for every instance
this should work:

Install apache and php with yum.

This will give you (for the first instance):

/etc/httpd/, /etc/sysconfig/httpd, /etc/init.d/httpd, /etc/php.ini
and /etc/php.d/
.

Copy all this stuff to:
/etc/httpd2/, /etc/sysconfig/httpd2, /etc/init.d/httpd2, /etc/php2.ini
and /etc/php2.d/
.

Then:

Edit the apache config files in /etc/httpd2/* to reflect the new
ports you want to have this apache listen on (don't forget ssl.conf
under conf.d) and any other differing settings, like log file
destinations and virtualhosts.

Edit the php2.ini for any specific settings you want the other php
instance to have.

To have a completely separate php in this new apache instance with its own
modules included, edit /etc/sysconfig/httpd2 and add the following:

PHPRC=/etc/php2.ini
export PHPRC
PHP_INI_SCAN_DIR=/etc/php2.d
export PHP_INI_SCAN_DIR

This will set the environment variables for the second apache/php
instance before it is started.

Then edit /etc/init.d/httpd2 and change all references to httpd
(like lockfile, pidfile and sysconfig) to httpd2. Don't touch the
executable name, though :)

And change this:

LANG=$HTTPD_LANG daemon --pidfile=${pidfile} httpdhttpd httpdOPTIONS

to this:

LANG=$HTTPD_LANG daemon --pidfile=${pidfile} httpd−f/etc/httpd2/conf/httpd.confhttpd -f /etc/httpd2/conf/httpd.conf httpdf/etc/httpd2/conf/httpd.confOPTIONS

.. so this apache can find its own configuration file.

Then, if necessary 'chkconfig --add /etc/init.d/httpd2' to have it
in startup and you should have two apache instances with two separate
php modules with their own dedicated settings.

`

c dot affolter at stepping-stone dot ch

19 years ago

`For those people who want to use the PHPRC environment variable:
You have to specify the path to the directory containing your php.ini, not the direct path to the php.ini.

Example (php.ini resides in /your/path/php.ini):
right:
export PHPRC=/your/path

wrong:
export PHPRC=/your/path/php.ini

`