Necesito habilitar pdo_mysql en mi entorno EasyPhp, así que fui al archivo php.ini y descomenté la siguiente línea:
extension=php_pdo_mysql.dll
Lamentablemente, todavía tengo el mismo problema. Estoy usando la CLI, así que supongo que necesito localizar el archivo php.ini utilizado por la CLI. ¿Cómo puedo encontrarlo?
Respuestas:
Simplemente ejecute
php --ini
y busqueLoaded Configuration File
en la salida la ubicaciónphp.ini
utilizada por su CLIfuente
sudo find / -iname php.ini
y encuentra/etc/php/7.0/apache2/php.ini
el lugar correcto del archivo de configuración php.ini correcto de mi máquina que no fue encontrado por (php --ini
ophp -i | grep php.ini
ambos encontrados/etc/php/7.0/cli/php.ini
)Puedes obtener una completa
phpinfo()
usando:Y, allí, está el
php.ini
archivo utilizado:En Windows, use
find
en su lugar:fuente
Configuration File
línea de phpinfo () muestra el último lugar donde php buscó un archivo ini. Ese puede ser el lugar donde encontró dicho archivo o la última opción que resulta ser% SYSTEMROOT% en Windows.php -i | find "Configuration file"
debería funcionar en Windows. Definitivamente no es tan poderoso como grep, perofind
hará una búsqueda básica de cadenas por ti. Por supuesto, si php -i volca su salida a stderr, probablemente sea SOL.find
es sensible a mayúsculas y minúsculas, por lo que debe ser perfecto (php -i | find "Configuration File"
) o no distingue entre mayúsculas y minúsculas (php -i | find /i "Configuration file"
- tenga en cuenta la/i
bandera).php --ini
como alternativa; disponible desde PHP 5.2.3 :)Puede usar get_cfg_var ('cfg_file_path') para eso:
A diferencia de phpinfo (), dirá si no encontró / usó un php.ini en absoluto.Y simplemente puede establecer la ubicación de php.ini . Está utilizando la versión de línea de comandos, por lo que utilizando el
-c
parámetro puede especificar la ubicación, p. Ej.fuente
Ejecútelo
php --ini
en su terminal, obtendrá todos los detalles sobre los archivos iniPara obtener más información, use el comando de ayuda
php --help
Se mostrarán todas las opciones posibles.fuente
A veces las cosas no siempre son lo que parecen cuando se trata de archivos de configuración en general. Así que aquí estoy aplicando mis métodos habituales para explorar qué archivos abre un proceso.
¡Utilizo un programa de línea de comandos muy poderoso y útil llamado strace para mostrarme lo que realmente sucede a mis espaldas!
Strace extrae las llamadas del kernel (sistema) que realiza su programa y descarga la salida en el archivo especificado por -o
Es fácil usar grep para buscar ocurrencias de php.ini en este registro. Es bastante obvio mirar la siguiente respuesta típica para ver qué está pasando.
fuente
php -i
me dio resultados incorrectos, pero este está perfectamente bien. ¡Gracias!Si desea cargar todos los archivos de configuración, esto le dirá:
Algunos sistemas cargan cosas de más de un archivo ini. En mi sistema ubuntu, se ve así:
fuente
En OSX Mavericks, ejecutando:
Devuelto:
En el
/etc/
directorio estaba:(así como
php-fpm.conf.default
)Yo era capaz de copiar
php.ini.default
aphp.ini
, agregardate.timezone = "US/Central"
a la parte superior (derecha abajo[php]
), y el problema está resuelto.(Al menos el mensaje de error se ha ido).
fuente
Si necesita pasarlo a otra aplicación, puede hacer algo como:
solo devuelve el camino.
php -c $(php --ini | grep Loaded | cut -d" " -f12)
pasará el archivo de configuración (útil parafpm
)fuente
Por lo que recuerdo cuando solía usar EasyPHP, el archivo php.ini está en
C:\Windows\
oC:\Windows\System32
fuente
Hacer
Esto generará todos los archivos nombrados
php.ini
.Averigua cuál usas, generalmente
apache2/php.ini
fuente
En su archivo php.ini configure su directorio de extensiones, por ejemplo:
Verá en su carpeta PHP que hay una carpeta ext con todos los dll y extensiones.
fuente
Guarde la salida phpinfo de la CLI en el archivo local:
fuente
En el contenedor docker phpmyadmin / phpmyadmin no hay archivo php.ini. Pero hay dos archivos: php.ini-debug y php.ini-production
Para resolver el problema, simplemente cambie el nombre de uno de los archivos a php.ini y reinicie el contenedor docker.
fuente
No hay php.ini utilizado por la línea de comando. Tienes que copiar el archivo de
...EasyPHP-<<version>>\apache\php.ini
a...EasyPHP-<<version>>\php\php.ini
que editar el que está en el directorio phpReferencia:
fuente