Il y a quelques années, j'ai installé Apache 2.2x et PHP 5.3.1 sur un serveur Linux que je gère. J'ai utilisé .tar.gz et les ai construits comme indiqué (au lieu de rpms et what-have-you). Et tout allait bien.
Aujourd'hui, j'ai besoin d'installer this qui ressemble à une bibliothèque PHP. Je suis passé par toutes les étapes pour faire l'installation, et je trouve ibm_db2.so dans $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
La bonne chose à faire est que la dernière étape consiste à configurer php.ini mais il n’ya AUCUN php.ini sur mon système. Horreur des horreurs. PHP fonctionne bien, sauf bien sûr pour cette chose nouvelle ibm_db2 que je veux utiliser afin que quelqu'un puisse utiliser une interface graphique pour bricoler avec DB2
. (J'ai essayé un petit script php qui échoue et indique que les fonctions ibm_db2 ne sont pas disponibles).
Je dois traiter avec PHP une fois toutes les quelques années. Veuillez m'éclairer à un niveau très élémentaire sur ce que je pourrais faire pour permettre l'accès via une interface graphique Web à DB2
.
Le meilleur moyen de le savoir est de créer un fichier php et d’ajouter le code suivant:
<?php phpinfo(); ?>
et ouvrez-le dans le navigateur, il montrera le fichier qui est en train d'être lu!
Mises à jour par OP:
<?php echo php_ini_loaded_file(); ?>
mentionnée dans cette réponse .Sur la ligne de commande, exécutez:
php --ini
Vous obtiendrez quelque chose comme:
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
Cela vient de ma dev-machine locale. Cependant, la deuxième ligne est la plus intéressante. Si rien n'est mentionné, regardez le premier. C'est le chemin, où PHP cherche le php.ini
.
Vous pouvez grep la même information en utilisant phpinfo()
dans un script et l'appelez avec un navigateur. Son mentionné dans le premier bloc de la sortie. php -i
fait la même chose pour la ligne de commande, mais c'est assez inconfortable.
Cela fonctionne pour moi:
php -i | grep 'php.ini'
Vous devriez voir quelque chose comme:
Loaded Configuration File => /usr/local/lib/php.ini
p.s. Pour obtenir uniquement le chemin php.inin
php -i | grep /.+/php.ini -oE
Dans le type de fenêtre de commande
php --ini
Il va vous montrer le chemin quelque chose comme
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: /usr/local/lib/php.ini
Si la commande ci-dessus ne fonctionne pas, utilisez cette commande.
echo phpinfo();
Cette commande devrait vous aider à le trouver
php -r "phpinfo();" | grep php.ini
Utilisez les commandes suivantes pour trouver le chemin du fichier php.ini
sous Linux.
[root@AnyDirectory ~]# locate php.ini
/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production
ou essayez ceci d'une autre manière
[root@AnyDirectory ~]# php --ini
sa montre le résultat du chemin
phpinfo();
vous dira son emplacement, ou à partir de la ligne de commande
php -i
PHP est livré avec deux fonctions natives pour montrer quel fichier de configuration est chargé:
Selon votre configuration, Apache et CLI peuvent utiliser un ini différent des dossiers. Voici les deux solutions:
Ajoutez simplement ce qui suit dans un fichier php et ouvrez-le dans votre navigateur
print php_ini_loaded_file();
print_r(php_ini_scanned_files());
Copier-coller dans votre terminal:
php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
find / -name php.ini
Hé ... ça a marché pour moi!
Vous pouvez obtenir plus d'informations sur vos fichiers de configuration en utilisant quelque chose comme:
$ -> php -i | ack config # Use fgrep -i if you don't have ack
Configure Command => './configure' ...
Loaded Configuration File => /path/to/php.ini
Pour SAPI: php-fpm
Il n'est pas nécessaire de créer un fichier php.info (ce n'est pas une bonne politique de laisser le monde le lire de toute façon). Sur la ligne de commande:
php-fpm -i | more
Quelque part dans sa sortie, il affichera cette ligne:
Configuration File (php.ini) Path => /etc
Voici une explication plus complète: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/
Essayez l'une de ces solutions
Dans votre terminal, tapez find / -name "php.ini"
Dans votre terminal, tapez php -i | grep php.ini
. Il devrait afficher le chemin du fichier sous la forme Configuration File (php.ini) Path => /etc
<?php
dans une nouvelle ligne phpinfo();
Cela vous indiquera l'emplacement du fichier php.ini.php -a
dans le terminal et tapez phpinfo (); après php initié.