我正在尝试在运行 Ubuntu 9.10 的 Joomla 1.5.17 Web 服务器上安装 CiviCRM。将软件包上传到目录tmp
并/var/www/[site name]/tmp
进行安装时会出现以下错误:
警告:fopen(/var/www/trbcp/administrator/components/com_civicrm/civicrm/templates/CRM/common/civicrm.settings.php.tpl)[function.fopen]:无法打开流:/var/www/trbcp/libraries/joomla/filesystem/file.php 第 240 行中的权限被拒绝
警告:fopen(/var/www/trbcp/administrator/components/com_civicrm/civicrm/templates/CRM/common/civicrm.settings.php.tpl)[function.fopen]:无法打开流:/var/www/trbcp/libraries/joomla/filesystem/file.php 第 240 行中的权限被拒绝
警告:include_once(/var/www/trbcp/administrator/components/com_civicrm/civicrm.settings.php)[function.include-once]:无法打开流:/var/www/trbcp/administrator/components/com_civicrm/configure.php 第 115 行的权限被拒绝
警告:include_once() [function.include]:无法在 /var/www/trbcp/administrator/components/com_civicrm/configure.php 第 115 行中打开‘/var/www/trbcp/administrator/components/com_civicrm/civicrm.settings.php’进行包含(include_path=‘.’)
警告:require_once(DB.php)[function.require-once]:无法打开流:/var/www/trbcp/administrator/components/com_civicrm/configure.php 第 140 行中没有该文件或目录
致命错误:require_once() [function.require]:无法在 /var/www/trbcp/administrator/components/com_civicrm/configure.php 第 140 行中打开所需的“DB.php”(include_path='.')
最初我收到权限被拒绝错误,并认为 Joomla 没有访问其所有目录的权限,但查看帮助->系统信息,所有必要的目录都是可写的。然后我决定访问chmod 777
所有目录并重试,但仍然失败。之后查看目录,似乎没有创建正在创建的新目录777
。通过更改它们,我至少可以在错误再次出现之前更进一步。我的问题是有人知道如何解决这个问题吗?我认为正在创建的新目录将需要sudo
权限才能mv
执行create
操作,因此会出现权限被拒绝错误。可以在 Joomla 中配置它吗?或者有没有办法指定在中创建的新目录/var/www/[site name] take 777 by default
?非常感谢您的帮助!
编辑:PS:如果有人能告诉我插入代码功能是如何工作的,那就太好了!可能会让这篇文章更具可读性!
EDIT2:好吧,我已经尝试过改变权限和所有权。
sudo chown -R www-data:www-data /var/www/trbcp
然后我尝试将整个 /var 目录(我知道不安全,但这是一个测试和开发服务器,让我可以适应)更改为 777,但仍然出现权限错误。似乎是打开流时出错?我不是 php 专家,所以不确定那是什么,但可能是运行 php 脚本的权限需要更改吗?非常感谢任何想法。
EDIT3:好吧,我还没有弄清楚,但我假设这与网站的移植有关,而不是环境。我测试安装了一个全新的空白网站,它运行正常。然后我继续手动重新创建文章等。不过还是谢谢你的帮助,因为它确实帮助我更多地了解了 Linux 上的权限等。
答案1
我没有使用过 Joomla,但我熟悉托管 Web 应用程序。您需要确保您的文件夹归 Web 服务器(Apache?)所运行的用户所有。在 Ubuntu 上,我认为这是www-data
默认设置。我的做法是授予所有者和组读/写权限,并让我的用户成为该组的成员,这样我就可以以自己的身份浏览和使用文件,Apache 也可以做它需要做的事情。
答案2
进入终端并输入
gksudo nautilus
然后转到系统驱动器(计算机)并右键单击并选择权限并将所有者更改为您的用户名并保存