Problem bei Einbindung von PageSpeed

Dieses Thema im Forum "Fragen zu Howtos" wurde erstellt von bobbybackblech, 26. Sep. 2014.

  1. Guten Morgen,

    ich bekomme einen Fehler beim build von nginx mit PageSpeed.
    nginx ist in Version 1.4.6 und PageSpeed die letzte Version v1.9.32.1-beta
    Folgenden Fehler bekomme ich:
    make: *** [config.status.full] Error 1
    dpkg-buildpackage: error: debian/rules build gave error exit status 2

    Meine rules sieht folgendermaßen aus:
    /usr/src/pagespeed/nginx-1.4.6/debian/rules

    Nun habe ich bspw. auch ein Tutorial auf DO gesehen ->
    https://www.digitalocean.com/commun...gx_pagespeed-module-to-nginx-in-debian-wheezy
    Hier wird bspw. PageSpeed mit direkt mit der Version eingebunden ( bspw. ngx_pagespeed-1.7.30.1-beta ) und nicht wie in dem Howtoforge Tutorial, wo hier die Version fehlt ( --add-module=$(MODULESDIR)/ngx_pagespeed \ )
    Kann das der Fehler sein ?
     
  2. Till

    Till Administrator

    Für Debian Wheezy würde ich den nginx einfach von dotdeb nehmen, der dotdeb nginx-full hat pagespeed mit drin. Das selbstkompilier Tutorial war notwendig als es noch keine fertigen pakete gab. Ansonsten hat das Tutorial von howtoforge bei mir funktioniert als ich es das letze mal verwendet habe. Aber Du kannst natürlich mal versuchen eine Versionsnumer anzugeben, vielleicht hat sich da beineueren nginx Versionen was geändert.
     
  3. Ah sorry das hatte ich oben vergessen :)
    Es wird Ubuntu 14.04.1 LTS genutzt.

    Ich werde das ganze einfach mal mit der Versionsnummer versuchen.
     
  4. Till

    Till Administrator

    Die Ursache Deines Problems ist dass Du nicht so au s dem Git ausgecheckt hast wie es im Howtoforge gudie beschrieben ist. Aus unserer Anleitung:
    git clone https://github.com/pagespeed/ngx_pagespeed.git

    das sorgt folglich dafür, dass das Verzeichnis "ngx_pagespeed" heißt und so ist es auch in den compile Nefehlen angegeben. Wenn Du jetzt natürlich eine andere Version als die stable Version auscheckst und GIt folglich einen anderen Verzeichnisnamen vergibt, dann must Du den Verzeichnisnamen auch in den Compile Befehlen überall anpassen.

    Es ist also sowohl das Howtoforge Tutorial korrekt als auch das von Digitalocean, da in beiden fällen der korrekte Pfad angegeben wird.
     
  5. Ich habe es per git clone gemacht, dass Verzeichnis heisst hier auch "pagespeed"

    /usr/src/pagespeed/nginx-1.4.6/debian/modules # ls -l
    ...
    drwxr-xr-x 6 root root 4096 Sep 25 12:41 ngx_pagespeed
    ....

    Die Versionsnummer hat nicht geholfen.

    Und mein build Befehl ist:
    cd /usr/src/pagespeed/nginx-1.4.6/ && dpkg-buildpackage -b
     
  6. nowayback

    nowayback Well-Known Member

    Ich hab es vor ein paar tagen erst mit der aktuellen Nginx Version 1.6.2 gebaut... vielleicht hilft es dir:

    Code:
    apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
    cd
    wget http://zlib.net/zlib-1.2.8.tar.gz
    tar xzvf zlib-1.2.8.tar.gz
    NPS_VERSION=1.9.32.1
    wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip
    unzip release-${NPS_VERSION}-beta.zip
    cd ngx_pagespeed-release-${NPS_VERSION}-beta/
    wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
    tar -xzvf ${NPS_VERSION}.tar.gz
    cd
    NGINX_VERSION=1.6.2
    wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
    tar -xvzf nginx-${NGINX_VERSION}.tar.gz
    cd nginx-${NGINX_VERSION}/
    ./configure \
                    --prefix=/etc/nginx \
                    --sbin-path=/usr/sbin/nginx \
                    --conf-path=/etc/nginx/nginx.conf \
                    --error-log-path=/var/log/nginx/error.log \
                    --http-log-path=/var/log/nginx/access.log \
                    --pid-path=/var/run/nginx.pid \
                    --lock-path=/var/run/nginx.lock \
                    --http-client-body-temp-path=/var/cache/nginx/client_temp \
                    --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
                    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
                    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
                    --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
                    --user=nginx \
                   --group=nginx \
                   --with-zlib=../zlib-1.2.8 \
                    --with-http_ssl_module \
                    --with-http_realip_module \
                    --with-http_addition_module \
                    --with-http_sub_module \
                    --with-http_dav_module \
                    --with-http_flv_module \
                    --with-http_mp4_module \
                    --with-http_gunzip_module \
                    --with-http_gzip_static_module \
                    --with-http_random_index_module \
                    --with-http_secure_link_module \
                    --with-http_stub_status_module \
                    --with-http_auth_request_module \
                    --with-mail \
                    --with-mail_ssl_module \
                    --with-file-aio \
                    --with-http_spdy_module \
                    --with-cc-opt="$(CFLAGS)" \
                    --with-ld-opt="$(LDFLAGS)" \
                    --with-ipv6 \
            --with-poll_module \
            --add-module=../ngx_pagespeed-release-${NPS_VERSION}-beta
    make
    make install
    Grüße
    nwb
     
  7. Wo kann man hier in dem Forum eigentlich den Code einfügen ?
    Sehe hier nichts im Editor.

    Habe gerade einmal nwb`s Variante versucht:

    Code:
    nginx -v
    nginx version: nginx/1.6.2
    
    service nginx restart
    * Restarting nginx nginx  [fail]
    root@h ~ # nginx -c /etc/nginx/nginx.conf -t
    [0926/102829:INFO:google_message_handler.cc(35)] No threading detected. Own threads: 1 Rewrite, 1 Expensive Rewrite.
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
    nginx: configuration file /etc/nginx/nginx.conf test failed
    /var/cache hat chmod 777

    In die nginx.conf habe ich lediglich noch
    Code:
    pagespeed on;
    pagespeed FileCachePath /var/ngx_pagespeed_cache;
    
    in den Server Block vor gzip eingefügt.

    Das Verzeichnis /var/ngx_pagespeed_cache habe ich natürlich angelegt und entsprechend die Rechte
    chown -R www-data:www-data /var/ngx_pagespeed_cache gegeben.
     
    Zuletzt bearbeitet: 26. Sep. 2014
  8. Till

    Till Administrator

    > Wo kann man hier in dem Forum eigentlich den Code einfügen ?
    Auf einfügen Button im Editor klicken und im dann aufklappenden menü "code" auswählen.
     
  9. OK habe es einmal geändert.

    Ich habe nun einmal das Verzeichnis angelegt, scheint nun zu funktionieren

    Code:
    /etc/nginx # mkdir /var/cache/nginx/
    root@h /etc/nginx # nginx -c /etc/nginx/nginx.conf -t
    [0926/105244:INFO:google_message_handler.cc(35)] No threading detected. Own threads: 1 Rewrite, 1 Expensive Rewrite.
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    root@h /etc/nginx # service nginx restart
    * Restarting nginx nginx                                                                                                                              [ OK ]
    
    Code:
    /etc/nginx # curl -I -p http://localhost|grep X-Page-Speed
    
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    
                                    Dload  Upload   Total   Spent    Left  Speed
    
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    
    X-Page-Speed: 1.9.32.1-4238
    Benötigt /var/cache/nginx/ spezielle Rechte bzw den www-data Nutzer ?
     
    Zuletzt bearbeitet: 26. Sep. 2014
  10. Till

    Till Administrator

    Schau mit:

    ps aux | grep nginx

    nach, unter welchem user nginx bei Dir läuft und dem User sollte dann auch das Verzeichnis gehören.
     
  11. Ich habe hier mehrere Prozesse, aber ich vermute mal, dass das Verzeichniss www-data:www-data gehören sollte ?

    Code:
    root     26488  0.0  0.0 104240  3344 ?        Ss   11:39   0:00 nginx: master process /usr/sbin/nginx
    www-data 26489  0.3  0.1 921852 37716 ?        Sl   11:39   0:02 nginx: worker process
    www-data 26490  0.1  0.0 847524 28576 ?        Sl   11:39   0:00 nginx: worker process
    www-data 26491  0.0  0.0 113204  6692 ?        Sl   11:39   0:00 nginx: worker process
    www-data 26492  0.1  0.0 772092 27072 ?        Sl   11:39   0:00 nginx: worker process
    root     26767  0.0  0.0  11744   920 pts/0    S+   11:50   0:00 grep --color=auto nginx
    Code:
    /var/cache/nginx # ls -l
    total 20
    drwx------ 2 www-data root 4096 Sep 26 10:52 client_temp
    drwx------ 2 www-data root 4096 Sep 26 10:52 fastcgi_temp
    drwx------ 2 www-data root 4096 Sep 26 10:52 proxy_temp
    drwx------ 2 www-data root 4096 Sep 26 10:52 scgi_temp
    drwx------ 2 www-data root 4096 Sep 26 10:52 uwsgi_temp
     
  12. Till

    Till Administrator

    Ja, www-data sieht gut aus.
     
  13. nowayback

    nowayback Well-Known Member

    Richtig. Das ist nur eine Info.
    www-data ist korrekt, erklären kann ich es jedoch nicht, da es eigentlich mit --user nginx und --group nginx gebaut werden sollte und sowohl user als auch gruppe angelegt sind. Könnte mit der nginx.conf zusammenhängen in der man ja user www-data angeben kann.
     
  14. Nun bekomme ich im error.log noch folgenden Fehler

    Code:
    2014/09/26 20:01:03 [info] 7006#0: pagespeed: rollback gzip, explicit configuration in /etc/nginx/nginx.conf:48
    Meine nginx.conf ist hier ->
    http://laravel.io/bin/wa090

    Google hat mir nichts über den Fehler ausgespukkt ...
     
  15. nowayback

    nowayback Well-Known Member

    Du hast gzip bereits in nginx aktiviert, deswegen gzipped pagespeed das nicht nochmal
     
  16. In ISPC habe ich bei den nginx Direktiven lediglich noch angegeben:

    Code:
    pagespeed EnableFilters combine_css;
    pagespeed EnableFilters collapse_whitespace;
    pagespeed EnableFilters make_google_analytics_async;
    pagespeed EnableFilters canonicalize_javascript_libraries;
    pagespeed EnableFilters remove_comments;
    pagespeed EnableFilters rewrite_images;
    pagespeed EnableFilters move_css_above_scripts;
    pagespeed EnableFilters move_css_to_head;
    pagespeed EnableFilters outline_css;
    pagespeed CssOutlineMinBytes 3000;
    Er sollte also eigentlich nicht zwei gzippen
     
  17. nowayback

    nowayback Well-Known Member

    es ist auch nur eine info, dass pagespeed das nicht macht und kein fehler. ich kann dir jetzt auf die schnelle leider nicht sagen ob pagespeed das generell ausgibt wenn es erkennt das schon von nginx gzip aktiviert ist oder ob die meldung erst kommt wenn ein entsprechender filter aktiviert wurde.
     

Diese Seite empfehlen