Instalarea serverului web Apache și PHP pe MacOS
Instalarea serverului web Apache și PHP pe Mac OS diferă oarecum de procesul de instalare pe Windows. În primul rând, trebuie menționat că Mac OS are deja Apache integrat. Totuși, începând cu versiunea macOS Monterey, PHP a fost eliminat din sistemul de operare, fiind instalat implicit în versiunile anterioare.
În plus, configurarea serverului web integrat poate fi complicată, iar unele pachete pot lipsi. În acest caz, este mai convenabil să utilizăm managerul de pachete Homebrew, care facilitează considerabil instalarea și configurarea tuturor componentelor necesare. Așadar, vom analiza instalarea și configurarea Apache și PHP folosind Homebrew.
Mai întâi, trebuie să instalăm managerul de pachete Homebrew prin terminal, utilizând comanda:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Pentru a ne asigura că Homebrew este instalat, putem verifica versiunea acestuia cu următoarea comandă:
brew --version
Terminalul ar trebui să afișeze ceva de genul:
Homebrew 3.3.1 Homebrew/homebrew-core (git revision 1362c572e16; last commit 2021-10-29)
Apoi instalăm PHP cu următoarea comandă:
brew install php
Instalăm serverul web Apache cu următoarea comandă:
brew install httpd
După instalarea serverului web Apache, verificăm funcționalitatea acestuia. Îl pornim cu următoarea comandă:
brew services start httpd
Dacă serverul web pornește cu succes, putem accesa adresa http://localhost:8080 în browser. Browserul ar trebui să afișeze mesajul "It works!".

Configurarea Apache
Acum configurăm Apache. Trebuie să modificăm fișierul de configurare al serverului web. Locația fișierului de configurare diferă în funcție de arhitectura Mac:
- Pentru arhitectura Intel: /usr/local/etc/httpd/httpd.conf
- Pentru arhitectura Apple M1: /opt/homebrew/etc/httpd/httpd.conf
Pentru a modifica fișierul, vom folosi un editor de text. Putem utiliza editorul de text integrat, cum ar fi TextEdit.
Dacă arhitectura este Intel, introducem în terminal următoarea comandă:
open -e /usr/local/etc/httpd/httpd.conf

Dacă arhitectura este Apple M1, introducem în terminal următoarea comandă:
open -e /opt/homebrew/etc/httpd/httpd.conf
Mai întâi, modificăm portul - implicit este 8080. Găsim următoarea linie:
Listen 8080
Parametrul Listen indică portul la care serverul web va asculta. Îl înlocuim cu următoarea linie:
Listen 80
Apoi configurăm folderul pentru fișierele serverului web. Implicit, acesta este folderul "/usr/local/var/www". Îl modificăm.
Creăm în folderul utilizatorului curent un nou folder, pe care îl numim localhost. De exemplu, dacă utilizatorul meu se numește fdc, folderul documentelor serverului web va avea calea Users/fdc/localhost. Setăm acest folder ca director pentru fișierele serverului web.
Important: folderul localhost trebuie să fie deschis pentru citire și scriere, altfel Apache nu va putea lucra cu el. Putem deschide accesul la folder din proprietățile acestuia.
Dacă arhitectura este Intel, găsim în fișier următoarele linii:
DocumentRoot "/usr/local/var/www"
<Directory "/usr/local/var/www">
Dacă arhitectura este Apple M1, găsim în fișier următoarele linii:
DocumentRoot "/opt/homebrew/var/www"
<Directory "/opt/homebrew/var/www">
Parametrii DocumentRoot și Directory indică directorul fișierelor serverului web. Îi modificăm, specificând directorul creat de noi:
DocumentRoot "/Users/fdc/localhost"
<Directory "/Users/fdc/localhost">
Reamintesc că în loc de "fdc" va fi numele utilizatorului curent.
Apoi setăm numele serverului. Găsim următoarea linie:
#ServerName www.example.com:8080
O înlocuim cu următoarea linie:
ServerName localhost
Modificăm căile fișierelor în care se înregistrează erorile sau vizitele pe site.
Dacă arhitectura este Intel, găsim linia:
ErrorLog "/usr/local/var/log/httpd/error_log"
Dacă arhitectura este Apple M1, găsim linia:
ErrorLog "/opt/homebrew/var/log/httpd/error_log"
Și o înlocuim cu:
ErrorLog "/Users/fdc/localhost/error.log"
Modificăm calea fișierului de log pentru vizite. Dacă arhitectura este Intel, găsim linia:
CustomLog "/Users/fdc/localhost/access_log" common
Dacă arhitectura este Apple M1, găsim linia:
CustomLog "/opt/homebrew/var/log/httpd/access_log" common
Și o înlocuim cu:
CustomLog "/Users/fdc/localhost/access_log" common
Astfel, fișierul error.log, în care sunt înregistrate erorile, și fișierul access.log, în care sunt înregistrate datele despre vizitele pe site, vor fi situate în folderul c:/localhost.
Configurarea PHP
Acum legăm Apache cu PHP. Mai întâi, trebuie să aflăm versiunea PHP. Pentru aceasta, introducem în terminal comanda:
php -v
Ar trebui să afișeze ceva de genul:
PHP 8.1.1 (cli) (built: Jan 08 2022 08:25:03) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies
Ne interesează primele două cifre ale versiunii. În cazul meu, versiunea este 8.1. În funcție de arhitectura computerului, configurarea PHP diferă.
Găsim în fișier linia:
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Dacă arhitectura este Intel, adăugăm după această linie:
LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so
Dacă arhitectura este Apple M1, adăugăm:
LoadModule php_module
/opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
Astfel, adăugăm modulul php. Observați partea php@8.1. Deoarece versiunea mea este 8.1, specific această versiune a modulului. Rezultatul ar trebui să fie:
#LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so // pentru Intel
LoadModule php_module /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so // pentru Apple M1
Apoi găsim blocul <IfModule mime_module>:
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
Și sub linia <IfModule mime_module> adăugăm două linii:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Rezultatul ar trebui să fie:
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
În acest caz, am adăugat suport pentru fișierele cu extensiile .php și .phps.
Și la sfârșit găsim blocul <IfModule dir_module>:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Și îl înlocuim cu următorul:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
În acest caz, definim fișierele care vor fi executate la accesarea rădăcinii fișierului sau directorului. Practic, definim paginile principale ale site-ului: index.html și index.php.
Aceasta este configurația minimă necesară pentru a lucra cu PHP.
Acum trebuie să ne asigurăm că PHP este conectat și funcționează corect. Pentru aceasta, vom merge în folderul /Users/fdc/localhost, pe care l-am creat pentru stocarea fișierelor serverului web, și vom adăuga în el un fișier text obișnuit. Îl vom redenumi în index.php și vom adăuga următorul conținut:
<?php
phpinfo();
?>
În acest caz, am creat un script simplu care afișează informații generale despre PHP.
Acum vom reporni Apache. Pentru aceasta, introducem succesiv în terminal următoarele comenzi:
brew services stop httpd
brew services start httpd
După repornirea serverului web, accesăm scriptul index.php creat mai sus, introducând în bara de adrese a browserului adresa http://localhost/index.php.

Ce s-a întâmplat aici? Când accesăm site-ul pe mașina locală, adresa specificată este http://localhost. Apoi se specifică numele resursei la care se face referire.
În acest caz, resursa utilizată este fișierul index.php. Și deoarece în fișierul httpd.conf, ca director de stocare a documentelor serverului web, este specificat directorul /Users/fdc/localhost, în acest director serverul web va căuta fișierele necesare.
Și, deoarece mai sus, în timpul configurării, am specificat că fișierul index.php poate fi folosit ca pagină principală, putem accesa această resursă pur și simplu prin http://localhost/
Astfel, acum putem crea propriile noastre site-uri în PHP pe MacOS.
Configurarea PHP
Ca și pentru Windows, configurația PHP este stocată în fișierul php.ini. Pe MacOS, acest fișier este localizat la următoarea cale:
/usr/local/etc/php/[versiune]/php.ini
De exemplu, am instalat versiunea PHP 8.1.1, așa că în cazul meu fișierul php.ini este localizat la calea "/usr/local/etc/php/8.1/php.ini". Prin urmare, dacă trebuie să-l editez în editorul de text implicit TextEdit, pot introduce în terminal comanda:
open -e /usr/local/etc/php/8.1/php.ini