php - texto - string strip_tags
PHP 5.4 después de la instalación: preg_match(): Compilación fallida: bit(s) de opción desconocida establecidos en el desplazamiento 0 (4)
Logré que PHP 5.4.1 funcionara con la versión PCRE 8.12 (que es la versión incluida en PHP 5.4.1, creo). Después de todo el ir y venir enumerados en los comentarios de la pregunta, decidí compilar PHP sin los indicadores de PCRE y dejar que PHP simplemente utilizara sus valores predeterminados. Al usar los valores predeterminados, compila con 8.12.
Ahora, una pregunta de seguimiento es, por supuesto, POR QUÉ sucede esto. Todavía esperaría que se compilara las 8.30 con PHP con las banderas que proporcioné. Pero, en este punto, estoy contento de que la cosa funcione.
Debajo están las opciones de configuración que tengo para trabajar en caso de que quieras probarlo desde tu final.
./configure /
--prefix=/usr /
--mandir=/usr/share/man /
--infodir=/usr/share/info /
--sysconfdir=/private/etc /
--with-apxs2=/usr/local/apache/bin/apxs /
--enable-cli /
--with-config-file-path=/etc /
--with-libxml-dir=/usr /
--with-openssl=/usr /
--with-kerberos=/usr /
--with-zlib=/usr /
--enable-bcmath /
--with-bz2=/usr /
--enable-calendar /
--with-curl=/usr /
--enable-dba /
--enable-exif /
--enable-ftp /
--with-gd /
--with-freetype-dir=/usr/X11/ /
--with-jpeg-dir=/usr /
--with-png-dir=/usr/X11/ /
--enable-gd-native-ttf /
--with-icu-dir=/usr /
--with-iodbc=/usr /
--with-ldap=/usr /
--with-ldap-sasl=/usr /
--with-libedit=/usr /
--enable-mbstring /
--enable-mbregex /
--with-mysql=mysqlnd /
--with-mysqli=mysqlnd /
--with-pdo-mysql=mysqlnd /
--with-mysql-sock=/var/mysql/mysql.sock /
--with-readline=/usr /
--enable-shmop /
--with-snmp=/usr /
--enable-soap /
--enable-sockets /
--enable-sysvmsg /
--enable-sysvsem /
--enable-sysvshm /
--with-tidy /
--enable-wddx /
--with-xmlrpc /
--with-iconv-dir=/usr /
--with-xsl=/usr /
--enable-zip /
--with-pgsql=/usr /
--with-pdo-pgsql=/usr /
--with-mcrypt=/usr
Recientemente actualicé mi PHP a la versión 5.4.1 en mi Lion OS X 64bit, me aparece un error en Codeigniter:
Severity: Warning
Message: preg_match(): Compilation failed: unknown option bit(s) set at offset 0
Filename: core/Utf8.php
Line Number: 44
Busqué en Google el problema, esto parece ser un problema con PCRE lib en PHP, bueno, seguí este tutorial que muestra instalar pcre con homebrew que hice (estoy ejecutando pcre 8.30) y esto no resolvió el problema.
Intenté buscar soluciones, pero no encontré una que me ayudara. ¿Existe algún método para solucionar este problema de PCRE lib?
EDITAR: Acabo de editar esta pregunta para recordarme cuál fue mi instalación:
./configure /
--prefix=/usr /
--mandir=/usr/share/man /
--infodir=/usr/share/info /
--sysconfdir=/private/etc /
--with-apxs2=/usr/sbin/apxs /
--enable-cli /
--with-config-file-path=/etc /
--with-libxml-dir=/usr /
--with-openssl=/usr /
--with-kerberos=/usr /
--with-zlib=/usr /
--enable-bcmath /
--with-bz2=/usr /
--enable-calendar /
--with-curl=/usr /
--enable-dba /
--enable-exif /
--enable-ftp /
--with-gd /
--with-freetype-dir=/usr/X11/ /
--with-jpeg-dir=/usr /
--with-png-dir=/usr/X11/ /
--enable-gd-native-ttf /
--with-icu-dir=/usr /
--with-iodbc=/usr /
--with-ldap=/usr /
--with-ldap-sasl=/usr /
--with-libedit=/usr /
--enable-mbstring /
--enable-mbregex /
--with-mysql=mysqlnd /
--with-mysqli=mysqlnd /
--with-pdo-mysql=mysqlnd /
--with-mysql-sock=/var/mysql/mysql.sock /
--with-readline=/usr /
--enable-shmop /
--with-snmp=/usr /
--enable-soap /
--enable-sockets /
--enable-sysvmsg /
--enable-sysvsem /
--enable-sysvshm /
--with-tidy /
--enable-wddx /
--with-xmlrpc /
--with-iconv-dir=/usr /
--with-xsl=/usr /
--enable-zip /
--with-pgsql=/usr /
--with-pdo-pgsql=/usr /
--with-mcrypt=/usr/local/lib
Mi solución estaba cerca de lo que @bigZero propuso.
No pude hacer que funcione en brew porque cuando traté de instalar pcre v8.12 en brew no fue posible porque fue (tal vez) borrado del repositorio. Quiero decir, se muestra en las brew versions pcre
pero cuando intenté instalarlo no se pudo descargar desde ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
Así que tuve que descargar el código fuente de pcre 8.12 de http://www.pcre.org , compilarlo e instalarlo. Utilicé la siguiente configuración: ./configure --prefix=/usr --enable-utf8 --enable-unicode-properties
Intenté recompilar php (en mi caso 5.4.10) sin la opción --with-pcre-regex
(como lo sugirió @ scott-harwell. Pero falló al compilar. Luego agregué --with-pcre-regex=/usr/
y finalmente funcionó.
Recompila httpd. Antes de eso, asegúrese de tener solo una versión de pcre en su sistema.
Resolví este problema actualizando PHP y PCRE en mi máquina Linux usando la yum update
.
PHP se actualizó a la versión 5.3.17 y PCRE se actualizó a la versión 8.21-5.3amzn1 (me estoy ejecutando en una instancia de Amazon EC2).