Krátký návod z archivu, jak nainstalovat Apache 2.4, MySQL 5.5 a PHP 7.2 na FreeBSD 12. Tento návod není vyčerpávající seznam všeho, co lze nainstalovat, spíše jen rychlý checklist, jak rychle rozjet webserver do funkčního stavu.

Apache Webserver

Jako vždy instalujeme z portů:

portmaster -d www/apache24

Vynechávám PROXY, další rozšíření podle potřeby. Lze nechat i default.

Službu necháme startovat po bootu:

sysrc apache24_enable=yes

A zapneme:

service apache24 start

MySQL databáze

Toto už bude malinko složitější, potřebujeme nainstalovat server i klienta a potom nastavit heslo pro superuživatele root.

portmaster -d databases/mysql55-client databases/mysql55-server

Zapneme službu při bootu:

sysrc mysql_enable=yes

A nastartujeme:

service mysql-server start

Měli bychom nastavit heslo mysql roota, k tomu nám pomůže skript:

mysql_secure_installation

Nastavuji heslo roota, vypínám uživatele a db test. Vzdálený přístup na roota obvykle vypínám také, záleží na konkrétní situaci.

PHP

A nynní k tomu konfiguračně nejnáročnějšímu.

Ve FreeBSD portech je PHP rozděleno do 3 částí. Samotné PHP v portu lang/php72, který můžeme rovnou nainstalovat:

portmaster -d lang/php72

Potom samostatný modul do apache v portu www/mod_php72:

portmaster -d www/mod_php72

Po jeho instalaci nastavíme apache webserver, přidáme soubor php.conf do adr: /usr/local/etc/apache24/Includes/ s obsahem:

DirectoryIndex index.php index.html
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

Můžeme si připravit testovací skript v /usr/local/www/apache24/data/test.php:

<?php phpinfo(); ?>

A po restartu apache jej vyzkoušet v prohlížeči.

PHP moduly

PHP má moduly dostupné v jednom portu lang/php72-extensions, který určitě budeme instalovat opakovaně a přidávat případně ubírat nainstalované moduly, takže musíme volat --force-config:

portmaster -d --force-config lang/php72-extensions

Po každém přidání nebo odebrání modulu restartujeme webserver.

Základní moduly jsou: curl, db, zlib, mbstring, json a v tomto případě i mysqli.