2016-07-12 13 views
1

Ich habe die Version von PHP7 verwendet, die für Fedora 23 in den Remositories verfügbar ist und es hat gut funktioniert. Ich habe kürzlich gefunden, dass ich PHP7 aus der Quelle kompilieren muss, um Pthreads zum Laufen zu bringen, was auch das Kompilieren von PHP mit der Option --enable-maintainer-zts erfordert. Ich habe jedoch festgestellt, dass egal, welche Optionen ich verwende, um PHP zu kompilieren, sie nicht verwendet werden, wenn PHP vom Betriebssystem ausgeführt wird. Wenn ich php -i im Terminal verwende, sehe ich, dass die Thread-Sicherheit ausgeschaltet ist und die anderen Optionen, die ich eingestellt habe, nicht aufgeführt sind. Ich habe die Remi-Version von PHP deinstalliert, aber das machte keinen Unterschied - dies führte jedoch zu einer seltsamen Situation, da PHP immer noch über PHP-FPM funktionierte, nachdem ich die Remi-Version von PHP von meinem Rechner entfernt hatte. Dies scheint mir zu bedeuten, dass ich die Version von PHP7 ausführe, die ich aus der Quelle erstellt habe, aber dass meine Direktiven ignoriert wurden. Wenn das nicht der Fall ist, habe ich keine andere Idee, wie das möglich ist, außer dass PHP nicht wirklich von meinem Rechner entfernt wurde, als ich DNF REMOVE PHP lief (und gleichzeitig die Version, die ich von Source installiert hatte, wurde ignoriert oder falsch installiert).Warum werden bei der Erstellung von PHP7 aus der Quelle meine Kompilierungsanweisungen ignoriert?

ich ein paar verschiedenen Build-Befehle verwendet habe, mit dem letzten Wesen:

./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=nginx --with-fpm-group=nginx --with-libdir=/usr/lib64/php-zts --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-maintainer-zts --enable-debug 

Wenn ich die Zeitstempel auf verschiedene Dateien für PHP zu untersuchen, haben die meisten bisher nicht das Datum/Zeit angepasst, das ich gebaut PHP aus der Quelle.

Hat jemand eine Intuition, was ich hier vermisse?

Antwort

0

Keine Notwendigkeit, die Pakete in remi (oder Fedora) Repository zu bauen haben Erweiterung ZTS bauen und pthreads, können Sie die zts-php-Befehl verwenden müssen (pthreads Erweiterung ist nur CLI)

# yum --enablerepo=remi-php70 install php-pecl-pthreads 
... 
# zts-php -m | grep thread 
pthreads 

Sie können prüfen, Die PECL extension RPM status in Remi-Repository (die zeigen Pthreads ist verfügbar)

+0

Wie installiere ich die Version von PHP7, die die ZTS-Konfigurationsoption aktiviert enthält? Ich habe bereits das php-pecl-pthreads-Paket installiert, aber das wird nicht die Thread-Option in PHP aktivieren, oder? Ich dachte, ich müsste diese Erweiterung installieren und Thread-Sicherheit in PHP selbst aktivieren. Alles, was ich bisher gefunden habe, sagt, dass ich PHP neu kompilieren muss - z. hier: http://stackoverflow.com/questions/17272439/how-to-enable-zts-on-php – tunist

+0

Wie oben erwähnt, Pakete in Remi-Repository haben ZTS-Build. Also php-cli Paket bietet die "php" (NTS) und die "ZTS-php" (ZTS = Thread Safe) -Befehl) –

+0

oh ok, gut, da ich noch nie 'Thread-Sicherheit' als aktiviert in der phpinfo () Ausgabeseite, ich dachte, dass Thread-Sicherheit nicht aktiviert ist. Ich habe gerade die Version von PHP7.0.8 neu installiert, die über das Remi Repo verfügbar ist, und ich sehe immer noch, dass Thread-Sicherheit in phpinfo() deaktiviert ist. Wenn ich den Befehl zts-php -m ausgeführt habe, habe ich über die Befehlszeile das Ergebnis 'Pthreads' erhalten. – tunist