cancel
Showing results for 
Search instead for 
Did you mean: 

Magento 2.3.2, 500 Internal Error CWP CentOS

   Did you know you can see the translated content as per your choice?

Translation is in progress. Please check again after few minutes.

Magento 2.3.2, 500 Internal Error CWP CentOS

hi,

I have magento 2.3.2 installed on a CWP panel on Centos 7.

I managed to get my site example.com open successfully and all pages are loading including admin after editing the .htaccess file in my host as seen below:

AddHandler application/x-httpd-php72 .php
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

############################################
## overrides deployment configuration mode value
## use command bin/magento deploy:mode:set to switch modes

   SetEnv MAGE_MODE developer

############################################
## uncomment these lines for CGI mode
## make sure to specify the correct cgi php binary file name
## it might be /cgi-bin/php-cgi

#    Action php5-cgi /cgi-bin/php5-cgi
#    AddHandler php5-cgi .php

############################################
## GoDaddy specific options

#   Options -MultiViews

## you might also need to add this line to php.ini
##     cgi.fix_pathinfo = 1
## if it still doesn't work, rename php.ini to php5.ini

############################################
## this line is specific for 1and1 hosting

    #AddType x-mapp-php5 .php
    #AddHandler x-mapp-php5 .php

############################################
## enable usage of methods arguments in backtrace

    SetEnv MAGE_DEBUG_SHOW_ARGS 1

############################################
## default index file

    DirectoryIndex index.php
    
<IfModule mod_php5.c>
############################################
## adjust memory limit

    php_value memory_limit 756M
    php_value max_execution_time 18000

############################################
## disable automatic session start
## before autoload was initialized

    php_flag session.auto_start off

############################################
## enable resulting html compression

    #php_flag zlib.output_compression on

###########################################
## disable user agent verification to not break multiple image upload

    php_flag suhosin.session.cryptua off
</IfModule>
<IfModule mod_php7.c>
############################################
## adjust memory limit

    php_value memory_limit 756M
    php_value max_execution_time 18000

############################################
## disable automatic session start
## before autoload was initialized

    php_flag session.auto_start off

############################################
## enable resulting html compression

    #php_flag zlib.output_compression on

###########################################
## disable user agent verification to not break multiple image upload

    php_flag suhosin.session.cryptua off
</IfModule>
<IfModule mod_security.c>
###########################################
## disable POST processing to not break multiple image upload

    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

<IfModule mod_deflate.c>

############################################
## enable apache served files compression
## http://developer.yahoo.com/performance/rules.html#gzip

    # Insert filter on all content
    ###SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json image/svg+xml

    # Netscape 4.x has some problems...
    #BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    #BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    #Header append Vary User-Agent env=!dont-vary

</IfModule>
<IfModule mod_ssl.c>

############################################
## make HTTPS env vars available for CGI mode

    SSLOptions StdEnvVars

</IfModule>

############################################
## workaround for Apache 2.4.6 CentOS build when working via ProxyPassMatch with HHVM (or any other)
## Please, set it on virtual host configuration level

##    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
############################################


############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    AddDefaultCharset Off
    #AddDefaultCharset UTF-8
    AddType 'text/html; charset=UTF-8' html

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresDefault "access plus 1 year"
    ExpiresByType text/html A0
    ExpiresByType text/plain A0

</IfModule>

###########################################
## Deny access to root files to hide sensitive application information
    RedirectMatch 403 /\.git

    <Files composer.json>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files composer.lock>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files .gitignore>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files .htaccess>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files .htaccess.sample>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files .php_cs.dist>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files .travis.yml>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files CHANGELOG.md>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files COPYING.txt>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files Gruntfile.js>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files LICENSE.txt>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files LICENSE_AFL.txt>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files nginx.conf.sample>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files package.json>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files php.ini.sample>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files README.md>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files magento_umask>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files auth.json>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>
    <Files .user.ini>
        <IfVersion < 2.4>
            order allow,deny
            deny from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all denied
        </IfVersion>
    </Files>

# For 404s and 403s that aren't handled by the application, show plain 404 response
ErrorDocument 404 /pub/errors/404.php
ErrorDocument 403 /pub/errors/404.php

################################
## If running in cluster environment, uncomment this
## http://developer.yahoo.com/performance/rules.html#etags

    #FileETag none

# ######################################################################
# # INTERNET EXPLORER                                                  #
# ######################################################################

# ----------------------------------------------------------------------
# | Document modes                                                     |
# ----------------------------------------------------------------------

# Force Internet Explorer 8/9/10 to render pages in the highest mode
# available in the various cases when it may not.
#
# https://hsivonen.fi/doctype/#ie8
#
# (!) Starting with Internet Explorer 11, document modes are deprecated.
# If your business still relies on older web apps and services that were
# designed for older versions of Internet Explorer, you might want to
# consider enabling `Enterprise Mode` throughout your company.
#
# https://msdn.microsoft.com/en-us/library/ie/bg182625.aspx#docmode
# http://blogs.msdn.com/b/ie/archive/2014/04/02/stay-up-to-date-with-enterprise-mode-for-internet-explorer-11.aspx

<IfModule mod_headers.c>

    Header set X-UA-Compatible "IE=edge"

    # `mod_headers` cannot match based on the content-type, however,
    # the `X-UA-Compatible` response header should be send only for
    # HTML documents and not for the other resources.

    <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
        Header unset X-UA-Compatible
    </FilesMatch>

</IfModule>
AddHandler application/x-httpd-ea-php72 .php .php5 .php4 .php3

Using the default magento re-wright rules cause my site not to open so i am using the above custom htaccess rule, but know i have another problem, some files are not oppening, i am getting an error 500 for files as seen in console log below:

GET https://example.com/pub/static/frontend/Magento/luma/en_US/fonts/opensans/regular/opensans-400.woff2 net::ERR_ABORTED 500
(index):305 GET https://example.com/pub/static/frontend/Magento/luma/en_US/fonts/opensans/light/opensans-300.woff2 net::ERR_ABORTED 500
(index):374 GET https://example.com/pub/static/frontend/Magento/luma/en_US/fonts/opensans/semibold/opensans-600.woff2 net::ERR_ABORTED 500
jquery-migrate.js:23 JQMIGRATE: Migrate is installed with logging active, version 1.4.1
text.js:137 GET https://example.com/pub/static/frontend/Magento/luma/en_US/js-translation.json 500
require.js:141 Uncaught Error: https://example.com/pub/static/frontend/Magento/luma/en_US/js-translation.json HTTP status: 500

In CWP apache config file for my host this is included:

<VirtualHost xxxx>
	ServerName example.com
	ServerAlias www.example.com
	ServerAdmin webmaster@example.com
	DocumentRoot /home/example/public_html
	UseCanonicalName Off
	ScriptAlias /cgi-bin/ /home/example/public_html/cgi-bin/


	#CustomLog /usr/local/apache/domlogs/example.com.bytes bytes
	#CustomLog /usr/local/apache/domlogs/example.com.log combined
	ErrorLog /usr/local/apache/domlogs/example.com.error.log

	# Custom settings are loaded below this line (if any exist)
	    IncludeOptional /usr/local/apache/conf/userdata/example/example.com/*.conf

	<IfModule mod_setenvif.c>
		SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
	</IfModule>

	<IfModule mod_userdir.c>
		UserDir disabled
		UserDir enabled example
	</IfModule>

	<IfModule mod_suexec.c>
		SuexecUserGroup example example
	</IfModule>

	<IfModule mod_suphp.c>
		suPHP_UserGroup example example
		suPHP_ConfigPath /home/example
	</IfModule>

	<IfModule mod_ruid2.c>
		RMode config
		RUidGid example example
	</IfModule>

	<IfModule itk.c>
		AssignUserID example example
	</IfModule>

	<Directory "/home/example/public_html">
		Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch
		AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
	</Directory>

</VirtualHost>

do i need to edit htaccess files in the paths /pub and /pub/static, and how to edit these files what to do? is my custom htaccess correct or not?

I also tried removing the code <directory " ...... </directory> found in cwp apache config file but this cause site to have 500 error and wouldn't open at all. also i tried only to remove "allowoverride all ...." from that file also and it caused same error for whole site.

1 REPLY 1

Re: Magento 2.3.2, 500 Internal Error CWP CentOS

Hello @mohammed_dahwi1 

 

Please perform the following steps to fix the 500 Internal Error.

  1. Check pub\.htaccss file with following code or replace following code in pub\.htaccss file
    ############################################
    ## Optional override of deployment mode. We recommend you use the
    ## command bin/magento deploy:mode:set to switch modes instead
    
    # Options are default, production, or developer
    #   SetEnv MAGE_MODE default
    
    ############################################
    ## Uncomment these lines for CGI mode.
    ## Make sure to specify the correct cgi php binary file name
    ## it might be /cgi-bin/php-cgi
    
    #    Action php5-cgi /cgi-bin/php5-cgi
    #    AddHandler php5-cgi .php
    
    ############################################
    ## GoDaddy specific options
    
    #   Options -MultiViews
    
    ## You might also need to add this line to php.ini
    ##     cgi.fix_pathinfo = 1
    ## If it still doesn't work, rename php.ini to php5.ini
    
    ############################################
    ## This line is specific for 1and1 hosting
    
        #AddType x-mapp-php5 .php
        #AddHandler x-mapp-php5 .php
    
    ############################################
    ## Default index file
    
        DirectoryIndex index.php
    
    <IfModule mod_php5.c>
    ############################################
    ## Adjust memory limit
    
        php_value memory_limit 768M
        php_value max_execution_time 18000
    
    ############################################
    ## Disable automatic session start
    ## before autoload was initialized
    
        php_flag session.auto_start off
    
    ############################################
    ## Enable resulting html compression
    
        #php_flag zlib.output_compression on
    
    ###########################################
    # Disable user agent verification to not break multiple image upload
    
        php_flag suhosin.session.cryptua off
    </IfModule>
    <IfModule mod_php7.c>
    ############################################
    ## Adjust memory limit
    
        php_value memory_limit 768M
        php_value max_execution_time 18000
    
    ############################################
    ## Disable automatic session start
    ## before autoload was initialized
    
        php_flag session.auto_start off
    
    ############################################
    ## Enable resulting html compression
    
        #php_flag zlib.output_compression on
    
    ###########################################
    # Disable user agent verification to not break multiple image upload
    
        php_flag suhosin.session.cryptua off
    </IfModule>
    
    
    <IfModule mod_security.c>
    ###########################################
    # Disable POST processing to not break multiple image upload
    
        SecFilterEngine Off
        SecFilterScanPOST Off
    </IfModule>
    
    <IfModule mod_deflate.c>
    
    ############################################
    ## Enable apache served files compression
    ## http://developer.yahoo.com/performance/rules.html#gzip
    
        # Insert filter on all content
        ###SetOutputFilter DEFLATE
        # Insert filter on selected content types only
        #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
    
        # Netscape 4.x has some problems...
        #BrowserMatch ^Mozilla/4 gzip-only-text/html
    
        # Netscape 4.06-4.08 have some more problems
        #BrowserMatch ^Mozilla/4\.0[678] no-gzip
    
        # MSIE masquerades as Netscape, but it is fine
        #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    
        # Don't compress images
        #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
    
        # Make sure proxies don't deliver the wrong content
        #Header append Vary User-Agent env=!dont-vary
    
    </IfModule>
    
    <IfModule mod_ssl.c>
    
    ############################################
    ## Make HTTPS env vars available for CGI mode
    
        SSLOptions StdEnvVars
    
    </IfModule>
    
    <IfModule mod_rewrite.c>
    
    ############################################
    ## Enable rewrites
    
        Options +FollowSymLinks
        RewriteEngine on
    
    ############################################
    ## You can put here your magento root folder
    ## path relative to web root
    
        #RewriteBase /magento/
    
    ############################################
    ## Workaround for HTTP authorization
    ## in CGI environment
    
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    ############################################
    ## TRACE and TRACK HTTP methods disabled to prevent XSS attacks
    
        RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
        RewriteRule .* - [L,R=405]
    
    ############################################
    ## Never rewrite for existing files, directories and links
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-l
    
    ############################################
    ## Rewrite everything else to index.php
    
        RewriteRule .* index.php [L]
    
    </IfModule>
    
    
    ############################################
    ## Prevent character encoding issues from server overrides
    ## If you still have problems, use the second line instead
    
        AddDefaultCharset Off
        #AddDefaultCharset UTF-8
    
    <IfModule mod_expires.c>
    
    ############################################
    ## Add default Expires header
    ## http://developer.yahoo.com/performance/rules.html#expires
    
        ExpiresDefault "access plus 1 year"
        ExpiresByType text/html A0
        ExpiresByType text/plain A0
    
    </IfModule>
    
    ###########################################
    ## Deny access to release notes to prevent disclosure of the installed Magento version
    
        <Files RELEASE_NOTES.txt>
            order allow,deny
            deny from all
        </Files>
    
    # For 404s and 403s that aren't handled by the application, show plain 404 response
    ErrorDocument 404 /errors/404.php
    ErrorDocument 403 /errors/404.php
    
    ############################################
    ## If running in cluster environment, uncomment this
    ## http://developer.yahoo.com/performance/rules.html#etags
    
        #FileETag none
    
    ###########################################
    ## Deny access  to cron.php
        <Files cron.php>
            order allow,deny
            deny from all
        </Files>
    
    <IfModule mod_headers.c>
        ############################################
        ## Prevent clickjacking
        Header set X-Frame-Options SAMEORIGIN
    </IfModule>
  2. Check pub\static\.htaccss file with following code or replace following code in pub\static\.htaccss file

    <IfModule mod_php5.c>
    php_flag engine 0
    </IfModule>
    
    <IfModule mod_php7.c>
    php_flag engine 0
    </IfModule>
    
    # To avoid situation when web server automatically adds extension to path
    Options -MultiViews
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
    
        ## you can put here your pub/static folder path relative to web root
        #RewriteBase /magento/pub/static/
    
        # Remove signature of the static files that is used to overcome the browser cache
        RewriteRule ^version.+?/(.+)$ $1 [L]
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-l
    
        RewriteRule .* ../static.php?resource=$0 [L]
        # Detects if moxieplayer request with uri params and redirects to uri without params
        <Files moxieplayer.swf>
         	RewriteCond %{QUERY_STRING} !^$
         	RewriteRule ^(.*)$ %{REQUEST_URI}? [R=301,L]
         </Files>
    </IfModule>
    
    ############################################
    ## setting MIME types
    
    # JavaScript
    AddType application/javascript js jsonp
    AddType application/json json
    
    # HTML
    
    AddType text/html html
    
    # CSS
    AddType text/css css
    
    # Images and icons
    AddType image/x-icon ico
    AddType image/gif gif
    AddType image/png png
    AddType image/jpeg jpg
    AddType image/jpeg jpeg
    
    # SVG
    AddType image/svg+xml svg
    
    # Fonts
    AddType application/vnd.ms-fontobject eot
    AddType application/x-font-ttf ttf
    AddType application/x-font-otf otf
    AddType application/x-font-woff woff
    AddType application/font-woff2 woff2
    
    # Flash
    AddType application/x-shockwave-flash swf
    
    # Archives and exports
    AddType application/zip gzip
    AddType application/x-gzip gz gzip
    AddType application/x-bzip2 bz2
    AddType text/csv csv
    AddType application/xml xml
    
    <IfModule mod_headers.c>
    
        <FilesMatch .*\.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|json)$>
            Header append Cache-Control public
        </FilesMatch>
    
        <FilesMatch .*\.(zip|gz|gzip|bz2|csv|xml)$>
            Header append Cache-Control no-store
        </FilesMatch>
    
    </IfModule>
    
    <IfModule mod_expires.c>
    
    ############################################
    ## Add default Expires header
    ## http://developer.yahoo.com/performance/rules.html#expires
    
        ExpiresActive On
    
        # Data
        <FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$>
            ExpiresDefault "access plus 0 seconds"
        </FilesMatch>
        ExpiresByType text/xml "access plus 0 seconds"
        ExpiresByType text/csv "access plus 0 seconds"
        ExpiresByType application/json "access plus 0 seconds"
        ExpiresByType application/zip "access plus 0 seconds"
        ExpiresByType application/x-gzip "access plus 0 seconds"
        ExpiresByType application/x-bzip2 "access plus 0 seconds"
    
        # CSS, JavaScript, html
        <FilesMatch \.(css|js|html|json)$>
            ExpiresDefault "access plus 1 year"
        </FilesMatch>
        ExpiresByType text/css "access plus 1 year"
        ExpiresByType text/html "access plus 1 year"
        ExpiresByType application/javascript "access plus 1 year"
        ExpiresByType application/json "access plus 1 year"
    
        # Favicon, images, flash
        <FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$>
            ExpiresDefault "access plus 1 year"
        </FilesMatch>
        ExpiresByType image/gif "access plus 1 year"
        ExpiresByType image/png "access plus 1 year"
        ExpiresByType image/jpg "access plus 1 year"
        ExpiresByType image/jpeg "access plus 1 year"
        ExpiresByType image/svg+xml "access plus 1 year"
    
        # Fonts
        <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
            ExpiresDefault "access plus 1 year"
        </FilesMatch>
        ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
        ExpiresByType application/x-font-ttf "access plus 1 year"
        ExpiresByType application/x-font-otf "access plus 1 year"
        ExpiresByType application/x-font-woff "access plus 1 year"
        ExpiresByType application/font-woff2 "access plus 1 year"
    
    </IfModule>
  3. Check folders in pub directory are writeable. If not then make those writeable
  4. Run the following commands:

    php bin/magento setup:static-content:deploy -f
    php bin/magento cache:clean

     

Hope it helps.

---
If you've found my answer useful, please give"Kudos" and "Accept as Solution"