2

我正在尝试在我的服务器上设置一个 joomla 3 实例,我已经将 nginx 与 owncloud 以及博客平台 ghost 一起使用。

我的第一次尝试实际上非常成功,只是在最后一个安装步骤(创建配置文件)中失败了。我虽然这是由于错误的权限,无法创建文件。我写了一个简短的测试脚本来验证 php5-fpm 是否在文件夹中具有写权限,并且它有效。

经过几次失败的重试并且没有日志文件后,我决定删除该目录并再次下载 Joomla。从那以后,没有任何效果。每次我解压缩 zip(新下载的或相同的)后,我都会遇到以下任意错误情况:

  • 我被重定向到installation/installation/index.php而不是installation/index.php
  • 我有关于丢失 php 文件的错误
  • 我有关于缺少 php 类的错误:
    • JApplicationBase
    • JApplicationWebClient
    • 一些视图类
    • ...

每次解压缩并重新下载后,即使我没有更改 nginx 或 php5-fpm 配置上的任何内容,错误也会发生变化。

下载并解压文件后,我使用以下命令正确设置 Joomla 目录:

  • sudo chown -R joomla_user .
    • 可选,仅当我与其他用户一起下载并解压缩 zip 时 - 你看我真的尝试了所有可能的组合
  • sudo chgrp -R www-data .
    • nginx 作为 www-data 运行,但 joomla_user 不在 www-data 组中。
    • 文件和文件夹仅对 nginx 可读,但不可写。我认为这不是问题,因为无论如何写入都是由 php 完成的
  • sudo chmod -R g+s .
    • 确保所有未来上传的文件都可以被 nginx 读取

我在站点可用(和站点启用)中的 nginx 配置如下所示:

server {
    listen 80;
    server_name joomla.server_url;

    root /home/joomla_user/www/joomla3;
    index index.php index.html index.htm default.html default.htm;
    # Support Clean (aka Search Engine Friendly) URLs
    location / {
            try_files $uri $uri/ /index.php?$args;
    }

    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
            return 403;
            error_page 403 /403_error.html;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm-joomla_user.sock; 
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # caching of files 
    location ~* \.(ico|pdf|flv)$ {
            expires 1y;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
            expires 14d;
    }

}

php5-fpm pool-config 基本上是默认配置的复制粘贴,并更改了套接字名称和名称。

再次总结一下 - php5 执行工作,权限还允许创建和写入文件(至少在我检查的那些目录中),但是在安装一开始没有完成之后,现在我每次都收到非常随机的错误消息解压缩 joomla3 zip 文件,即使我从他们的网站(http://www.joomla.org/download.html )下载 id fresh(并通过 wget 直接下载到服务器)。

有没有人有在 nginx 上使用 Joomla 的经验?知道如何摆脱这些错误并使其运行吗?

更新:

我的 PHP 版本是 5.4.4:

PHP 5.4.4-14+deb7u8 (cli) (built: Feb 17 2014 09:18:47) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

同样昨天我正在和一个 Joomla 开发人员讨论这个问题,他们提出了目录权限问题,但是即使在chmod -R u+rw .Joomla 目录中执行之后,ist 仍然存在。

4

1 回答 1

1

我没有设法摆脱错误,但得到了使用tuxlite-script的建议。运行./domain.sh add joomla JOOMLA_SERVER_URL创建了一个包含所有必要目录的新配置。nginx-config 还添加了一个 SSL 部分,在我的案例中引用了错误的证书文件。修复该问题后,Joomla 再次启动并运行。

我仍然遇到第一个问题 - Joomla 没有完成安装。这是由于太短fastcgi_read_timeout(默认 60 秒)。将其更改为几分钟使其工作。

我更改的最后一个配置是在 joomla 的 nginx 配置中:

location / {
        try_files $uri $uri/ /index.php?$args;
}

改为

location / {
        try_files $uri $uri/ /index.php?q=$request_uri;
}

正如nginx 的 Joomla 文档中所述。

于 2014-03-14T21:51:28.493 回答