1

Topic: Nextcloud on an iRedMail server

==== REQUIRED BASIC INFO OF YOUR IREDMAIL SERVER ====
- iRedMail version (check /etc/iredmail-release):
- Deployed with iRedMail Easy or the downloadable installer?
- Linux/BSD distribution name and version:
- Store mail accounts in which backend (LDAP/MySQL/PGSQL):
- Web server (Apache or Nginx):
- Manage mail accounts with iRedAdmin-Pro?
- [IMPORTANT] Related original log or error message is required if you're experiencing an issue.
====
I have an iRedMail server that I'm trying to install Nextcloud on.  I have an instance of Owncloud in a subdirectory and it works fine.  I've tried without success to install Nextcloud.  It gives me a php-fpm error shown here.

1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.36, server: _, request: "GET /nextcloud/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.socket:", host: "www.example.com"

CentOS 7
PHP 7.4
Nginx web server as delivered with iRedMail

I'm hoping some of the iRedMail gurus can help me troubleshoot this.

Let me know if more info is needed.

Thanks in advance.

----

Spider Email Archiver: On-Premises, lightweight email archiving software developed by iRedMail team. Supports Amazon S3 compatible storage and custom branding.

2

Re: Nextcloud on an iRedMail server

Here is my config file:  This is for my owncloud instance, both are identical and neither is working.  The sockets are present and netstat -a reveals they are listening.  Any help?

        rewrite ^/owncloud$ /owncloud/ redirect;

    location /owncloud/ {
        root /var/www/html/owncloud/;

        # Add headers to serve security related headers
        # Before enabling Strict-Transport-Security headers please read into this topic first.
        # add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";

        # set max upload size
        client_max_body_size 10G;
        fastcgi_buffers 64 4K;

        # Disable gzip to avoid the removal of the ETag header
        gzip off;

        # Uncomment if your server is build with the ngx_pagespeed module
        # This module is currently not supported.
        #pagespeed off;

        index index.php;

        error_page 403 /owncloud/core/templates/403.php;
        error_page 404 /owncloud/core/templates/404.php;

        location ~ ^/owncloud/apps-appstore/(.*)$ {
            alias /var/lib/owncloud/apps/$1;
        }

        location ~ ^/owncloud/assets/(.*)$ {
            alias /var/lib/owncloud/assets/$1;
        }

        location ~ ^/owncloud/(build|tests|config|lib|3rdparty|templates|data)/ {
            deny all;
        }

        location ~ ^/owncloud/(?:\.|autotest|occ|issue|indie|db_|console) {
            deny all;
        }

        rewrite ^/owncloud/remote/(.*) /owncloud/remote.php last;
        rewrite ^/owncloud/core/doc/([^\/]+)(?:$|/) /owncloud/core/doc/$1/index.html;

        # try_files $uri $uri/ =404;
        try_files $uri $uri/ /owncloud/index.php;

        location ~ \.php(?:$|/) {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param HTTPS on;
            fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
            fastcgi_pass unix:/var/run/php-fpm/owncloud.socket;
            fastcgi_intercept_errors on;
        }

        # Adding the cache control header for js and css files
        # Make sure it is BELOW the location ~ \.php(?:$|/) { block
        location ~* \.(?:css|js)$ {
            add_header Cache-Control "public, max-age=7200";
            # Optional: Don't log access to assets
            access_log off;
        }

        # Optional: Don't log access to other assets
        location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
            access_log off;
        }

        }

3

Re: Nextcloud on an iRedMail server

In an effort to help others that may face the same problem.  The issue was the 4 line in the nginx config file.

root /var/www/html/owncloud/;

need to be this:

root /var/www/html/;

Everything now works as expected

4

Re: Nextcloud on an iRedMail server

Thanks for the followup answer, Max smile

5 (edited by maxwellsmart 2021-01-24 14:33:19)

Re: Nextcloud on an iRedMail server

You're welcome.  I thought it might help to comment on how I discovered it too.

In the log files there were entries with the root duplicated,  /var/www/html/owncloud/owncloud/index.php  ... file not found.  When I removed 'owncloud' from the root it then resolved, /var/www/owncloud/index.php

I had initially thought it was the php-fpm, and learned how to troubleshoot that in the process and it turned out to be working find, just couldn't find it.  I hope this help others that may come across the 'Primary Script unknown' error.  There was very little info pertaining to this error on the interwebs.

6

Re: Nextcloud on an iRedMail server

Thanks for sharing. smile