Compilare și instalare PHP pe Mac OSX Ventura 13.1

De la YO3ITI
Sari la navigare Sari la căutare

Folosesc foarte mult mac-ul pentru dezvoltare, inclusiv dezvoltare web. O dată cu OSX Monterrey, Apple a renunțat să includă PHP în sistemul de operare, considerând PHP o vulnerabilitate ne-necesară. Ca atare, unicul mpd în care poți instala și folosi PHP este compilarea din surse. Mai jos etapele.

Descărcare surse

Se crează un folder pentru surse și se descarcă distribuția dorită. Acest exemplu include PHP 8.2.0

tom@MacBook-Pro-Miron src % pwd
/Users/tom/Downloads/php/src
tom@MacBook-Pro-Miron src %

Pentru descărcare utilizez curl

tom@MacBook-Pro-Miron src % man curl
curl(1)                                                           curl Manual                                                           curl(1)

NAME
       curl - transfer a URL

SYNOPSIS
       curl [options / URLs]

DESCRIPTION
       curl is a tool for transferring data from or to a server. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP,
       HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET or TFTP. The command is
       designed to work without user interaction.
:
tom@MacBook-Pro-Miron src % curl --location --output php-8.2.0.tar.gz https://www.php.net/distributions/php-8.2.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 19.1M  100 19.1M    0     0  7846k      0  0:00:02  0:00:02 --:--:-- 7865k
tom@MacBook-Pro-Miron src % ls -lsa
total 40696
    0 drwxr-xr-x  3 tom  staff        96 15 Dec 21:05 .
    0 drwxr-xr-x  3 tom  staff        96 15 Dec 20:43 ..
40696 -rw-r--r--  1 tom  staff  20054375 15 Dec 21:05 php-8.2.0.tar.gz
tom@MacBook-Pro-Miron src %
tom@MacBook-Pro-Miron src % tar -xzvf php-8.2.0.tar.gz
tom@MacBook-Pro-Miron src % cd php-8.2.0

Compilare PHP

Configurare și erori

Comanda ./configure crează un fișier Makefile necesar compilării surselor. Mai multe informații despre Makefile.

tom@MacBook-Pro-Miron php-8.2.0 % ./configure

Configurarea se va termina cu o eroare:

checking whether to build with LIBXML support... yes
checking for libxml-2.0 >= 2.9.0... no
configure: error: in `/Users/tom/Downloads/php/src/php-8.2.0':
configure: error: The pkg-config script could not be found or is too old.  Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.

Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See `config.log' for more details
tom@MacBook-Pro-Miron php-8.2.0 %

pkg-config nu este instalat:

tom@MacBook-Pro-Miron php-8.2.0 % which pkg-config
pkg-config not found

Compilare și instalare pkg-config

tom@MacBook-Pro-Miron src % curl https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz -o pkgconfig.tgz
tom@MacBook-Pro-Miron src % tar -zxf pkgconfig.tgz
tom@MacBook-Pro-Miron src % cd pkg-config-0.29
tom@MacBook-Pro-Miron pkg-config-0.29 % ./configure --with-internal-glib
tom@MacBook-Pro-Miron pkg-config-0.29 % make install

Instalare command line developer tools

tom@MacBook-Pro-Miron src % xcode-select --install

Odată cu versiunea OSX 10.14, Apple a încetat să mai includă header-ele în command line tools. Actualmente, SDK-ul este parte din pachetul XCode.app. Rădăcina se găsește cu comanda:

tom@MacBook-Pro-Miron src % xcrun --sdk macosx --show-sdk-path