过去一周左右我一直有这个问题。 我一直在研究一个在Sessions中依赖HEAVILY的PHP项目。 由于某种原因,我们一直在节省这几天的麻烦。 任何想法为什么?
这是错误:
Warning: UnkNown: open(/tmp/sess_mmd0ru5pl2h2h9bummcu1uu620,O_RDWR) Failed: Permission denied (13) in UnkNown on line 0 Warning: UnkNown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in UnkNown on line 0 Warning: session_start(): open(/tmp/sess_mmd0ru5pl2h2h9bummcu1uu620,O_RDWR) Failed: Permission denied (13)
Nginx版本:
在xampp上使用PHP session_start
(Nginx / selinux)权限拒绝会话错误,但创build文件
为什么我的Web应用程序(WAMP)慢,如果我请求一个浏览器/会话多次?
;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; ; All relative paths in this configuration file are relative to PHP's install ; prefix. ; Include one or more files. If glob(3) exists,it is used to include a bunch of ; files from a glob(3) pattern. This directive can be used everywhere in the ; file. include=/etc/PHP-fpm.d/*.conf ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; [global] ; Pid file ; Default Value: none pid = /var/run/PHP-fpm/PHP-fpm.pid ; Error log file ; Default Value: /var/log/PHP-fpm.log error_log = /var/log/PHP-fpm/error.log ; Log level ; Possible Values: alert,error,warning,notice,debug ; Default Value: notice ;log_level = notice ; If this number of child processes exit with SIGSEGV or SIGBUS within the time ; interval set by emergency_restart_interval then FPM will restart. A value ; of '0' means 'Off'. ; Default Value: 0 ;emergency_restart_threshold = 0 ; Interval of time used by emergency_restart_interval to determine when ; a graceful restart will be initiated. This can be useful to work around ; accidental corruptions in an accelerator's shared memory. ; Available Units: s(econds),m(inutes),h(ours),or d(ays) ; Default Unit: seconds ; Default Value: 0 ;emergency_restart_interval = 0 ; Time limit for child processes to wait for a reaction on signals from master. ; Available units: s(econds),or d(ays) ; Default Unit: seconds ; Default Value: 0 ;process_control_timeout = 0 ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging. ; Default Value: yes ;daemonize = yes ;;;;;;;;;;;;;;;;;;;; ; Pool DeFinitions ; ;;;;;;;;;;;;;;;;;;;; ; See /etc/PHP-fpm.d/*.conf
Nginx.conf:
####################################################################### # # This is the main Nginx configuration file. # # More information about the configuration options is available on # * the English wiki - http://wiki.Nginx.org/Main # * the Russian documentation - http://sysoev.ru/Nginx/ # ####################################################################### #---------------------------------------------------------------------- # Main Module - directives that cover basic functionality # # http://wiki.Nginx.org/NginxHttpMainModule # #---------------------------------------------------------------------- user Nginx Nginx; worker_processes 5; error_log /var/log/Nginx/error.log; #error_log /var/log/Nginx/error.log notice; #error_log /var/log/Nginx/error.log info; pid /var/run/Nginx.pid; #---------------------------------------------------------------------- # Events Module # # http://wiki.Nginx.org/NginxHttpEventsModule # #---------------------------------------------------------------------- events { worker_connections 4096; } #---------------------------------------------------------------------- # HTTP Core Module # # http://wiki.Nginx.org/NginxHttpCoreModule # #---------------------------------------------------------------------- http { include /etc/Nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/Nginx/access.log main; index index.PHP index.html index.htm; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; # Load config files from the /etc/Nginx/conf.d directory # The default server is in conf.d/default.conf include /etc/Nginx/conf.d/*.conf; server { listen 80; server_name stats.smilingdevil.com; error_page 404 /404.PHP; root /var/www; access_log /var/log/Nginx/access.log; error_log /var/log/Nginx/error.log; location / { set $page_to_view "/index.PHP"; try_files $uri $uri/ @rewrites; root /var/www/; index index.PHP; } location @rewrites { if ($uri ~* ^/([a-z0-9]+)$) { set $page_to_view "/$1.PHP"; rewrite ^/([az]+)$ /$1.PHP last; } } location ~ .PHP$ { include /etc/Nginx/fastcgi.conf; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; } } }
Apache ProxyPass和会话
我的网站主机正在添加?PHPSESSID = fgh2h45 …到URL的末尾
会话variablesNginx / ruby / thin server setup的模糊行为
PHP会话导致Apache无限期挂起
如何使用户会话继续24小时?
这个错误是由于运行PHP程序的用户可能没有写入/ tmp目录的权限
使所有用户都可以使用这个表扬
chmod 777 /tmp
如果/ dev / sda1挂载在/ tmp上并且由于繁重的写入,您的文件系统可能会变为只读。
再次使用这个命令重写
mount -t ext3 -o rw,remount /dev/sda1 /tmp
我发现我的PHP.ini试图将会话保存到/ var / lib / PHP / session而不是/ tmp
所以检查你的ini文件,看看它们被保存到什么地方(或者把它放到别的地方)。 然后确保该目录可由适当的进程写入
克里斯Rutledge是正确的,PHP有时是保存在/ var / lib / PHP / session /目录检查您的PHP.ini文件或创建777权限的目录
mkdir /var/lib/PHP/session chmod -R 777 /var/lib/PHP/session
只要将/ var / lib / PHP / session /的所有权从apache更改为Nginx,而不是给世界读取。
$ sudo chown -R Nginx:Nginx / var / lib / PHP / session /
似乎我在Linux上发现了一些有趣的东西。 在一些PHP软件尝试读取/写入会话时,在chroot php-cgi中发生同样的错误。 我以为这可能是权限问题,但设置777后,将网络服务器的所有者设置为“/ tmp”并设置它在几个小时后,发现“/ dev”中的“urandom”设备需要工作。 只要确保它找到或复制/制作并临时更改权限(仅用于检查,然后再安全地更改):
chmod 777 /dev/urandom
奇怪的是,在某些PHP5.x版本中不需要,但在某些PHP7.x中需要在那里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。