There was a problem loading the comments.

Web Server Performance optimieren ( GZIP / PHP )

Support Portal  »  FAQ  »  Viewing Article

  Print

Diese Anleitung befindet sich in Überarbeitung.

 

Hinweis:
In diesem Beitrag geht es um das Optimieren der Performance. Falls Sie herausfinden möchten warum Ihre Webseite viel Ressourcen verbraucht, lesen Sie unseren anderen FAQ-Beitrag.
Link zum Artikel: Was tun wenn meine Seite zu viele Ressourcen verbraucht



Problem

Ihr Account erreicht regelmässig das Ressourcenlimit oder Ihre Seite ist einfach nur Langsam? Mit ein paar wenigen Einstellungen lässt sich die der Account so optimieren, dass sich die Performance Ihrer Webseite stark erhöht. Folgend finden Sie mehrere Ansätze zur optimierung:



GZIP-Komprimierung

Als erstes sollten Sie die die GZIP-Komprimierung aktivieren. Das heisst, dass alle Daten die der Server sendet zuerst komprimiert werden. Somit wird die versendete Datenmenge stark reduziert und die Webseite lässt sich schneller laden.

Um die Komprimierung zu aktivieren, loggen Sie sich im cPanel ein und öffnen Sie das Menü " Optimize Website". Dort wählen Sie die Option "Compress all content". Anschliessend muss die Einstellung mit dem Button "Update Settings" noch gespeichert werden und schon wird Ihre Seite komprimiert ausgeliefert:



a4d3b41c0b033dd8fc5f6363cfc93054269b6954?t=c6fa4ef5a346091f6482349926dc3847



PHP-Optimierung

Um die PHP-Einstellungen zu optimieren, müssen Sie vom cPanel in das Menü "PHP-Version wählen" wechseln. Anschliessend, falls nicht bereits umgestellt, muss eine PHP-Version definiert werden.

Anschliessend sehen Sie eine Übersicht der aktivierten PHP-Erweiterungen. Speichern Sie die Einstellung via dem Button "Set as current".

PHP-Chaching

Wenn ein User Ihre webseite aufruft, wird jedes mal aus den PHP-Dateien ein HTML-Dokument erstellt. Wenn nun zur gleichen Zeit mehrere Benutzer auf der Webseite sind, kann das eine hohe Last verursachen, da der Server das HTML-Dokument jedes mal neu erstellt. Mit dem Aktivieren der Erweiterung "opcache" kann PHP die HTML-Dokumente zwischenspeichern, sodass die Last auf dem Server stark minimiert wird.

Um die PHP-Einstellungen zu optimieren, müssen Sie vom cPanel in das Menü "PHP-Version wählen" wechseln. Anschliessend den Haken bei "opcache" setzen und mit dem Button "Speichern" die gemachten Änderungen übernehmen:


eaca018a28b08e42ad2eef7001d1f87bb9f4b655?t=0094de99971f0fb461f7bfa2aa13488d


Maximale Ausführzeit

Normalerweise werde PHP-Scripte in weniger als einer Sekunde ausgeführt. Falls etwas schiefläuft und das Script weiterläuft soll es anstatt nach 30 Sekunden bereits nach 10 beendet werden, da jedes einen Prozess benötigt. Damit nun das Prozesslimit nicht bzw. seltener erreicht wird, kann man folgende Einstellungen vornehmen:

Um die PHP-Einstellungen zu optimieren, müssen Sie vom cPanel in das Menü "PHP-Version wählen" wechseln und oben rechts auf "Switch To PHP Settings" klicken. Anschliessend änden Sie den Wert beim Eintrag "max_execution_time" auf 10. Somit wird ein PHP-Script nach 10s beendet:


91e072c992b427edc4accb0f09d844fbb5cbe256?t=631a6936386ee9bd0c6dfeeacc83ba1f


CloudFlare CDN


4bb2960afc3242308ddb35dd72e36b675cbc83fd?t=76e121a164a4761f852e5de2689679d6



CloudFlare aktivieren:

Um Cloudflare zu aktivieren, benötigen Sie einen Account bei Cloudflare. Bei der Einrichtung der Domain werden Ihnen dann DNS-Einträge angegeben, über welche Sie den Domainnamen mit Cloudflare verbinden können. Wir können hierfür keinen direkten Support anbieten.



Apache .htaccess Konfiguration

Der Apache-Server kann so konfiguriert werden, dass er dem Browser mitteilt statische Dateien (z.B. Bilder) auf dem Computer zu speichern und nicht jedes mal erneut herunterzuladen. Um diese Einstellungen zu aktivieren, fügen Sie folgende Konfiguration zur .htaccess Datei im Webseitenverzeichnis hinzu:



# ##############################################################################
# # WEB PERFORMANCE #
# ##############################################################################

# ------------------------------------------------------------------------------
# | Compression |
# ------------------------------------------------------------------------------

<IfModule mod_deflate.c>

# Force compression for mangled headers.
# https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html

<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Map certain file types to the specified encoding type in order to
# make Apache serve them with the appropriate 'Content-Encoding' HTTP
# response header (this will NOT make Apache compress them!).

# If the following file types wouldn't be served without the appropriate
# 'Content-Enable' HTTP response header, client applications (e.g.:
# browsers) wouldn't know that they first need to uncompress the response,
# and thus, wouldn't be able to understand the content.

# http://httpd.apache.org/docs/current/mod/mod_mime.html#addencoding

<IfModule mod_mime.c>
AddEncoding gzip svgz
</IfModule>

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Compress all output labeled with one of the following media types.

# IMPORTANT: For Apache versions below 2.3.7 you don't need to enable
# 'mod_filter' and can remove the '<IfModule mod_filter.c>' & '</IfModule>'
# lines as 'AddOutputFilterByType' is still in the core directives.

<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/vnd.geo+json" \
"application/vnd.ms-fontobject" \
"application/x-font-ttf" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/opentype" \
"image/svg+xml" \
"image/x-icon" \
"text/cache-manifest" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/vtt" \
"text/x-component" \
"text/xml"
</IfModule>

</IfModule>

# ------------------------------------------------------------------------------
# | ETags |
# ------------------------------------------------------------------------------

# Remove 'ETags' as resources are sent with far-future expires headers.
# https://developer.yahoo.com/performance/rules.html#etags

# 'FileETag None' doesn't work in all cases.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>

FileETag None

# ------------------------------------------------------------------------------
# | Expires headers |
# ------------------------------------------------------------------------------

# Serve resources with far-future expires headers.

# IMPORTANT: If you don't control versioning with filename-based cache
# busting, consider lowering the cache times to something like one week.

<IfModule mod_expires.c>

ExpiresActive on
ExpiresDefault "access plus 1 month"

# CSS
ExpiresByType text/css "access plus 1 year"

# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/ld+json "access plus 0 seconds"
ExpiresByType application/schema+json "access plus 0 seconds"
ExpiresByType application/vnd.geo+json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"

# Favicon (cannot be renamed!) and cursor images
ExpiresByType image/x-icon "access plus 1 week"

# HTML components (HTCs)
ExpiresByType text/x-component "access plus 1 month"

# HTML
ExpiresByType text/html "access plus 0 seconds"

# JavaScript
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"

# Manifest files
ExpiresByType application/manifest+json "access plus 1 year"
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"

# Media
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"

# Web feeds
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rdf+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"

# Web fonts
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"

</IfModule>

Share via
Did you find this article useful?  

Related Articles

Tags

© NovaTrend Services GmbH