I encountered the following error in Nginx.
$./nginx
./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
$
If you are getting the above error while starting Nginx, you can fix it by following.
This happens due to the following three reasons.
- You don’t have PCRE installed
- Nginx was not compiled & installed using
pcre
- PCRE library is not set in
LD_LIBRARY_PATH
There are multiple ways to troubleshoot and fix this issue. Let’s understand the error and fix it accordingly.
nginx: error while loading shared libraries: libpcre.so.1
Nginx is looking for a file libpcre.so.1
which comes under the PCRE library and usually installed on UNIX.
Let’s find libpcre.so.1
using find command
$find / -name libpcre.so.1
/usr/local/lib/libpcre.so.1
$
Ok, so I do have this file which means PCRE is already installed and will proceed with the next troubleshooting step.
Note: If you don’t get find results then you got to install PCRE with the below command.
yum install pcre
If you don’t have root privilege, then you may ask the system administrator to install it.
Now, let’s set LD_LIBRARY_PATH as we could see libpcre.so.1
is available under /usr/local/lib
$export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Start Nginx, it should be right now.
Interested in learning Nginx? Check out this course.