首页 > 解决方案 > 如何安全地更改 PHP session.save_path 权限以允许内置服务器工作

问题描述

我已经安装了并尝试使用 PHP 内置服务器运行./yii serve. 当我打开时http://localhost:8080,出现以下权限错误:

PHP 警告 – yii\base\ErrorException session_start(): open(/var/lib/php/sessions/sess_t1462ivbhhq79igqjp6b4fekth, O_RDWR) failed: Permission denied (13)

在它在 Apache 上运行的同一台机器上的其他应用程序上,我启动phpinfo()并发现路径/var/lib/php/sessions设置为session.save_path.

为了解决权限问题,我尝试运行sudo ./yii serve并且运行良好。

现在,我关心我的开发系统的安全性,有时我会将其暴露在 Internet 上,以便为我的客户访问当前开发的应用程序提供服务。我不知道我继续运行应用程序的天气,sudo还是有更好的方法来更改/var/lib/php/sessions权限以允许 cli 中的 phpphp -S访问它?

标签: phplinuxsessionyii2file-permissions

解决方案


我已执行以下操作以通过 PHP cli 将保存会话路径更改为另一个可访问的路径:

  1. 从终端php --ini获取配置文件列表,我的意思是加载配置文件条目以指定加载php.ini文件的路径。就我而言,它是/etc/php/7.2/cli/php.ini
  2. 使用任何可以作为 sudo 运行的文本编辑器,就我而言,我使用了kate,我打开了指定的php.ini文件并搜索:session.save_pathphp.ini 的条目并取消注释它,然后将路径更改为我家中的路径。就我而言,我将其设置为/home/myuser/tmp/sessions. 保存文件。

现在./yii serve可以正常工作,无需 sudo 也无需更改 Apache 的 php.ini 的任何设置。


推荐阅读