0

在升级到 Joomla 2.5 以便我可以使用最新版本的 Virtuemart 后,系统电子邮件不再起作用。

我已经根据 php.ini 文件中的条目检查了 Sendmail 路径。(/usr/sbin/sendmail)。

如果我尝试 Joomla 的 Sendmail 选项,我会得到Could not execute: /usr/sbin/sendmail.

如果我尝试 PHP Mail,我会得到Could not instantiate mail function.

另外,我不能再上传模板:

JFolder::create: Could not create directory
Warning: Failed to move file!

我知道我可以 777 所有相关文件夹以使其正常工作,但这是不可接受的。此外,这当然无助于邮件问题。

文件权限与以前相同。我的虚拟主机需要更改哪些内容才能让 Joomla 执行我升级之前所做的事情?

谢谢,

安迪

[编辑] 我复制了站点,导出了 SQL 并迁移到不同的服务器进行测试。一切正常,所以我可以确认问题不在于我的 Joomla 安装,而在于服务器环境。

4

5 回答 5

3

Joomla 2.5.8 也有同样的问题。我刚刚更改了 Global Cnf-Server-Mail 设置。SendMail 更改为 PHP Mail 并没有问题了..

于 2012-11-14T08:14:19.527 回答
1

首先,不要对777设置任何权限,这是必要的,而且存在安全风险。你确定你的权限是正确的吗?进入管理员,然后站点 > 系统信息 > 目录权限并确保所有内容都是可写的。文件夹应该是 755,文件应该是 644。

如果您之前启用了 FTP 模式,您可能想要查看那里。但是,与其使用 FTP 模式,不如使用以 CGI 模式运行 PHP 的主机。它不仅更安全,而且通常可以解决大多数权限问题。

于 2012-08-29T15:49:50.680 回答
1

网络主机已经解决了这个问题。我在这里引用他们的解决方案:

“在服务器全局 php.ini 文件中,出于安全原因,我们禁用了一些功能,因此要覆盖它,您只需在文档根文件夹(public_html 文件夹下)下创建自定义 php.ini 文件并更新/更改/启用值为了让您的网站正常运行。

请注意,这样做是为了安全,以避免任何外部黑客/恶意软件等。

您只需将 php.ini(上传到 public_html 文件夹)复制/粘贴到您正在运行应用程序的其他域帐户的目录位置。

即使关闭本地 php.ini 中的值,脚本/应用程序也会正常工作,因为它会覆盖全局 php.ini 文件中的值。请注意,由于服务器上启用了 suPHP,因此用户可以选择创建自己的自定义 php.ini 文件并覆盖全局设置的实际值。

我已经上传了 public_html 文件夹下的自定义 php.ini 文件,然后 sendmail 开始工作了。”

于 2012-08-30T14:22:23.470 回答
0

您的托管解决方案是否与 Joomla 要求兼容:mysql 和 php 版本?

如果是:
- 使用您的 ftp 客户端检查 Joomla 文件夹所有者
- 安装从 2.5 到 2.5.x 的手动升级补丁(可能某些文件在更新过程中损坏)
- 在所需文件夹上尝试 chmod 777

于 2012-08-29T14:10:11.287 回答
0

请检查全局配置中的邮件设置..

Joomla管理员->站点->全局配置->服务器->邮件设置

  • 将 mailer 选项更改为 sendmail,然后检查
  • 在升级过程中,有时补丁文件可能会损坏或丢失。可能这也导致了这个问题。
  • JFolder::create:由于文件夹权限,无法创建发生此警告的目录。检查您的文件夹权限。
于 2012-08-29T15:38:34.010 回答