I am attempting to run a regex on my site, and I am getting this response:
Compilation failed: support for \P, \p, and \X has not been compiled at offset 1
After googling for a bit, I've found that apparently my PCRE on my server is not UTF8 enabled, and is therefore causing problems. When I ssh with pcretest -C I get
PCRE version 6.6 06-Feb-2006
Comp开发者_开发百科iled with UTF-8 support No Unicode properties support Newline character is LF Internal link size = 2 POSIX malloc threshold = 10
Default match limit = 10000000 Default recursion depth limit = 10000000 Match recursion uses stack
When I do yum update pcre it tells me that there isn't anything to update.
People are telling me that I can turn on UTF-8 support...help?
I am a noob.
There's a good tutorial on rebuilding the RPM for pcre here.
If you scroll down to "Updated RPM file for..." you'll find some pre-built RPM's if you just want it to work (remember to restart Apache after you're done, not just a graceful reload).
The tl;dr version is: recompile pcre with --enable-utf8
and --enable-unicode-properties
Yum should now find v6.6.6.el5_6.1
of PCRE in its repositories, so performing a yum update pcre
resolved the issue for me on Centos 5.
PHP doesn't use the "pcre" application/package. PCRE support is built in to the PHP libraries. The error you're getting is telling you that your PHP libraries were not compiled with PCRE UTF-8 support.
You'll need to recompile PHP with the proper PCRE static library built with the proper UTF-8 option.
精彩评论