Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Installing SilverStripe /

Getting SilverStripe up and running on your computer and on your web server.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Nginx and tiny_mce_gzip.php issues!


Go to End


4 Posts   1790 Views

Avatar
mrsteveheyes

Community Member, 15 Posts

2 July 2013 at 5:19am

Hi there,

I am having real problems with Silverstripe, NGINX and tiny_mce_gzip.php. I have Silverstripe cms and framework "3.0.*@stable" installed. I am running PHP-FPM (PHP 5.3.10-1ubuntu3.6) and NGINX (v1.1.19) on Ubuntu 12.04.2 LTS. I have successfully installed the CMS etc fine and can access the front end and the back end.

However, when I log into the backend admin section, and click on a page to edit, the tiny_mce_gzip.php doesn't load.

Failed to load resource: the server responded with a status of 404 (Not Found) http://datalink.dev/framework/thirdparty/tinymce/tiny_mce_gzip.php&js=1&plu…lscreen,inlinepopups&themes=advanced&languages=en&diskcache=true&src=false

This means that none of the Javascript will work on the page edit page, thus I can't change any template, add content etc.

My nginx conf file is:

server {
    server_name  datalink.dev static.datalink.dev www.datalink.dev;
    access_log  /var/log/nginx/datalink_dev_access.log;
    error_log  /var/log/nginx/datalink_dev_error.log debug;
    root   /srv/nginx/datalink/dev/public/;

    include /etc/nginx/nocrawl.conf;

    include /etc/nginx/common.conf;

    location / {
        try_files $uri @silverstripe;
#if_modified_since off;
    }

    location ~ ^/framework/.*(rpc|tiny_mce_gzip)\.php$ {
        include /etc/nginx/fastcgi_params;

        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;

        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
    }

    location @silverstripe {
        include /etc/nginx/fastcgi_params;
        
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        
        fastcgi_param SCRIPT_FILENAME  $document_root/framework/main.php;
        fastcgi_param SCRIPT_NAME  /framework/main.php;
        fastcgi_param QUERY_STRING url=$uri&$args;
        
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~ ^/silverstripe-cache {
        deny all;
    }

    location ^~ /assets/ {
        try_files $uri $uri/ =404;
#       access_log    off;
#    log_not_found off;
#    expires       7d;
#add_header Pragma public;
#    add_header    Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location ~ \.ymal {
        deny all;
    }

    location ~ ^/(cms|framework|mysite)/.*\.(php|php[345]|phtml|inc)$ {
        deny all;
    }

    location ~ ^/(cms|framework)/silverstripe_version$ {
        deny all;
    }

    location ~ ^/framework/.*(main|static-main|rpc|tiny_mce_gzip)\.php$ {
        allow all;
    }
}

Has anyone encountered this problem before? Does anyone know how to stop it? Can anyone see what I have done wrong!?!

Really appreciate it because I have spent hours trying to figure it out and I am just stumped!

Avatar
Bam

Community Member, 16 Posts

12 September 2013 at 1:08pm

Hi Steve

I have the same problem. Did you ever have any luck?

Cheers
Sam

Avatar
Bam

Community Member, 16 Posts

12 September 2013 at 1:27pm

Got it sorted now. No amount of restarting nginx was fixing it. Rebooted server and now it works. Very strange! If you are still having troubles I can post my configs.

Avatar
Sean

Forum Moderator, 922 Posts

12 September 2013 at 2:05pm

Edited: 12/09/2013 2:07pm

I initially had problems with tiny_mce_gzip.php, but it was caused by the PHP configuration not setup correctly. normal php extensions wouldn't be served at all (404s), but SilverStripe requests were fine... turns out my location ~ \.php$ directive was broken.

I've written a blog post about setting it up nginx with PHP-FPM. Fedora/RHEL Linux specific, but the same sort of thing can be applied to other flavours of Linux. In this case I split up the php and silverstripe into separate configs and applied it per-virtualhost, might be a bit tidier especially for environments with multiple sites.

Sean