您的位置:首页 > 编程语言 > PHP开发

关于windows在php.ini加载的问题

2018-05-28 14:02 316 查看
在使用php-cli的时候会时不时的提示有些插件不存在,我疑惑横生啊,对此,我尝试看到php.ini文件中有些关于ini配置的地方。



但是也看到了各种位置和被说不存在的插件的身影~当时由于没遇到一定要使用的场景,只有换掉在MAC操作的时候养成的习惯。(开始以为是命令的打开方式有问题。。。。)后面再想去使用composer的时候,这个问题有横亘在哪里。。。



对。及时这样一个让人欢喜让人愁的页面~

很遗憾,只有用了一个简单粗暴的方式先解决下~虽然麻烦但是管用~先记录下来在之后遇到解决燃眉之急也是可以试试~PS:这里不是支持遇见困难绕过去的思想,而是要酌情安排优先级。

回到这里,对于这个配置网上众说纷纭,

首先关于这个configuration file Path .有的说不用管它,我们的PHP加载的ini路径是看下面的。。。额显然太简单粗暴了。配置在这里的各项一定是有他的左右的。只是说我们一般的操作涉及不到罢了。当然我也就忽视了好多年。只是知道是在ini没有的时候回去哪个路径之类的~于是就从这里下手!(我一般写博客是记录自己的坑洼坎坷。让自己更好地记得自己走过什么弯路什么对的选择,可能有些地方有些多余.看客可以注意高亮部分~

于是我就再来重温下标准的PHP手册之配置部分:
http://php.net/manual/zh/configuration.file.php
配置文件(php.ini)在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一次。对于 CGI 和 CLI 版本,每次调用都会读取。

php.ini 的搜索路径如下(按顺序):

(1)SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量)。
(2)PHPRC 环境变量。在 PHP 5.2.0 之前,其顺序在以下提及的注册表键值之后。
(3)自 PHP 5.2.0 起,可以为不同版本的 PHP 指定不同的 php.ini 文件位置。将以下面的顺序检查注册表目录:[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z],[HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] 和 [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x],其中的 x,y 和 z 指的是 PHP 主版本号,次版本号和发行批次。如果在其中任何目录下的 IniFilePath 有键值,则第一个值将被用作 php.ini 的位置(仅适用于 windows)。
(4)[HKEY_LOCAL_MACHINE\SOFTWARE\PHP] 内 IniFilePath 的值(Windows 注册表位置)。
(5)当前工作目录(对于 CLI)。
(6)web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况)。
(7)Windows 目录(C:\windows 或 C:\winnt),或 --with-config-file-path 编译时选项指定的位置。

如果存在 php-SAPI.ini(SAPI 是当前所用的 SAPI 名称,因此实际文件名为 php-cli.ini 或 php-apache.ini 等),则会用它替代 php.ini。SAPI 的名称可以用 php_sapi_name() 来测定。

好这里提出了接下来思考的两个方向:
(1)web和cli在读取的时候出现了偏差读到的配置会是不一样的文件

(2)cli需要特使设置,这里默认的特殊设置有问题

好,这里就按照这个手册提到的一句,关于cli的-c的问题:查明使用后。确实能指定ini

php cli -c 的用法:
php -c "***\***" "path\composer.phar" ***

对于有多个版本的PHP可以指定PHP;

-c 是phpcli命令。可以设置所配置的PHP.ini

第三个参数是指定ini的位置,这里官方描述可以不是一个ini文件

第四个和第五个是我要执行的部分。这里是利用composer更新或者管理版本可以进行更新等

于是就实现了做简单粗暴的对cli配置的设置

例如:

>C:\MAMP\bin\php\php7.0.21\php -c "C:\MAMP\conf\php7.0.21\php.ini" "C:\MAMP\bin\php\composer.phar" update



OK~时间问题这次就先写到这里~下次继续整理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: