在 vagrant homestead 上配置 php.ini

Posted

技术标签:

【中文标题】在 vagrant homestead 上配置 php.ini【英文标题】:configure the php.ini on vagrant homestead 【发布时间】:2015-04-01 06:31:01 【问题描述】:

我想在 php.ini 中允许 short_open_tags

我想访问配置了 homestead 的 vagrant box 上的 php.ini。 我在 /etc/php5/fpm/php.ini 中看到了 php.ini 文件

但是...权限被拒绝 有人知道吗?

谢谢

【问题讨论】:

MartinJH 回答你的问题了吗? 【参考方案1】:

以下是授予对 php.ini 的读/写访问权限、修改它、保存更改并重新加载 nginx 的方法:

1. 导航到包含 php.ini 的文件夹:$ cd /etc/php5/fpm

2. 授予读/写访问权限:$ sudo chmod -R ugo+rw php.ini

3.打开php.ini:$ vim php.ini

4.进入编辑模式:$ i

5. 编辑内容

6.退出编辑模式:按ESC

7. 保存并关闭 php.ini:$ :x!

7.1 可选:退出而不保存:$ :q

8. 导航到首页(不确定这是否真的有必要):$ cd ~

9.重新加载/重启nginx:$ sudo nginx -s reload

10.1重新加载/重启php:$ sudo service php5-fpm restart

10.2 如果使用 PHP 7,则使用 $ sudo service php7.0-fpm restart(感谢 cmets 中的 Richard)。

11. ???

12. 利润! (或者这个笑话真的太老了吗?)

这是截图:

请记住,如果您运行 $ vagrant provision,它将重置所有配置文件。让你知道。

编辑

知道超级有用。 You can search in vim 退出输入模式,然后输入 $ /post_max_size 或任何您想查找的内容。

【讨论】:

在 php.ini 中最后一个值优先,所以单行应该是:sudo su;回声“short_open_tag = On”>>/etc/php5/fpm/php.ini;服务重启 php5-fpm;退出; 如果使用 PHP 7 则使用 sudo service php7.0-fpm restart 诀窍是sudo service php7.0-fpm restart,我正在编辑正确的文件,但我正在重新启动 nginx 而不是 php fpm sudo service php7.1-fpm restart for php7.1,希望模式现在很清楚 运行 readlink -f "$(which php)"php -v 以确定您使用的 php 版本。看起来目录结构也发生了一些变化:现在,您需要 cd /etc/php/x.x/fpm 其中 x.x 是您的 php 版本。【参考方案2】:

只需在 public/ 中创建“.user.ini”文件 (.user.ini files)

[PHP]
short_open_tag = On

【讨论】:

我忘记了 [PHP] 并且不知道它是有义务的。 谢谢,简单的回答! 简单直接的解决方案。也很好,因为不依赖于特定的 php 版本并且不需要更改配置。该文件可以通过任何方式创建,并且在 vagrant 中有效。不错!【参考方案3】:

只需 ssh 进入宅基地环境:

ssh homestead

然后输入以下内容成为超级用户:

sudo su

然后你就可以编辑你的 php.ini。

【讨论】:

【参考方案4】:

我已经尝试更改提到的 php.ini 一个多小时了。 我建议首先检查真正加载了哪个php.ini。 我已经用php -i检查过了。

就我而言,它位于/etc/php/7.2/cli

【讨论】:

php -i | grep php.ini 添加 grep 命令可以更清楚地显示路径。不必在信息转储中找到它。【参考方案5】:

也许你应该使用 htaccess 来解决这个问题

如果没有,请制作文件 .htaccess(在根目录中带有点)并记下

<IfModule mod_php5.c>
   php_value short_open_tag 1
 </IfModule>

良好的托管服务提供商不提供进入 php.ini

【讨论】:

不起作用。我已将其添加到我的 laravel projevt 文件夹中的现有 htaccess 中! 您确定您的服务器在 Linux 上运行吗? htaccess 在 Windows 服务器上不起作用 1. Vagrant homestead 使用 nginx,.htaccess 文件是为了在部署您的应用程序时与 apache 交叉兼容 2。正如所有其他答案所暗示的那样,更改 php.ini 是一个坏主意,因为搞砸更改所需的只是一个homestead destroy 3. 更可行的解决方案是在运行时有条件地设置它if (app()-&gt;environment() === "local) ... ,并在生产服务器上正确设置 php.ini【参考方案6】:

我遇到了同样的问题,我通过在 root 用户模式下打开 php.ini 文件解决了这个问题,否则您将无权编辑文件...... p>

【讨论】:

以上是关于在 vagrant homestead 上配置 php.ini的主要内容,如果未能解决你的问题,请参考以下文章

解决vagrant上使用Homestead很慢(响应速度10s+)

安装Vagrant出错 安装Homestead出错失败

在 Homestead 中运行 Vagrant 的问题

laravel-homestead安装配置

无法安装 Vagrant box Laravel Homestead

在 PhpStorm 中为 Laravel Homestead vagrant VM 运行测试