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 )

Sudo stop asking for password

If you are working on local machine, it could become time consuming entering password after every sudo.

You can skip this by following these steps

sudo visudo

and add following at the end of file

USER ALL=(ALL) NOPASSWD: ALL

where USER is your actual username. You can see your username by entering command ‘whoami’

add-apt-repository: command not found

If you run into article mentioning add-apt-repository ( such as Docker installation guide ) chances are it won’t work on your linux, resulting in sudo: add-apt-repository: command not found – should that happen, don’t worry, just install the software-properties-common

sudo apt-get install software-properties-common

.. and you are good to go! The add-apt-repository command will work now