недеља, август 17, 2014

PHP

Nakon što smo instalirali veb server, vreme je da instaliramo i PHP, serverski skript-jezik pogodan za razvoj veb aplikacija. Komandom

pacman -S php php-apache

instaliramo PHP i Apač modul za PHP koji sadrži biblioteku libphp5.so a koja će nam kasnije biti potrebna. Otvaramo datoteku sa podešavanjima za veb server

/etc/httpd/conf/httpd.conf

i umesto modula mod_mpm_event.so uključujemo modul mod_mpm_prefork.so. Na kraju liste modula dodajemo još dve linije:

LoadModule php5_module modules/libphp5.so
AddHandler php5-script php

Snimamo podešavanja za veb server i bacamo se na podešavanja za PHP. Otvaramo datoteku

/etc/php/php.ini

i menjamo sledeće dve linije:

date.timezone = Europe/Belgrade
display_errors = On

Vreme je da sklonimo index.html dokument i da umesto njega postavimo naš prvi dinamički fajl index.php koji za početak može da ima samo sledeće linije:

<?php
phpinfo();
?>

Restart veb servera sa

systemctl restart httpd.service

i ako je sve prošlo kako treba, na adresi http://projekat.local bi trebalo da vidimo PHP info stranicu.

Tux LOL


Apache

Apač je veb server što znači da je njegova osnovna funkcija da putem HTTP protokola prosleđuje veb stranice veb klijentima kao što su Fajerfoks i Hrom. U pitanju je besplatan softver otvorenog koda te ga stoga može svako preuzeti sa Interneta, instalirati i koristiti po sopstvenoj želji, bilo da želite samo da ga instalirate na svom računaru kako biste se bavili razvojem recimo PHP aplikacija, bilo da želite da ga koristite kao server u vašoj lokalnoj mreži ili pak želite da krenete sa publikovanjem sadržaja na Internetu. 

Mi ćemo na lokalnom računaru koji radi pod Arč Linuksom instalirati paket pod nazivom apache koristeći program pacman:
pacman -S apache
Instalacija podrazumeva da će nam osnovni direktorijum za smeštanje naših veb strana (tzv. document root) biti /srv/http/, a logovi će se upisivati u /var/log/httpd/ . Sada ćemo da otvorimo datoteku sa podešavanjima
/etc/httpd/conf/httpd.conf
i da izvršimo još neka dodatna podešavanja. Najpre ćemo da isključimo extra/httpd-userdir.conf i da uključimo extra/httpd-default.conf. Da proverimo da li nam server radi.
systemctl list-unit-files | grep http
bi trebalo da izlista httpd.service. Komandom
systemctl status httpd.service
vidimo status servisa a sam servis možemo da pokrenemo sa
systemctl start httpd.service
Ako sve prođe bez grešaka, u veb brauzeru kucamo adresu http://localhost i trebalo bi da se pojavi podrazumevana strana veb servera.

Da krenemo da se bavimo virtuelnim sajtovima. U direktorijum /srv/http/ napravimo novi direktorijum pod nazivom projekat. U taj direktorijum ćemo da snimimo neki jednostavan index.html dokument. Idemo natrag u
/etc/httpd/conf/httpd.conf
i uključujemo extra/httpd-vhosts.conf. Datoteka
/etc/httpd/conf/extra/httpd-vhosts.conf
sadrži podešavanja vezana za virtuelne sajtove. Možemo da zakomentarišemo sve što je već predefinisano u njoj i da definišemo naš novi virtuelni sajt:
<VirtualHost *:80>
    DocumentRoot "/srv/http/projekat"
    ServerName projekat.local
    ErrorLog "/var/log/httpd/projekat-error_log"
    CustomLog "/var/log/httpd/projekat-access_log" common
</VirtualHost>
Još jednu izmenu je potrebno da izvršimo i to datoteci /etc/hosts gde ćemo dodati
127.0.0.1 projekat.local
Restart servera
systemctl restart httpd.service
u brauzeru kucamo http://projekat.local i trebalo bi da se otvori index.html iz /srv/http/projekat/.

Da bi nam se Apač pokrenuo kod svakog restarta sistema, otkucaćemo
systemctl enable httpd.service
Već smo rekli da se document root nalazi u direktorijumu /srv/http/ koji se fizički nalazi na korenoj (root) particiji. Ako radimo na većem broju većih projekata i pritom imamo i baze podataka (koje se takođe čuvaju na korenoj particiji), neretko se dešava da nam ponestane mesta na njoj. U takvim situacijama naš direktorijum projekat možemo da držimo i na recimo home particiji negde u
/home/korisnik/projekti/
koja po pravilu ima više slobodnog prostora, uz kreiranje simboličkog linka u /srv/http/ koji će da ukazuje na njega. Da bi Apač mogao da pristupi direktorijumu projekat, potrebno je svoj nalog dodati u Apač grupu (najčešće je to http grupa), podesiti grupu za /home/korisnik/ na http (umesto users) i dodeliti x dozvolu za http grupu:
ls -l /home/ => drwx--x--- 112 korisnik http   4096 Jul  7 22:22 korisnik
Na kraju još treba proći kroz celo stablo /home/korisnik/projekti/projekat/, proveriti da li Apač može da pročita sve fajlove i dodati dozvolu w nad fajlovima i direktorijumima u koje Apač treba da može da piše.