Php 托管公司在服务器上禁用会话是否正常?

Php 托管公司在服务器上禁用会话是否正常?,php,session,hosting,Php,Session,Hosting,我刚刚转到共享主机上的linux服务器上,看看它是否比godaddy上的windows服务器更垃圾(我已经蠢到提前12个月付钱给他们了,所以我现在只能和那些白痴呆在一起了)。我现在再也不能使用任何类型的会话了 他们已经回复我说,这是由我来解决的问题,让它的工作。。。是的,没错。。。让会话正常工作!如果我看起来有点生气,请原谅,但我很生气 有人能告诉我怎样才能让会话在Apache服务器上工作吗?我以前从未设置过这个,因为它从来都不是问题。一旦我这样做了: <?php session_

我刚刚转到共享主机上的linux服务器上,看看它是否比godaddy上的windows服务器更垃圾(我已经蠢到提前12个月付钱给他们了,所以我现在只能和那些白痴呆在一起了)。我现在再也不能使用任何类型的会话了

他们已经回复我说,这是由我来解决的问题,让它的工作。。。是的,没错。。。让会话正常工作!如果我看起来有点生气,请原谅,但我很生气

有人能告诉我怎样才能让会话在Apache服务器上工作吗?我以前从未设置过这个,因为它从来都不是问题。一旦我这样做了:

    <?php session_start() ?>
我已经尝试创建一个php.ini文件,但仍然无法使其正常工作。我已经用phpinfo()检查了设置,我真的不知道从这里开始该怎么做

编辑:页面下面出现了一些类似的问题。由于某种原因,我在搜索时没有找到这些。其中一家甚至关闭了:


那个人说他们已经和戈达迪解决了问题,所以我想我必须回去告诉他们解决问题。这并不是说我不想学习如何配置服务器。。。只是会话应该正常工作。

PHP正试图将会话保存在
/var/chroot/home/content/30/10247530/tmp/
中,它无法打开该目录(因为它不存在或没有写入权限)。调查PHP对该路径的访问,我相信您会让会话正常工作-也许您在将代码迁移到新服务器时忽略了一个配置变量?

确保没有声明其他
,并尝试设置您自己的会话临时路径

<?php
  if (!is_dir(session_save_path())) {
      session_save_path ('your/custom/existing/directory');
   }
 session_start();
 ?>


我没有迁移它,他们迁移了。我应该让他们用默认设置设置一个全新的服务器吗?我没有在服务器上设置配置-我只是服务的用户,我只是在做标准的事情。你可以使用PHP在某个地方做一个
mkdir()
,然后在会话中使用它,如果您可以修改您的PHP配置。我会要求他们确保目录:
/var/chroot/home/content/30/10247530/tmp/
存在,并且可由PHP编写-您不需要采取与新服务器一样激烈的措施来解决此问题。此外,如果您可以访问PHP代码,只需使用
会话保存路径()
()将会话保存路径设置为可由服务器写入的路径。实际上,我亲自在服务器上创建了一个tmp文件,以查看它是否可以更正它。我甚至将tmp文件设置为777(我知道这完全是多余的),但它仍然会出现完全相同的错误。您使用的主机是什么?它只是一个标准的php页面。这实际上只是一个带有的php文件,这些都是它出现的错误。我刚刚不得不完全删除那里的整个网站,因为整个网站对公众开放,因为它绕过了会话检查!基本上只有一页包含session_start()。好的-这已经解决了这个问题,非常感谢。不过,我真的认为没有必要这样做。不必设置它,因为默认情况下它应该工作。当我第一次尝试你的代码时,我把它放在了完整的路径中,但现在我看到了其他人的帖子,并且想到了只使用相对地址。相对地址工作正常,代码工作正常。不幸的是,我刚刚从托管帐户中删除了我的一个域,以便与另一家公司托管。看来我得把它放回去了!我会将此标记为已回答,因为这是一个解决问题的方法,但我真的认为,对于标准托管帐户来说,这应该是不必要的。我认为这应该是PHP的默认设置。几乎所有在任何程度上使用PHP的人都将使用会话。。。
<?php
  if (!is_dir(session_save_path())) {
      session_save_path ('your/custom/existing/directory');
   }
 session_start();
 ?>