GNU/Linux >> LINUX-Kenntnisse >  >> Arch Linux

So kompilieren Sie PHP7.0/PHP7.1 aus dem Quellcode unter Arch Linux

Dieses Tutorial zeigt Ihnen, wie Sie PHP7.0/PHP7.1 unter Arch Linux kompilieren und neben PHP7.2 installieren. Arch Linux ist eine Rolling-Release-Distribution mit der neuesten und besten Software. PHP7.2 ist im Arch Linux-Repository gelandet. Einige Webanwendungen wie WordPress funktionieren gut mit PHP7.2, aber andere wie NextCloud unterstützen derzeit PHP7.2 nicht. Die kommende NextCloud-Version – NextCloud 13 – soll mit PHP7.2 kompatibel sein.

Gestern habe ich ein Upgrade auf meinem Arch-Linux-Server durchgeführt, was dazu führte, dass PHP7.2 PHP7.1 ersetzte und meine NextCloud-Weboberfläche nicht mehr funktionierte. Das AUR (Arch User Repository) stellt PHP7.0 bereit. Ich habe versucht, es mit Yaourt zu installieren, aber die Signaturüberprüfung ist fehlgeschlagen, sodass mir keine andere Wahl blieb, als PHP7.0/PHP7.1 selbst zu kompilieren.

Wie man PHP7.0/PHP7.1 auf Arch Linux kompiliert

Aktualisieren Sie zuerst die gesamte Software.

sudo pacman -Syu

Installieren Sie wget und laden Sie den PHP-Quellcode herunter. Ich verwende die neueste Version von PHP7.0. Ersetzen Sie die Versionsnummer durch Ihre bevorzugte Version.

sudo pacman -S wget

wget http://php.net/distributions/php-7.0.26.tar.gz

Extrahieren Sie den Tarball.

tar xvf php-7.0.26.tar.gz

Cd in das neu erstellte Verzeichnis.

cd php-7.0.26

Build-Tools und Abhängigkeiten installieren.

sudo pacman -S gcc make bison gawk re2c libxml2 libwebp freetype2 c-client libmcrypt libxslt

Konfigurieren Sie die Umgebung mit den folgenden Parametern. Kopieren Sie den gesamten Befehl und fügen Sie ihn in Ihr Terminalfenster ein.

./configure \
--prefix=/opt/php-7.0.26                      \
--with-config-file-path=/opt/php-7.0.26/etc   \
--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-pdo-mysql                             \
--with-mysqli                                \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-jpeg-dir=/usr                         \
--with-png-dir=/usr                          \
--enable-gd-native-ttf                       \
--with-openssl                               \
--with-fpm-user=http                         \
--with-fpm-group=http                        \
--enable-ftp                                 \
--with-imap                                  \
--with-imap-ssl                              \
--with-kerberos                              \
--with-gettext                               \
--with-xmlrpc                                \
--with-xsl                                   \
--enable-opcache                             \
--enable-fpm

Wenn es fertig ist, kompilieren wir PHP7 mit dem Befehl make. Ersetzen Sie 2 durch die Anzahl der CPU-Kerne auf Ihrem Computer. Standardmäßig make 1 Kern verwendet, können Sie den Kompilierungsprozess beschleunigen, indem Sie alle verfügbaren Kerne verwenden.

make -j2

Der Kompiliervorgang kann je nach CPU-Leistung einige Zeit in Anspruch nehmen. Führen Sie nach Abschluss einen Test durch.

make test

Installieren Sie nun PHP. Das Installationsverzeichnis ist /opt/php-7.0.26/ .

sudo make install

Aus dem Screenshot können wir sehen, dass die PHP-FPM-Binärdatei unter /opt/php-7.0.26/sbin/ installiert ist und das PHP-FPM-Konfigurationsverzeichnis ist /opt/php-7.0.26/etc/ . Bevor wir PHP-FPM ausführen, müssen wir die PHP-FPM-Konfigurationsdatei erstellen. Es gibt zwei Beispielkonfigurationsdateien, also können wir sie einfach kopieren.

sudo cp /opt/php-7.0.26/etc/php-fpm.conf.default /opt/php-7.0.26/etc/php-fpm.conf

sudo cp /opt/php-7.0.26/etc/php-fpm.d/www.conf.default /opt/php-7.0.26/etc/php-fpm.d/www.conf

Bearbeiten Sie die www.conf Konfigurationsdatei.

sudo nano /opt/php-7.0.26/etc/php-fpm.d/www.conf

Standardmäßig lauscht PHP-FPM auf TCP-Socket 127.0.0.1:9000, wir können es dazu bringen, auf Unix-Socket zu lauschen. Suchen Sie die folgende Zeile.

listen = 127.0.0.1:9000

Fügen Sie am Anfang ein Semikolon hinzu, um es auszukommentieren. Fügen Sie dann darunter die folgende Zeile hinzu.

listen = /run/php-fpm/php7.0-fpm.sock

Suchen Sie als Nächstes die folgenden 3 Zeilen und kommentieren Sie sie aus.

;listen.owner = http
;listen.group = http
;listen.mode = 0660

Speichern und schließen Sie die Datei. Als nächstes kopieren Sie die Datei php.ini.

sudo cp ~/php-7.0.26/php.ini-production /opt/php-7.0.26/etc/php.ini

Bearbeiten Sie die Datei.

sudo nano /opt/php-7.0.26/etc/php.ini

Fügen Sie am Ende der Datei Folgendes hinzu.

include_path = "/opt/php-7.0.26/lib/php"

Speichern und schließen Sie die Datei. Jetzt können wir PHP-FPM starten mit:

sudo /opt/php-7.0.26/sbin/php-fpm

Systemd Service Unit erstellen

Systemd-Diensteinheit für PHP7.0 erstellen.

sudo nano /etc/systemd/system/php7.0-fpm.service

Kopieren Sie die folgenden Zeilen und fügen Sie sie in die Datei ein.

[Unit]
Description=The PHP FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/run/php-fpm/php7.0-fpm.pid
ExecStart=/opt/php-7.0.26/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.0.26/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Jetzt können wir das aktuell laufende PHP7.0-FPM beenden und es über systemd ausführen. Finden Sie die PID des PHP7.0-FPM-Master-Prozesses.

ps aux | grep php-fpm

Wie Sie sehen können, ist die PID auf meinem Rechner 5066. Also kann ich es töten mit:

sudo kill 5066

Beachten Sie, dass die PHP7.2-FPM-Binärdatei auch php-fpm heißt .Wenn Sie pkill php-fpm verwenden , dann werden sowohl PHP7.2-FPM als auch PHP7.0-FPM gestoppt. Starten Sie nun php7.0-fpm über systemd.

sudo systemctl start php7.0-fpm

Autostart beim Booten aktivieren.

sudo systemctl enable php7.0-fpm

Überprüfen Sie den Status.

systemctl status php-fpm

Nginx PHP7.0-FPM verwenden

Damit Nginx PHP7.0 anstelle von PHP7.2 verwendet, öffnen Sie die Nginx-Serverblockdatei und suchen Sie die folgende Zeile.

fastcgi_pass unix:/run/php-fpm/php-fpm.sock;

Ändern Sie es in

fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;

Es kann mehr als eine Instanz dieser Zeile geben. Sie müssen alle ändern. Dann machen Sie http (der Webserver-Benutzer auf Arch Linux) als Eigentümer von /run/php-fpm/php7.0-fpm.sock Datei.

sudo chown http:http /run/php-fpm/php7.0-fpm.sock

Nginx-Konfiguration testen.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Das ist es! Ich hoffe, dieses Tutorial hat Ihnen geholfen, PHP7.0/7.1 aus dem Quellcode unter Arch Linux zu kompilieren. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere nützliche Tipps und Tricks zu erhalten.


Arch Linux
  1. So kompilieren Sie Brotli aus der Quelle unter Ubuntu 18.04 LTS

  2. So kompilieren Sie Brotli aus der Quelle unter CentOS 7

  3. So kompilieren Sie das Brotli-Komprimierungstool aus der Quelle unter Debian 9

  4. So installieren Sie PHP unter Linux Mint 19

  5. So kompilieren und installieren Sie Software aus dem Quellcode unter Linux

So installieren Sie Virtualbox in Arch Linux

So installieren Sie Software von der Quelle in Linux

So verbinden Sie das iPhone mit Arch Linux

So installieren Sie Skype unter Arch Linux

So installieren Sie Java unter Arch Linux

So kompilieren Sie den Linux-Kernel aus der Quelle, um einen benutzerdefinierten Kernel zu erstellen