Uncaught The type apostrophe-login is not defined.

There’s not much documentation on apostrophe-cms on web ( unlike Laravel CMS, WordPress etc.. ), so if you run into this kind of javascript error in console you might get stucked.

What probably happened is that you got some miss-match of versions in node_modules/apostrophe folder.

Solution is to open the module in question, e.g. apostrophe-login, the location will be node_modules/apostrophe/lib/modules/apostrophe-login/index.js and look for

self.pushCreateSingleton();

.. in the afterConstruct section. Simply comment it out, like this

// self.pushCreateSingleton();

and that’s that. Some versions don’t have this line in there, some do. Doesn’t work for me if it’s in there.

nginx – php value / ini_set for specific url

Scenario – php.ini sets upload_max_filesize to 25MBs but on some upload urls you need higher value.

This can’t be done through ini_set() function – you can change max_execution_time, memory limits, but not upload limits through this function. If you are using nginx, you can’t rely on .htaccess either.

Luckily, there’s a way. Following real case scenario is for Laravel CMS, PHP-FPM 7.4, Nginx.

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    set $phpval "upload_max_filesize = 25M \n post_max_size=25M";

    if ($request_uri ~ ^/video/upload(.*)$) {
    	set $phpval "post_max_size=1536M \n upload_max_filesize=1536M";
    }


    fastcgi_param PHP_VALUE $phpval;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
}

What happens here is that we create a variable called $phpval and set default values – the same as in php.ini. Then we check if ‘/video/upload’ is in the url – if it is, change the value of variable $phpval. Before passing request to php socket, we set the PHP_VALUE.

Couple notes to keep in mind

  • fastcgi_param can not be set inside the if() {} block. Hence the additional variable
  • there must be only one fastcgi_param per location block
  • you can’t use variables to set nginx parameters such as clinet_max_body_size
  • separate php settings by \n
  • use PHP_ADMIN_VALUE instead of PHP_VALUE if you want to make sure the value won’t be overwritten by ini_set ( e.g. maximum execution time )