Skip to main content
Simbioza

Apache mod_php instalacija

Apache mod_php: instalacija korak po korak

Ovaj postupak namijenjen je Apacheu koji PHP izvršava modulom mod_php. Proveden je od praznog izdanja 0.2.4 na hrvatskom siteu SimbiozaHR. Snimke su iz stvarnih lokalnih instalacija u svijetloj temi; testni poslužitelj slušao je samo 127.0.0.1:8090. Primjer nije javna HTTP konfiguracija: za javni site uključite HTTPS. Nginx ne izvršava mod_php; za njega odaberite FPM uputu.

U terminalskim blokovima prilagodite putanju, URL, Unix račun i verziju PHP-a vlastitom poslužitelju. Nikada ne snimajte jednokratni token ni lozinku. Ako se neki ekran razlikuje, zaustavite se i riješite neuspjelu provjeru prije nastavka.

1. Provjera poslužitelja i dohvat točnog izdanja

Provjerite da su CLI PHP i Apacheov PHP modul podržani, da su potrebne ekstenzije dostupne i da Apache koristi prefork s učitanim PHP i rewrite modulima. CLI PHP sam po sebi nije dokaz da web koristi istu verziju. Na Debianu se paketi zovu prema verziji distribucije, primjerice apache2, libapache2-mod-php, php-cli, php-sqlite3, php-xml, php-mbstring, php-intl i php-zip; prije uključivanja mod_php-a uskladite aktivni MPM s paketom. Na macOS-u je u provjeri korišten Homebrew PHP 8.5 i Apache 2.4.

php -v
php -m
composer --version
git --version
/opt/homebrew/bin/httpd -v
/opt/homebrew/bin/httpd -M | grep -E 'mpm_prefork|php_module|rewrite_module'
id -un
id -Gn

Preuzmite jedan objavljeni tag i kopirajte izdanje bez direktorija .git. To je bitno jer se kasnije nadogradnje vode upravljanim izdanjima. Na izvornom tagu nema composer.lock, pa composer install u našem lokalnom testu zapravo razrješava zadnje dopuštene tagove; za ponovljiv javni postupak koristite izričitu naredbu composer update prikazanu niže.

SIMBIOZA_TAG=0.2.4
SIMBIOZA_FETCH_DIR="$(mktemp -d)"
mkdir "$SIMBIOZA_FETCH_DIR/release"
git -C "$SIMBIOZA_FETCH_DIR/release" init -q
git -C "$SIMBIOZA_FETCH_DIR/release" remote add origin https://github.com/kmihalj/Simbioza.git
git -C "$SIMBIOZA_FETCH_DIR/release" fetch --quiet --depth 1 origin "refs/tags/$SIMBIOZA_TAG:refs/tags/$SIMBIOZA_TAG"
git -C "$SIMBIOZA_FETCH_DIR/release" -c advice.detachedHead=false checkout --quiet "$SIMBIOZA_TAG"
mkdir -p /Users/Shared/Simbioza/SimbiozaHR
rsync --archive --exclude=.git/ "$SIMBIOZA_FETCH_DIR/release/" /Users/Shared/Simbioza/SimbiozaHR/
cd /Users/Shared/Simbioza/SimbiozaHR
composer update --with-all-dependencies --optimize-autoloader
composer check-platform-reqs
cat VERSION

Očekivana verzija ovdje je 0.2.4. Produkcijski primjer može biti u /srv/simbioza; nemojte izlagati taj cijeli direktorij webu. Samo public/ smije biti web-korijen.

2. Baza, radni direktoriji i prava

Za ovaj prolaz odaberite SQLite; čarobnjak će stvoriti privatnu bazu. Ako koristite MySQL ili PostgreSQL, prije otvaranja instalera pripremite praznu bazu i poseban DB račun bez globalnih ovlasti. Radni direktoriji moraju postojati prije prvog HTTP zahtjeva, posebno data/sessions i data/tmp. Web-račun smije pisati samo po radnim podacima i dinamičkim konfiguracijama, ne po cijelom kodu.

cd /Users/Shared/Simbioza/SimbiozaHR
mkdir -p config data/cache data/logs data/sessions data/setup-requests data/tmp resources/config/menu resources/config/theme
sudo chgrp -R _www config data resources/config/menu resources/config/theme
sudo chmod 3770 config
sudo chmod 2770 resources/config/menu resources/config/theme
sudo chmod -R g+rwX data resources/config/menu resources/config/theme
sudo chmod +a 'user:kmihalj allow read,write,append,execute,delete,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit' config
sudo find data resources/config/menu resources/config/theme -type d -exec chmod +a 'user:kmihalj allow read,write,append,execute,delete,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit' {} +
ls -lde config data data/sessions data/tmp resources/config/menu resources/config/theme

Na Linuxu umjesto macOS ACL-a primijenite uski setfacl za web i deploy račun te nasljedni ACL na radnim direktorijima. Poslije instalacije izričito provjerite može li održavatelj čitati privatne datoteke koje čarobnjak stvori s pravima 0600. Ne koristite chmod 777.

3. Apache konfiguracija i provjera

Lokalni laboratorij imao je zaseban Apache koji sluša samo na loopbacku. Sljedeći odsječak pokazuje stvarno korišten alias i PHP handler. Na javnom poslužitelju upotrijebite TLS virtualni host na portu 443, DocumentRoot /srv/simbioza/public i svoj certifikat. Nemojte istodobno primijeniti FPM SetHandler na istu PHP putanju.

Listen 127.0.0.1:8090
LoadModule mpm_prefork_module lib/httpd/modules/mod_mpm_prefork.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so
User _www
Group _www
Alias /SimbiozaHR "/Users/Shared/Simbioza/SimbiozaHR/public"
<Directory "/Users/Shared/Simbioza/SimbiozaHR/public">
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require local
    DirectoryIndex index.php
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
</Directory>
/opt/homebrew/bin/httpd -t -f /opt/homebrew/etc/httpd/extra/httpd-simbioza-install-guides.conf
sudo /opt/homebrew/bin/httpd -k graceful -f /opt/homebrew/etc/httpd/extra/httpd-simbioza-install-guides.conf
curl -I http://127.0.0.1:8090/SimbiozaHR/

Syntax OK potvrđuje samo konfiguracijsku sintaksu; stvarni zahtjev i webov PHP identitet provjerite zasebno. U javnoj konfiguraciji zamijenite Require local primjerenim pravilom pristupa, uključite HTTPS i preusmjerite HTTP. Privremena radna adresa s tokenom mora ostati privatna.

4. Priprema opcionalnih paketa i jednokratni instaler

mod_php nema privilegirani helper za Composer, pa održavatelj iz direktorija izdanja prije otvaranja čarobnjaka u CLI-ju priprema pakete. Naredba php scripts/installation_packages.php prepare bez popisa priprema sve opcionalne module; u novom čarobnjaku svi su početno označeni i korisnik odznačuje nepotrebne. Za manji skup pokrenite, primjerice, php scripts/installation_packages.php prepare --modules=theme,calendar,email, provjerite php scripts/installation_packages.php status i u čarobnjaku odznačite ostale. Za nijedan opcionalni modul koristite --modules=; privremeni Backup i dalje omogućuje uvoz početnih uputa. Instalaciju kao vlasnik izdanja dovršite naredbom php scripts/installation_packages.php cleanup. Snimke su iz testa izdanja 0.2.4, kada je pripremljena samo Tema. Potom se izrađuje jednokratna URL adresa; tekst nakon token= namjerno nije objavljen.

cd /Users/Shared/Simbioza/SimbiozaHR
php scripts/installation_packages.php prepare
php scripts/installation_packages.php status
php bin/simbioza install:prepare --base-url=http://127.0.0.1:8090/SimbiozaHR

5. Hrvatska instalacija: svaki ekran

Čarobnjak: hrvatska provjera preduvjeta, svi uvjeti prolaze.
Ekran 1 — preduvjeti. Provjerite redom PHP verziju, sve obvezne ekstenzije, PDO za odabranu bazu, zapisivost konfiguracije i privatnih podataka te dostupnost teme i uputa. Svaki redak mora imati oznaku uspjeha prije gumba Nastavi. Na ovoj čistoj instalaciji sve provjere su prošle.
Čarobnjak: odabir SQLite baze i provjera veze.
Ekran 2 — baza. Označen je SQLite, pa su mrežna polja za host, port i korisnika nebitna. Pritiskom na Provjeri vezu i nastavi aplikacija ne vjeruje samo obrascu, nego otvara bazu i izvodi probni upit. Za MySQL/PostgreSQL ovdje biste unijeli prethodno pripremljene podatke zasebnog DB računa.
Čarobnjak: prazni obrazac identiteta sitea, jezika, modula i prvog administratora.
Ekran 3 — identitet i administrator prije unosa. Vidljivi su naziv aplikacije, primarni i dostupni jezici, vremenska zona, popis opcionalnih modula i zasebna polja prvog administratorskog računa. Tema je unaprijed označena jer je pripremljena. Ostali nepreuzeti moduli prikazani su onemogućeno s objašnjenjem da ih treba pripremiti u CLI-ju; to nije pogreška.
Čarobnjak: ispunjeni identitet hrvatskog sitea i prvi administrator; lozinke su maskirane.
Ekran 3 — nakon unosa. U pokusu je upisan naziv „Simbioza HR”, primarni jezik HR, jezici HR i EN, zona Europe/Zagreb i zasebna login oznaka prvog administratora. Za javnu instalaciju unesite stvarno ime i e-mail, a snažnu jedinstvenu lozinku pohranite u upravitelj lozinki. Snimka pokazuje raspored polja, ne sadržaj lozinke.
Čarobnjak: pregled SQLite, jezika, teme, zone i admina prije instalacije.
Ekran 4 — pregled. Prije konačne radnje još jednom usporedite naziv sitea, bazu, primarni i dostupne jezike, odabrane module, vremensku zonu i login oznaku. Lozinke se namjerno ne vraćaju u HTML. Tek nakon provjere pritisnite Instaliraj Simbiozu; taj korak primjenjuje migracije i stvara prvog administratora.
Čarobnjak: Simbioza je uspješno instalirana.
Ekran 5 — uspjeh. Poruka potvrđuje dovršetak migracija, odabranih modula i računa. Jednokratna adresa više se ne može koristiti. Ako se pojavi pogreška, ne ponavljajte slijepo instalaciju: pregledajte dnevnik, stanje baze i instalacijski token.
Hrvatska stranica lokalne prijave nakon instalacije.
Prva prijava. Odaberite Otvori prijavu i prijavite se upravo stvorenom login oznakom i lozinkom. Vidljiva je hrvatska navigacija i lokalni obrazac. Javni site može naknadno uključiti druge autentikacijske mehanizme, ali ih ne treba podešavati tijekom prvog prolaza.
Početna stranica svježe instalirane hrvatske Simbioze.
Prvo otvaranje aplikacije. Ova stranica potvrđuje da nisu prošli samo migracije i login, nego i stvarni prikaz izbornika, teme i početnog sadržaja. Zasebno otvorite Postavke → Setup i moduli i potvrdite da je Tema uključena te da je stanje ostalih modula očekivano.

6. Završna provjera, moduli, jezici i nadogradnje

Na hrvatskom siteu uklonite samo privremeni Backup paket koji je služio uvozu početnih uputa; ako ste Backup izričito odabrali, ostaje instaliran. Očekujte nula migracija na čekanju, uspješnu prijavu, zaključan /install i prohodnu javnu početnu stranicu.

cd /Users/Shared/Simbioza/SimbiozaHR
php scripts/installation_packages.php cleanup
vendor/bin/hph modules migrate-status
composer check-platform-reqs
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8090/SimbiozaHR/auth/login
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8090/SimbiozaHR/install

U našem testu prijava vraća 200, zaključani installer 404, a site ima 22 izvršene i nula otvorenih migracija. U administraciji možete uključiti/isključiti već instalirani modul, ali ne možete dodati Composer paket kroz mod_php web-proces. Kao Unix vlasnik koda koristite CLI:

vendor/bin/hph modules list
vendor/bin/hph modules add calendar --fresh
vendor/bin/hph modules disable calendar
vendor/bin/hph modules enable calendar
vendor/bin/hph modules backups calendar
vendor/bin/hph modules remove calendar --yes
vendor/bin/hph modules add calendar --restore
vendor/bin/hph languages available
vendor/bin/hph languages install de
vendor/bin/hph languages update
php update.php --check
php update.php

Isključivanje čuva podatke; uklanjanje stvara kopiju modula i podataka pa tek zatim briše paket. Prije produkcijske nadogradnje dodatno kopirajte bazu, config/, korisničke datoteke i teme. Poslije provjerite migracije, stvarnu prijavu i javni sadržaj. Nemojte provoditi nadogradnju ručnim composer update na postojećem siteu jer time zaobilazite aplikacijski postupak očuvanja izabranih modula.

Referenca: izdanje 0.2.4, Apache LoadModule, PHP uz Apache. Za produkcijski FPM i Nginx slijedite sestrinsku FPM podstranicu.

Attachments

File Version File type Size Uploaded by
SimbiozaEN-08-home.png v1 image/png 190.7 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-07-login.png v1 image/png 150.0 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-06-success.png v1 image/png 54.5 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-05-review.png v1 image/png 82.3 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-04-application-filled.png v1 image/png 175.2 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-03-application-blank.png v1 image/png 162.9 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-02-database.png v1 image/png 72.0 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaEN-01-prerequisites.png v1 image/png 138.6 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-08-home.png v1 image/png 202.8 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-07-login.png v1 image/png 152.3 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-06-success.png v1 image/png 55.5 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-05-review.png v1 image/png 83.9 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-04-application-filled.png v1 image/png 182.9 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-03-application-blank.png v1 image/png 170.1 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-02-database.png v1 image/png 71.9 KB Krešimir Mihalj · 28. ruj 2026. 18:55
SimbiozaHR-01-prerequisites.png v1 image/png 145.8 KB Krešimir Mihalj · 28. ruj 2026. 18:55

Comments

0

There are no comments yet.

You must sign in to add a comment.

Created: Krešimir Mihalj 28. ruj 2026. 18:27 · Last modified: Krešimir Mihalj 30. ruj 2026. 11:26