我有一个使用PHP会话的网站。
PHP可以编写一次会话文件。但是当我浏览其他页面时,它会出现此错误:警告:session_start():open(/ var / www / clients / client0 / web1 / tmp / sess_iif14obm0s1be3ie5ua9v433d6,O_RDWR)失败:/ var / www中的权限被拒绝(13)第11行的/clients/client0/web1/web/myfile.php
经过一番调查后,我发现有些页面会创建一个会话文件,用户:组设为www-data:www-data,而主页使用web1创建:client0(ISP配置用户/组方案)。
使用此回答中的代码How can I fix the Permission error when I call session_start()?
$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];
exit;
>> output: web1 for homepage www.mydomain.com/
>> output: www-data for other pages www.mydomain.com/anything.html
所有页面都被重定向到index.php。因此,当没有重定向时,php执行用户web1(主页),当有重定向时,php执行用户www-data。
以下是.htaccess
中重定向的代码RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*) http://www.domain.com/$1 [QSA,L,R=301]
<FilesMatch "^fr$">
ForceType application/x-httpd-php
</FilesMatch>
网址为http://www.domain.com/fr/something.html
我怎么能纠正这个?
答案 0 :(得分:0)
您必须为 domain.com (和/或 www.domain.com )定义了一个抢占重定向的虚拟主机。在虚拟主机定义中,用户设置为 web1 。
在你的vhost配置中可能有类似的东西
{{1}}
也许铃声响起; - )
答案 1 :(得分:0)
主页使用的是CGI / FastCGI,其他页面使用的是Apache 2.0 Handler(我认为是mod_php)。
我去了ISPConfig并将PHP模式更改为mod_php,因此所有页面都由同一个处理程序处理。