quick and dirty build instructions #1760
Comments
Thank you for the effort However, no link on tiredofit.nl works |
eilander@build:/tmp$ wget http://www.tiredofit.nl/psol-jammy.tar.xz psol-jammy.tar.xz 100%[========================================================================================>] 9.93M 44.1MB/s in 0.2s strange, seems to work here |
Thank you, now it downloaded psol-jammy. I assume to download focal/bionic/xenial you just have to change "jammy" to one of those keywords? If so, all other 3 are 404 Example focal:
|
As http yes, it does work. Only psol-jammy.tar.xz is there though |
The issue was, jammy is tar.xz, the others where tar.gz. I recompressed everything with .xz as it's easier to build some kind of script, updated the instructions to reflect that. I'll still maintain the tar.gz versions for links that are out of my control |
--2022-10-20 15:50:59-- http://www.tiredofit.nl/psol-$%7BPSOL%7D.tar.xz |
Are you litterally trying to get "http://www.tiredofit.nl/psol-${PSOL}.tar.xz" ? That won't work. Are you running in sh or bash? otherwise try replacing ${PSOL} by psol-focal.tar.xz |
@eilandert thanks, working Ubuntu 22.04 |
@eilandert thanks, Rocky Linux 9 |
You are a lifesaver! All is good for Nginx 1.23.2 & Ubuntu 22.04. Thank you very much indeed. |
Thanks for confirming folks. My only worry is that psol package tiredofit.nl, we should trust @eilandert blindly with this? Tested and it works and fixes the issue #1762 as well. This most probably fixes all the issues: #1758 #1757 #1756 #1749 #1752. Always best if there would be an official package but one can wish... this repository has been in slumber for a while now. I just dirty-loaded the module like this in /etc/nginx/nginx.conf: load_module /home/rolle/nginx-1.23.2/objs/ngx_pagespeed.so; Nginx has been installed with apt from official repository. $ nginx -V
nginx version: nginx/1.23.2
built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
built with OpenSSL 1.1.1f 31 Mar 2020
TLS SNI support enabled
configure arguments: --with-compat --add-dynamic-module=../incubator-pagespeed-ngx --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-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module |
@eilandert So you managed to build PSOL from source in the same environment / machine? Any patches required? Would be very valuable if you can also share instructions for building PSOL from ssource. Thanks so much... My nginx is up and running with pagespeed now. |
I build those psols with docker so I have clean environments, I just uploaded my scripts to https://github.com/eilandert/build_psol. |
Ofcourse not, you can always build PSOL yourself, my setup is merely a proof of concept that a new glibc or nginx is not the end of PageSpeed, I wanted to give a solution to all those open questions for two simple fixes. It's a shame there seems to be no development at all since the move to the bazel buildsystem (which I never got to work myself, so I am stuck on the last working commit, 409bd76). |
@eilandert There were no build scripts so we used your prebuilt, thanks for that.
Second to this. I'm sure many use ngx_pagespeed. I hope we'll have a maintainer in the future. |
Would you be willing to write a tutorial for people to build their own PSOL instead of using |
Hi @ronilaukkarinen , I have posted my buildprocess on https://github.com/eilandert/build_psol |
Oh, right. Sorry, missed that. Thanks @eilandert for your hard work! 👍 |
I'm a relatively clueless noob who has managed to build a well functioning web server on a raspberry pi. My question is, will your build scripts/ build process work for compiling ARM64 PSOL binaries? If so, where exactly do I start? thanks for your work! |
I have no experience with ARM or crosscompiling, however it should be possible. But my script fetches AMD64 dockers to compile so thats a no go. Also, I have some tweaks for compiling on newer GLIBC, I don't know if that applies for ARM too. This git repo has done it, precompiled and with instructions to build it yourself all below the page: https://gitlab.com/gusco/ngx_pagespeed_arm . If you are going to build for yourself I think you need to do the git reset --hard thingie I have in my script. |
On popular demand, build instructions
This should take care of both the glibc issue and the changed api in nginx 1.23.0+
This PSOL library is build from git, commit 409bd76 and is numbered 1.15.0.0-8917
(after commit 409bd76/11 apr 2020 I can't build PSOL anymore because of the move to Bazel, never got that to work)
Don't forget builddependencies like uuid-dev (apt install uuid-dev)
If you are on a newer glibc (2.33+) you need psol-jammy.tar.xz, if you are on an older glibc you can try psol-focal.tar.xz, psol-bionic.tar.xz, psol-xenial.tar.xz or even psol-trusty.tar.xz. The ubuntu name indicates on which system I compiled the library, you can use it on debian, centos or whatever distro, you are not limited to ubuntu. (but you are limited to x64)
You can use any combination of NGINX_VERSION and PSOL.
#!/bin/sh
NGINX_VERSION="1.23.1"
PSOL="jammy"
mkdir -p /opt/build-pagespeed
cd /opt/build-pagespeed
wget https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
wget http://www.tiredofit.nl/psol-${PSOL}.tar.xz
git clone --depth=1 https://github.com/apache/incubator-pagespeed-ngx.git
tar xvf psol-${PSOL}.tar.xz
mv psol incubator-pagespeed-ngx
tar zxvf nginx-${NGINX_VERSION}.tar.gz
cd nginx-${NGINX_VERSION}
./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx
make modules
If you do: ls objs
you should see ngx_pagespeed.so
How to handle the .so is left as exercise for the reader.
If there is any error or missing dependency, you should be able to figure it out from objs/autoconf.err
I have precompiled packages here: https://deb.myguard.nl/nginx-modules/ (debian and ubuntu)
Launchpad (ubuntu only): https://launchpad.net/~eilander/+archive/ubuntu/nginx.
Docker: https://hub.docker.com/r/eilandert/nginx-modsecurity3-pagespeed
My contact information is also on those links
The text was updated successfully, but these errors were encountered: