Problem bei Einbindung von PageSpeed

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 ?
 

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.
 
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.
 

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.
 
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
 

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
 
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:

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.
 
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:

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.
 
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
 

nowayback

Well-Known Member
[0926/105244:INFO:google_message_handler.cc(35)] No threading detected. Own threads: 1 Rewrite, 1 Expensive Rewrite.
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.
 
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 ...
 

nowayback

Well-Known Member
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
 

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.
 

Werbung

Top