Ao executar o comando em linha de comando:
-bash-4.2$ php bin/magento deploy:mode:set production
Aparece o erro: Something went wrong while compiling generated code. See the error log for details.
Normalmente é por falta de memória, VPSs com 1Gb não conseguem fazer a compilação, ou se a sua VPS tem mais de 1.5Gb de memória pode ser o seu php.ini, verifique e entrada de nome: memory_limit, no mínimo devemos ter 1G, ou seja, a linha deve ser: memory_limit = 1G
Mas cuidado, se você tiver algumas versões de php, tem que achar o php.ini da versão do php rodando como shell, quando rodamos o php bin/magento estamos chamando o php como shell e não o php que está sendo usado no seu servidor de página (apache ou nginx). Para ver realmente qual a sua memória máxima, de o seguinte comando:
-bash-4.2$ php -r “echo ini_get(‘memory_limit’).PHP_EOL;”
Por exemplo: /etc/php7/cli/php.ini para linux tipo Debian, ou em /etc/php.ini.7.1.33.
Se ele NÃO retornar um valor maior que 1G você ainda NÃO achou o php.ini correto para sua linha de comando.
Espero ter ajudado,
Alfredo Letti