wandenberg / redis_nginx_adapter

Adapter to use hiredis with async connections inside a nginx module
MIT License
27 stars 12 forks source link

configure error cannot find ngx_http.h #1

Closed itxx00 closed 8 years ago

itxx00 commented 10 years ago

Hello ,I followed the installation guide but when run configure the error happend like :

qq 20141104145755

and the nginx version was 1.4.7

ledzepp4eva commented 8 years ago

Hi, I am also running into this issue: configure: error: Couldn't find ngx_http.h... use the --with-nginx-dir to set the path with Nginx sources ./configure --with-nginx-dir=../../nginx-1.9.7 --with-hiredis-dir=/usr/include/hiredis/

ls -al ../../nginx-1.9.7/src/http/ngx_http.h -rw-r--r-- 1 nginx nginx 5847 Nov 17 14:50 ../../nginx-1.9.7/src/http/ngx_http.h

nikolay commented 8 years ago

@wandenberg Same issue here! It's a pity that such a great project lacks basic and clear instructions how to build and we have to switch to Varnish. :disappointed:

wandenberg commented 8 years ago

@nikolay Have you tried the installation steps? You have to execute the ./configure at nginx project first to create thr ngx_http.h and than run the configure of redis_nginx_adapter project something like

cd ~/nginx && ./configure
cd ~/redis_nginx_adapter && ./configure --with-nginx-dir=~/nginx --with-hiredis-dir=/opt && make && make install
nikolay commented 8 years ago

@wandenberg It doesn't work as if I do this, then the Selective Cache Purge fails, because the adapter is missing.

nikolay commented 8 years ago

@wandenberg Oh, you mean, literarry run just ./configure in Nginx without any parameters? Wow, I feel stupid. Let me try!

nikolay commented 8 years ago

@wandenberg Thank you very much! Sometimes we should take things literary!

wandenberg commented 8 years ago

@nikolay don't feel like that. This was the only way I could find to break the dead lock. To compile redis_nginx_adapter you need some headers created during the nginx configuration. To compile nginx with Selective Cache Purge you need the redis_nginx_adapter. So you need this extra step to configure a plain nginx, configure and install redis_nginx_adapter, and then configure nginx again using redis_nginx_adapter and Selective Cache Purge :)

ja1cul commented 8 years ago

In my case , configure cannot find ngx_http.h in nginx-1.11.1 . The configure wants to include src/http/ngx_http.h. src/http/ngx_http.h includes . But the configure cannot find that. So I changed the configure file like below.

diff --git a/configure b/configure index 35a1228..b56aca9 100755 --- a/configure +++ b/configure @@ -12210,6 +12210,7 @@ -I $nginx_dir/src/os/unix \ -I $nginx_dir/src/event \ -I $nginx_dir/src/http/modules \

wandenberg commented 8 years ago

@ja1cul as I explained before and in the readme, you must configure the nginx and then configure the redis_nginx_adapter. Try the following

mkdir /tmp/build
cd /tmp/build/
wget -c -N http://nginx.org/download/nginx-1.11.1.tar.gz; tar xzf nginx-1.11.1.tar.gz;
git clone https://github.com/wandenberg/redis_nginx_adapter.git
cd nginx-1.11.1/
./configure
cd ../redis_nginx_adapter
autoreconf --force --install # may be necessary if you are using a different version of autotools
./configure --with-nginx-dir=../nginx-1.11.1
make 
ls -l .libs/*
ja1cul commented 8 years ago

Hi wanderbuerg. Finally understand. I should configure without any options.

Thank you very much for your help. And sorry for missing upper comments.