如何更改php ini Windows的路径


12

我已经下载了php,将其添加到我的路径中,并且我试图启用openssl

php --ini告诉我配置文件是c:\ windows,那里什么都没有,我不想将php复制到c / windows。

如何更改它以指向我的php文件夹?

Answers:


10

您无需在c:\windows文件夹附近的任何地方都与PHP有关。

如果这样做,只会在将PHP升级到新版本时使您陷入困境。

如果将CD CD到安装PHP的文件夹中并执行安装,php --ini它将从您所在的文件夹中读取php.ini文件。

D:\wamp\bin\php\php5.5.12>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         D:\wamp\bin\php\php5.5.12\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

我认为将PHP安装文件夹也放在Windows PATH中也是一个坏主意。

您只需要一个小的批处理文件,即可在使用的命令窗口期间设置PATH,并将其放在Windows PATH中已经存在的一个文件夹中。

因此,假设您将PHP安装到了C:\php该批处理文件中

phppath.cmd

PATH=%PATH%;C:\php
php --ini
php -v

然后,只要在打开命令窗口并想运行一些PHP代码并配置好环境后,就可以运行此批处理文件。当您需要将其他内容(例如Composer等)添加到您的环境中时,也可以将其他内容添加到此批处理文件中。


是! 这对我有用。PHP.ini与PHP.exe在同一文件夹中更好,因此Web和CLI PHP可以引用同一PHP.ini。
朱Chu

@ScottChu并非如此,它们是2个不同的环境,在现实生活中,您经常希望两者都使用不同的配置。
RiggsFolly

4

根据文档:

PHP启动时将读取配置文件(php.ini)。对于PHP的服务器模块版本,仅在启动Web服务器时才发生一次。对于CGI和CLI版本,它会在每次调用时发生。

在以下位置搜索php.ini(按顺序):

  • SAPI模块的特定位置(Apache 2中的PHPIniDir指令,CGI和CLI中的-c命令行选项,NSAPI中的php_ini参数,THTTPD中的PHP_INI_PATH环境变量)
  • PHPRC环境变量。在PHP 5.2.0之前,在下面提到的注册表项之后对此进行了检查。
  • 从PHP 5.2.0开始,可以为不同版本的PHP设置php.ini文件的位置。依次检查以下注册表项:[HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz],[HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy]和[HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ x],其中x,y和z表示PHP专业语言,次要版本和发行版本。如果这些键中的任何一个都有IniFilePath的值,则找到的第一个键将用作php.ini的位置(仅Windows)。
  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP],IniFilePath的值(仅Windows)。
  • 当前工作目录(CLI除外)。
  • Web服务器的目录(用于SAPI模块),或PHP的目录(在Windows中,否则)。
  • Windows目录(C:\ windows或C:\ winnt)(对于Windows),或--with-config-file-path编译时间选项。

您应该尝试使用PHPRC环境变量或注册表项[HKEY_LOCAL_MACHINE\SOFTWARE\PHP]


0

我尝试一切都没有成功。更改了Apache httpd.conf,php.ini和其他几次尝试,总是导致Loaded Configuration File-(无)。最后,我将所有文件从php目录复制到目录C:\ Program Files(x86)\ Apache Software Foundation \ Apache2.2 \ bin,一切开始工作。完美。不幸的是,这不是完美的解决方案,但它确实有效。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.