2017-09-15 7 views
4

Ich habe versucht, mich davon abzuhalten, zu viele Fragen zu Stack Overflow zu stellen, aber ich habe versucht, mod_pagespeed auf meinem Apache2 Server für ein paar Tage aktiviert zu bekommen, und bin bereit loszuziehen meine Haare hah. Ich habe mod_pagespeed und mod_pagespeed_ap24 installiert, obwohl ich nur mod_pagespeed_ap24 für meine Version von Apache2 benötige. I edited Apache Konfiguration in /apache2/conf/httpd.conf das Modul inMod_pagespeed ist aktiviert. FileCachePath darf nicht leer sein:

LoadModule pagespeed_module modules/mod_pagespeed_ap24.so 

Laden ich den Server erfolgreich neu gestartet, aber ein 502 falsches Gateway erhalten, und diesen Fehler

[mod_pagespeed 1.12.34.2-0 @27107] mod_pagespeed is enabled. FileCachePath must not be empty: define_name=(null) defne_line_number=0 server_hostname=web551.webfaction.com port=0 

Ich hat versucht, mehr Mal um die Konfigurationsdatei von mod_pagespeed in Linux zu bearbeiten, aber nichts hat funktioniert. Stattdessen habe ich einen symbolischen Link zu einem statischen/php/cgi auf der Webfaction erstellt, um meine Medien über einen Apache-Server anstelle ihres nginix-Servers zu bedienen. Daher könnte ich eine .htaccess-Datei verwenden, um meinen Apache-Server zu konfigurieren. Ich bekomme immer noch das Problem.

.htaccess-Datei

Options +FollowSymLinks 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/jpg "access 1 year" 
    ExpiresByType image/jpeg "access 1 year" 
    ExpiresByType image/gif "access 1 year" 
    ExpiresByType image/png "access 1 year" 
    ExpiresByType text/css "access 1 month" 
    ExpiresByType text/html "access 1 month" 
    ExpiresByType application/pdf "access 1 month" 
    ExpiresByType text/x-javascript "access 1 month" 
    ExpiresByType application/x-shockwave-flash "access 1 month" 
    ExpiresByType image/x-icon "access 1 year" 
    ExpiresDefault "access 1 month" 

</IfModule> 



#Begin gzip and deflate 
<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/css application/x-javascript text/plain text/xml image/x-icon 
</IfModule> 

<IfModule mod_pagespeed_ap24.c> 
    ModPagespeed on 
    ModPagespeedFileCachePath "/home/doc4design/var/cache/mod_pagespeed" 
    ModPagespeedEnableFilters rewrite_css,combine_css 
    ModPagespeedEnableFilters recompress_images 
    ModPagespeedEnableFilters convert_png_to_jpeg,convert_jpeg_to_webp 
    ModPagespeedEnableFilters collapse_whitespace,remove_comments 
</IfModule> 

Apache httpd.conf

ServerRoot "/home/doc4design/webapps/django_2016/apache2" 

LoadModule authz_core_module modules/mod_authz_core.so 
LoadModule dir_module  modules/mod_dir.so 
LoadModule env_module  modules/mod_env.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule mime_module  modules/mod_mime.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule wsgi_module  modules/mod_wsgi.so 
LoadModule unixd_module  modules/mod_unixd.so 
LoadModule pagespeed_module modules/mod_pagespeed_ap24.so 

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
CustomLog /home/doc4design/logs/user/access_django_2016.log combined 
ErrorLog /home/doc4design/logs/user/error_django_2016.log 

Listen 30651 
KeepAlive Off 
SetEnvIf X-Forwarded-SSL on HTTPS=1 
ServerLimit 1 
StartServers 1 
MaxRequestWorkers 5 
MinSpareThreads 1 
MaxSpareThreads 3 
ThreadsPerChild 5 

WSGIDaemonProcess django_2016 processes=2 threads=12 maximum-requests=100 python-path=/home/doc4design/webapps/django_2016:/home/doc4design/webapps/django_2016/doc4_2016:/home/doc4design/webapps/django_2$ 
WSGIProcessGroup django_2016 
WSGIRestrictEmbedded On 
WSGILazyInitialization On 
WSGIScriptAlias//home/doc4design/webapps/django_2016/doc4_2016/webapp/wsgi.py 
+0

Haben Sie über 'deb' oder source installiert? Als ich 'Mod_Pagespeed' eingesetzt habe, habe ich' deb' installiert und 'sudo a2enmod pagespeed' verwendet. Mod pagespeed fügt automatisch eine conf-Datei in 'mods-available' ein, so dass ein einfaches' a2enmod' für mich möglich ist. Eine kurze Frage, existiert der Dateipfad (der Ordner selbst) für Ihren 'FileCachePath' Parameter? –

+1

Vielleicht haben Sie auch mehr Glück auf https://serverfault.com anstatt hier zu fragen - streng genommen handelt es sich hierbei nicht um eine Programmierfrage. – Fraser

Antwort

2

Sind Sie sicher, dass der Pfad /home/doc4design/var/cache/mod_pagespeed existiert? Wenn ja, kann Apache auf den Pfad zugreifen?

Überprüfen Sie, ob der Pfad existiert und gewähren Sie die Berechtigungen für www-data darauf, oder auf welchen Benutzer auch immer Apache läuft.

+2

Hey Fraser, das war das Problem. Ich hatte apache .htaccess Dateien, die versuchen, den FileCachePath zu setzen, aber es versuchte, den falschen Bediener zu konfigurieren. Mein Hosting-Provider, Webfaction, verwendet eigene Nginix- und Apache2.4-Server für die Bereitstellung von Apps, Medien und statischen Assets. Indem ich den Pfad innerhalb meiner httpd.conf-Datei innerhalb meines Apache2-Verzeichnisses direkt setzte, behob ich das Problem. – JBT

Verwandte Themen