2017-09-15 111 views
4

我試圖限制自己在堆棧溢出時詢問太多問題,但我一直試圖在我的Apache2服務器上啓用mod_pagespeed數日,現在已準備好開始拔出我的頭髮。我安裝了mod_pagespeed和mod_pagespeed_ap24,但我只需要mod_pagespeed_ap24用於我的Apache2版本。我編輯Apache的在/apache2/conf/httpd.conf配置加載模塊中Mod_pagespeed已啓用。 FileCachePath不能爲空:

LoadModule pagespeed_module modules/mod_pagespeed_ap24.so 

我成功地重新啓動服務器,卻得到了一個502網關,並且這種錯誤

[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 

我試過多次次在linux中編輯mod_pagespeed的配置文件,但沒有任何工作。因此,我在Webfaction上創建了一個靜態/ php/cgi的符號鏈接,通過Apache服務器而不是他們的nginix服務器來服務我的媒體,所以我可以使用.htaccess文件來配置我的Apache服務器。不過,我仍然得到這個問題。

.htaccess文件

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

您是通過deb或source安裝的嗎?當我部署'Mod_Pagespeed'時,我安裝了'deb'並使用'sudo a2enmod pagespeed'。 Mod pagespeed會自動將一個conf文件放入'mods-available'中,這樣我就可以使用一個簡單的'a2enmod'。 一個簡短的問題,文件路徑是否存在(文件夾本身)爲你的'FileCachePath'參數? –

+1

你可能在https://serverfault.com上有更好的運氣,而不是在這裏 - 嚴格來說這不是一個與編程有關的問題。 – Fraser

回答

2

確實存在/home/doc4design/var/cache/mod_pagespeed的路徑?如果可以的話,Apache可以訪問路徑嗎?

確認路徑存在並將權限授予www-data,或者運行哪個用戶apache。

+2

嘿弗雷澤,最終成爲了這個問題。我有apache .htaccess文件試圖設置FileCachePath,但它試圖配置錯誤的服務器。我的託管服務提供商Webfaction使用自己的Nginix和Apache2.4服務器來提供應用程序,媒體和靜態資產。通過在我的Apache2目錄中的httpd.conf文件中直接設置路徑,它解決了問題。 – JBT