使用 pcre 支持重建 uwsgi

在运行 uwsgi 时,我得到了以下信息:

!!! no internal routing support, rebuild with pcre support !!!

我已经用下面的命令安装了 pcre (我认为) :

sudo apt-get install libpcre3 libpcre3-dev

为什么我仍然得到这个消息,即使我已经安装了 pcre软件包,如果我需要重新安装 uwsgi和激活 pcre,我该怎么做?

还有,内部路由很重要吗?

我认为是这样的,否则 uwsgi的制造商不会让这个信息出现。我正在运行 Ubuntu 12.04 LTS

53192 次浏览

Did you try:

pip install uwsgi -I

The -I flag will force it to reinstall

pip install uwsgi -I

Won't recompile the uwsgi binary, it just reinstalls the python egg. You need to rebuild the uwsgi binary with the pcre libraries.

sudo apt-get install libpcre3 libpcre3-dev

I think the easiest way is just to uninstall uwsgi and then run the pip installer again.

pip uninstall uwsgi
sudo apt-get remove uwsgi

then

pip install uwsgi

you should see pip run the setup.py script and a bunch of compiler messages. The last message should show you something like this:

################# uWSGI configuration #################


pcre = True
kernel = Linux
malloc = libc
execinfo = False
ifaddrs = True
ssl = True
zlib = True
locking = pthread_mutex
plugin_dir = .
timer = timerfd
yaml = embedded
json = False
filemonitor = inotify
routing = True
debug = False
capabilities = False
xml = libxml2
event = epoll


############## end of uWSGI configuration #############

notice how pcre = true now

pip install uwsgi -I --no-cache-dir

It reinstalls (-I) as @leech said, but ignores the compiled cache (--no-cache-dir) and recompiles the thing with the new libs.

pip uninstall uwsgi


sudo apt-get install libpcre3 libpcre3-dev


pip install uwsgi

I solved it with the above commands.

If you have tried all above but it is still have the same error and with the below ones, please check your command parameters, particular the --http-socket /path/to/your.sock. That is the path = '/path/to' must be existed

thunder lock: disabled (you can enable it with --thunder-lock)
bind(): No such file or directory [core/socket.c line 230]

Completing @alanjds answer, following is the process to add pcre support to your already installed uWSGI.

sudo apt-get install libpcre3 libpcre3-dev
pip install uwsgi -I --no-cache-dir

You do not need to uninstall uWSGI

For those who want to fix this on amazon linux 2 or any red hat family distros

First, Uninstall the uwsgi package

pip uninstall uwsgi

Then, Install pcre and pcre-devel

yum install pcre pcre-devel

Then, Reinstall the uwsgi package

pip install uwsgi

Maybe you can check the uid & gid, I got this ERROR when I set them wrong.