Mautic 3.0.1 fresh Installation fails on Step 2 and console file is missing in 3.0.1.zip package!

My PHP version is : 7.2
My MySQL/MariaDB version is (delete as applicable): MySQL 5.7.30

Updating/Installing Errors
I am (delete as applicable): Installing
Upgrading/installing via: Web

These errors are showing in the installer : Error 500 by Step 2

These errors are showing in the Mautic log : Nothing

These errors are showing in the upgrade_log.txt file (located in the root of your Mautic instance when an upgrade has been attempted - ensure you remove or redact any sensitive data such as domain names in the file path) : There is no any upgrade_log.txt file

Your problem
My problem is :

Hi fellows, today I have tried to install mautic 3.0.1 with PHP 7.2 in cPanel, and by step 2, after the screen where you add the administrator, it shows Error 500.

There were no any cache or log folders so I created them, however, they keeps empty after several intents to install it.

However, I found the following errors in the error_ log file:

[01-Jul-2020 21:30:13 UTC] PHP Warning: require(/home/rodima/public_html/tmatic/var/cache/prod/doctrine/orm/Proxies/__CG__MauticUserBundleEntityRole.php): failed to open stream: No such file or directory in /home/rodima/public_html/tmatic/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206
[01-Jul-2020 21:30:13 UTC] PHP Warning: require(/home/rodima/public_html/tmatic/var/cache/prod/doctrine/orm/Proxies/__CG__MauticUserBundleEntityRole.php): failed to open stream: No such file or directory in /home/rodima/public_html/tmatic/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206
[01-Jul-2020 21:30:13 UTC] PHP Fatal error: require(): Failed opening required ‘/home/rodima/public_html/tmatic/var/cache/prod/doctrine/orm/Proxies/__CG__MauticUserBundleEntityRole.php’ (include_path=’.:/opt/cpanel/ea-php72/root/usr/share/pear’) in /home/rodima/public_html/tmatic/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206
[01-Jul-2020 21:31:29 UTC] PHP Warning: require(/home/rodima/public_html/tmatic/var/cache/prod/doctrine/orm/Proxies/__CG__MauticUserBundleEntityRole.php): failed to open stream: No such file or directory in /home/rodima/public_html/tmatic/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206
[01-Jul-2020 21:31:29 UTC] PHP Warning: require(/home/rodima/public_html/tmatic/var/cache/prod/doctrine/orm/Proxies/__CG__MauticUserBundleEntityRole.php): failed to open stream: No such file or directory in /home/rodima/public_html/tmatic/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206
[01-Jul-2020 21:31:29 UTC] PHP Fatal error: require(): Failed opening required ‘/home/rodima/public_html/tmatic/var/cache/prod/doctrine/orm/Proxies/__CG__MauticUserBundleEntityRole.php’ (include_path=’.:/opt/cpanel/ea-php72/root/usr/share/pear’) in /home/rodima/public_html/tmatic/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206

So, I have read everywhere and it looks like the cache directory hasn’t been created in the right way.

The normal recomendation to fix it is to run the console command:

php app/console cache:warmup --env=prod

However, I got a surprise since there is no any “console” file in the “app” folder!!!

I reviewed the 3.0.1.zip file and the console file doesn’t exist there neither!!.

So, Why there is not any console file?
How could I solve this to install mautic 3.0.1??

Thanks in advance for your support on this matter

Steps I have tried to fix the problem :
See above

Hi @tecnotronico, the console file has moved to bin/console in Mautic 3. For details, please see https://www.mautic.org/blog/community/mautic-3-building-stable-foundations.

What’s your PHP max_execution_time? If it’s currently lower than 240, can you please set it to 240 to see if the cache is created properly then?

1 Like

Hi @dennisameling, thanks for your answer.

Sorry, I didn’t know that you moved console to /bin my fault!

However, as root I have executed the command:

/usr/local/bin/ea-php72 /home/rodima/public_html/tmatic/bin/console cache:warmup --env=prod

and it did not created any folders structure under app/cache (keeps empty)

I had:
max_execution_time = 600
memory_limit = 1024M

Then I saw an error_log file in /app which says:

[02-Jul-2020 11:39:53 UTC] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 32768 bytes) in /home/rodima/public_html/tmatic/app/bundles/LeadBundle/Model/LeadModel.php on line 1505
[02-Jul-2020 11:39:53 UTC] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 32768 bytes) in /home/rodima/public_html/tmatic/vendor/symfony/debug/Exception/OutOfMemoryException.php on line 1

So, I dobled both values to:

max_execution_time = 1200
memory_limit = 2048M
And ran again the console command but it does nothing to the cache folder.

All the files/folders are own by the cpanel user for the account and I executed the console command as root to change that later to the cpanel user account but there is nothing to change within /app/cache.

Please see here my complete .htaccess file:

# Use the front controller as index file. It serves as a fallback solution when
# every other rewrite/redirect fails (e.g. in an aliased environment without
# mod_rewrite). Additionally, this reduces the matching process for the
# start page (path "/") because otherwise Apache will apply the rewriting rules
# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
#DirectoryIndex index.php

<IfModule mod_rewrite.c>
RewriteEngine On

# Set Authorization header for OAuth1a for when php is running under fcgi
RewriteCond %{HTTP:Authorization} .+
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Determine the RewriteBase automatically and set it as environment variable.
# If you are using Apache aliases to do mass virtual hosting or installed the
# project in a subdirectory, the base path will be prepended to allow proper
# resolution of the app.php file and to redirect to the correct URI. It will
# work in environments without path prefix as well, providing a safe, one-size
# fits all solution. But as you do not need it in this case, you can comment
# the following 2 lines to eliminate the overhead.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]

# Redirect to URI without front controller to prevent duplicate content
# (with and without `/app.php`). Only do this redirect on the initial
# rewrite by Apache and not on subsequent cycles. Otherwise we would get an
# endless redirect loop (request -> rewrite to front controller ->
# redirect -> request -> ...).
# So in case you get a "too many redirects" error or you always get redirected
# to the start page because your Apache does not expose the REDIRECT_STATUS
# environment variable, you have 2 choices:
# - disable this feature by commenting the following 2 lines or
# - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
#   following RewriteCond (best solution)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

# If the requested filename exists, simply serve it.
# We only want to let Apache serve files and not directories.
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]

# Rewrite all other queries to the front controller.
RewriteRule .? %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
    # When mod_rewrite is not available, we instruct a temporary redirect of
    # the start page to the front controller explicitly so that the website
    # and the generated links can still be used.
    RedirectMatch 302 ^(?!/(index\.php|index_dev\.php|app|addons|plugins|media|upgrade))(/(.*))$ /index.php$2
    # RedirectTemp cannot be used instead
</IfModule>
</IfModule>

<IfModule mod_php5.c>
# @link https://github.com/mautic/mautic/issues/1504
php_value always_populate_raw_post_data -1
</IfModule>

<IfModule mod_deflate.c>
<IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE application/x-font
    AddOutputFilterByType DEFLATE application/x-font-opentype
    AddOutputFilterByType DEFLATE application/x-font-otf
    AddOutputFilterByType DEFLATE application/x-font-truetype
    AddOutputFilterByType DEFLATE application/x-font-ttf
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE font/otf
    AddOutputFilterByType DEFLATE font/ttf
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE image/x-icon
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    # Do not enable compression for file types that could contain secrets
    #AddOutputFilterByType DEFLATE text/html
    #AddOutputFilterByType DEFLATE text/plain
    #AddOutputFilterByType DEFLATE text/xml
    #AddOutputFilterByType DEFLATE application/xhtml+xml
    #AddOutputFilterByType DEFLATE application/xml
    #AddOutputFilterByType DEFLATE application/json
    <IfModule mod_setenvif.c>
        <IfModule mod_header.c>
            # Remove browser bugs (only needed for really old browsers)
            BrowserMatch ^Mozilla/4 gzip-only-text/html
            BrowserMatch ^Mozilla/4\.0[678] no-gzip
            BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
            Header append Vary User-Agent
        </IfModule>
    </IfModule>
</IfModule>
</IfModule>

# Apache 2.4+
<IfModule authz_core_module>
# Deny access via HTTP requests to all PHP files.
<FilesMatch "\.php$">
    Require all denied
</FilesMatch>

# Except those whitelisted bellow.
<FilesMatch "^(index|index_dev|filemanager|upgrade)\.php$">
    Require all granted
</FilesMatch>
</IfModule>

# Fallback for Apache < 2.4
<IfModule !authz_core_module>
# Deny access via HTTP requests to all PHP files.
<FilesMatch "\.php$">
    Order deny,allow
    Deny from all
</FilesMatch>

# Except those whitelisted bellow.
<FilesMatch "^(index|index_dev|filemanager|upgrade)\.php$">
    Order allow,deny
    Allow from all
</FilesMatch>
</IfModule>


<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>


# php -- BEGIN cPanel-generated handler, do not edit
# Configure el paquete “ea-php72” como el lenguaje de programación predeterminado “PHP”.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

# BEGIN cPanel-generated php ini directives, do not edit
# Manual editing of this file may result in unexpected behavior.
# To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
# For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
<IfModule php7_module>
   php_flag display_errors Off
   php_value max_execution_time 1200
   php_value max_input_time 600
   php_value max_input_vars 1500
   php_value memory_limit 2048M
   php_value post_max_size 50M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path "/var/cpanel/php/sessions/ea-php72"
   php_value upload_max_filesize 2M
   php_flag zlib.output_compression Off
</IfModule>
<IfModule lsapi_module>
   php_flag display_errors Off
   php_value max_execution_time 1200
   php_value max_input_time 600
   php_value max_input_vars 1500
   php_value memory_limit 2048M
   php_value post_max_size 50M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path "/var/cpanel/php/sessions/ea-php72"
   php_value upload_max_filesize 2M
   php_flag zlib.output_compression Off
</IfModule>
# END cPanel-generated php ini directives, do not edit 

Also, this is the php.ini file:

; cPanel-generated php ini directives, do not edit
; Manual editing of this file may result in unexpected behavior.
; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)

allow_url_fopen = Off
allow_url_include = Off
display_errors = Off
enable_dl = Off
file_uploads = On
max_execution_time = 1200
max_input_time = 600
max_input_vars = 1500
memory_limit = 2048M
post_max_size = 50M
session.gc_maxlifetime = 1440
session.save_path = "/var/cpanel/php/sessions/ea-php72"
upload_max_filesize = 2M
zlib.output_compression = Off
magic_quotes_gpc = off

I have not been able to install mautic 3.0.1 as it keeps showing:

The site is currently offline due to encountering an error. If the problem persists, please contact the system administrator.
System administrators, check server logs for errors.

    Uh oh! I think I broke it. If I do it again, please report me to the system administrator!
    500 Internal Server Error
    Mautibot

Again, it happens in /installer/step/2 after the admin configuration form.

What else could I do to fix this problem???

Ok fellows I have fixed the issue … but I don’t really know what was exactly the factor which allowed me to install mautic 3.0.1, so I will explain what I did:

In cpanel the apache user is named nobody, so as I read that for this new version the files/folders should be owned by it and reviewing several aspects in our shared cpanel server, using SSH as root I ran:

chown -R user:nobody /home/user/public_html/mautic/

Then I reloaded the installation page in boom … It is worst … now it shows an Error which doesn’t allow to see anything.

So, I decided to delete all the files and folders in the mautic folder and extract again the 3.0.1.zip file there, however, before to try again the installation I copied my previous php.ini and .htaccess files.

Then I restarted the installation process and it worked just fine!!

Please note that I didn’t delete/change the previous database created and populated by the first installation and selected the “No backup tables option” during the final installation.

Besides, I did not need to run the console command to create the cache … it was done by the installation process itself.

So, what do you think was the key point here? Please note that my mautic folder was owned by user:nobody when I deleted all the files and extrated the zip file again.

Waiting for your comments … Thanks in advance

1 Like