GNU/Linux >> Znalost Linux >  >> Arch Linux

Jak kompilovat PHP7.0/PHP7.1 ze zdroje na Arch Linuxu

Tento tutoriál vám ukáže, jak zkompilovat PHP7.0/PHP7.1 na Arch Linux a nainstalovat jej spolu s PHP7.2. Arch Linux je postupná distribuce s nejnovějším a nejlepším softwarem. PHP7.2 přistálo v úložišti Arch Linux. Některé webové aplikace, jako je WordPress, fungují dobře s PHP7.2, ale jiné jako NextCloud v současnosti PHP7.2 nepodporují. Nadcházející verze NextCloud – NextCloud 13 – je údajně kompatibilní s PHP7.2.

Včera jsem provedl upgrade na mém serveru Arch Linux, což mělo za následek nahrazení PHP7.1 PHP7.2 a moje webové rozhraní NextCloud přestalo fungovat. AUR (Arch User Repository) poskytuje PHP7.0. Zkoušel jsem to nainstalovat pomocí Yaourt, ale ověření podpisu se nezdařilo, takže mi nezbylo nic jiného, ​​než PHP7.0/PHP7.1 zkompilovat sám.

Jak zkompilovat PHP7.0/PHP7.1 na Arch Linuxu

Nejprve upgradujte veškerý software.

sudo pacman -Syu

Nainstalujte si wget a stáhněte si zdrojový kód PHP. Používám nejnovější verzi PHP7.0. Nahraďte číslo verze svou preferovanou verzí.

sudo pacman -S wget

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

Extrahujte tarball.

tar xvf php-7.0.26.tar.gz

Cd do nově vytvořeného adresáře.

cd php-7.0.26

Nainstalujte sestavení nástroje a závislosti.

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

Nakonfigurujte prostředí pomocí následujících parametrů. Zkopírujte celý příkaz a vložte jej do okna terminálu.

./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

Až bude hotovo, zkompilujme PHP7 pomocí příkazu make. Nahraďte 2 počtem jader CPU na vašem počítači. Ve výchozím nastavení make používá 1 jádro, můžete proces kompilace urychlit použitím všech dostupných jader.

make -j2

Proces kompilace může nějakou dobu trvat, v závislosti na výkonu vašeho procesoru. Po dokončení spusťte test.

make test

Nyní nainstalujte PHP. Instalační adresář je /opt/php-7.0.26/ .

sudo make install

Na snímku obrazovky vidíme, že binární PHP-FPM je nainstalováno do /opt/php-7.0.26/sbin/ a konfigurační adresář PHP-FPM je /opt/php-7.0.26/etc/ . Před spuštěním PHP-FPM musíme vytvořit konfigurační soubor PHP-FPM. Existují dva vzorové konfigurační soubory, takže je můžeme pouze zkopírovat.

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

Upravte www.conf konfigurační soubor.

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

Ve výchozím nastavení PHP-FPM naslouchá na TCP socketu 127.0.0.1:9000, můžeme jej přimět naslouchat na Unix socketu. Najděte následující řádek.

listen = 127.0.0.1:9000

Přidejte středník na začátek, abyste to okomentovali. Poté pod něj přidejte následující řádek.

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

Dále najděte následující 3 řádky a odkomentujte je.

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

Uložte a zavřete soubor. Dále zkopírujte soubor php.ini.

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

Upravte soubor.

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

Přidejte následující na konec souboru.

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

Uložte a zavřete soubor. Nyní můžeme spustit PHP-FPM pomocí:

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

Vytvořit Systemd Service Unit

Vytvořte servisní jednotku Systemd pro PHP7.0.

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

Zkopírujte a vložte následující řádky do souboru.

[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

Uložte a zavřete soubor. Nyní můžeme zabít aktuálně běžící PHP7.0-FPM a spustit jej přes systemd. Najděte PID hlavního procesu PHP7.0-FPM.

ps aux | grep php-fpm

Jak vidíte, PID je na mém stroji 5066. Takže to můžu zabít pomocí:

sudo kill 5066

Všimněte si, že binární soubor PHP7.2-FPM se také jmenuje php-fpm .Pokud používáte pkill php-fpm , pak se PHP7.2-FPM i PHP7.0-FPM zastaví. Nyní spusťte php7.0-fpm přes systemd.

sudo systemctl start php7.0-fpm

Povolit automatické spouštění při spouštění.

sudo systemctl enable php7.0-fpm

Zkontrolujte jeho stav.

systemctl status php-fpm

Nechte Nginx používat PHP7.0-FPM

Chcete-li, aby Nginx používal PHP7.0 místo PHP7.2, otevřete soubor bloku serveru Nginx a najděte následující řádek.

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

Změňte jej na

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

Může existovat více než jeden výskyt tohoto řádku. Musíte je změnit všechny. Poté vytvořte http (uživatel webového serveru na Arch Linuxu) jako vlastník /run/php-fpm/php7.0-fpm.sock soubor.

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

Otestujte konfiguraci Nginx.

sudo nginx -t

Pokud bude test úspěšný, znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

A je to! Doufám, že vám tento tutoriál pomohl zkompilovat PHP7.0/7.1 ze zdroje na Arch Linuxu. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje a získejte další užitečné tipy a triky.


Arch Linux
  1. Jak zkompilovat Brotli ze zdroje na Ubuntu 18.04 LTS

  2. Jak zkompilovat Brotli ze zdroje na CentOS 7

  3. Jak kompilovat Brotli Compression Tool ze zdroje na Debianu 9

  1. Jak zkompilovat nástroj pro kompresi Brotli ze zdroje na Fedoře 29

  2. Jak používat Pacman na Arch Linuxu

  3. Jak ignorovat balíček z upgradu v Arch Linuxu

  1. Jak nainstalovat Arch Linux

  2. Jak nainstalovat PHP na Linux Mint 19

  3. Jak zkompilovat a nainstalovat software ze zdrojového kódu na Linuxu