Dude, waar's mijn php.ini?

Een paar jaar geleden installeerde ik Apache 2.2x en PHP 5.3.1 op een Linux server die ik onderhoud. Ik gebruikte .tar.gz's en bouwde ze zoals geïnstrueerd (in plaats van rpms en wat-have-you). En alles ging goed.

Vandaag moet ik dit installeren, wat een PHP bibliotheek lijkt te zijn. Ik heb alle stappen doorlopen tot aan make install, en ik vind ibm_db2.so in $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

Het grote probleem is dat de laatste stap is om php.ini te configureren, maar er is GEEN php.ini op mijn systeem. Verschrikkelijk. PHP werkt prima, behalve natuurlijk voor deze nieuwerwetse ibm_db2 thingamagic die ik wil gebruiken zodat iemand een GUI kan gebruiken om aan DB2 te sleutelen. (Ik heb een klein php script geprobeerd dat faalt en aangeeft dat de ibm_db2 functies niet beschikbaar zijn).

Ik heb eens in de zoveel jaar te maken met PHP, dus kunt u mij op een heel basaal niveau vertellen wat ik zou kunnen doen om web-based GUI toegang tot DB2 mogelijk te maken.

Voer op de commandoregel uit:

php --ini

Je krijgt dan iets als:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

Dat's van mijn lokale dev-machine. De tweede regel is echter de interessante. Als er niets staat, kijk dan eens naar de eerste. Dat is het pad, waar PHP zoekt naar de php.ini.

Je kunt dezelfde informatie met phpinfo() in een script opzoeken en het met een browser oproepen. Het staat in het eerste blok van de uitvoer. php -i doet hetzelfde voor de commandoregel, maar is nogal ongemakkelijk.

Commentaren (10)
phpinfo();

zal je de locatie vertellen, of vanaf de commandoregel

php -i
Commentaren (0)

Je kan meer info krijgen over je configuratiebestanden met iets als:

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini
Commentaren (0)