我在godaddy上有一个共享主机。
我尝试使用此行
更改php.ini文件中的会话保存路径sessions.save_path = "/session"
我用sessions.save_path()函数控制了会话保存路径。它会在更改/tmp
php.ini
是否可以在共享主机上更改会话保存路径? 我哪里错了?
答案 0 :(得分:31)
您可以通过创建自定义php.ini来修改共享主机上的会话保存路径。
将此信息包含在您的文件中:session.save_path = "/path/to/your/folder"
否则,您可以使用:
ini_set('session.save_path', '/path/to/your/folder')
您使用的文件夹应位于您的域/帐户下,但无法通过Web浏览器访问。它还需要具有世界可写权限。每个使用会话的页面都必须包含该行。
答案 1 :(得分:6)
它是session.save_path
而不是sessions.save_path
(它可能已经重命名或其他内容,我不知道,但sessions.save_path
对我不起作用)
session.save_path = "/path/to/your/folder"
工作正常
答案 2 :(得分:1)
请务必注意,session.save_path
必须在session_start()
之前被调用
答案 3 :(得分:0)
在C:\session.
将session.save_path();
目录更改为新创建的路径:C:\session
)tmp
文件夹中的任何位置。
答案 4 :(得分:0)
在此线程的帮助下,这是我如何使会话正常工作。我正在IIS中运行PHP。
在php.ini中设置会话文件夹。
import template from "./directive.lastJob.html";
import mockModuleForDirective from "../specHelpers/mockModuleForDirective.js";
import "angular-mocks"
describe("lastJobDirective", function() {
...
(我不确定此会话文件夹是否是我的环境的最佳实践。.从安全角度考虑。我需要对此进行更多阅读。)
设置会话路径还不够。最初,我将session_start()放在需要设置会话变量的函数中,但是即使在我的路径中创建了会话文件(sess_d9eeeb305928f2f39a25f296773b09eb),在将ajax发布到我的PHP页面时,$ _ SESSION值也会丢失。有人说要把session_start()作为第一行,所以我尝试了这一点,并且我的会话值正在工作。我还没有弄清楚在哪里销毁它。
session.save_path = "C:/inetpub/temp/php_session"
答案 5 :(得分:0)
检查其他文件,例如:php_value[session.save_path]
中的/etc/php-fpm.d/www.conf
和网络服务器用户应具有权限。.