Sada je: 28 ožu 2024, 09:10.
Linux, poslužitelj, mreže i sigurnost

Moderator/ica: Moderatori/ce

Prvo, par neophodnih paketa, kao root:
Kod: Označi sve
su

<lozinka>
Kod: Označi sve
aptitude install apache2 mysql-server php5 php-pear php5-gd php5-mysql php5-imagick php5-curl curl phpmyadmin rsync cronolog libapache2-mod-php5 libapache2-mod-python

Prilikom instalacije ovih paketa osigurajte mysql server root lozinkom, podesite phpmyadmin - apache2 [x].
Zatim pri sledećoj opciji: configure database for phpmyadmin with dbconfig-common? <Yes> <No>, izaberite <No> i to je to.
Podrazumevani web folder je /var/www, za sada ćemo ga i ostaviti tako da ne dodje do zabune na startu.
Napraviti fajl phpinfo.php
Kod: Označi sve
nano /var/www/phpinfo.php

Ubaciti sledeći sadržaj:
Kod: Označi sve
<?php
echo phpinfo();
?>

Zatim promeniti dozvole i vlašnistvo (ownership) nad folderima i datotekama (rekruzivno)
Kod: Označi sve
chown -R www-data:www-data /var/www
chmod -R 755 /var/www

Restartujte server za svaki slučaj, jer nekada se ne razreše procesi dok se ne uradi restart:
Kod: Označi sve
/etc/init.d/apache2 restart

Sadržaj funkcije phpinfo() - phpinfo.php se nalazi na lokaciji u browseru, sa "document root" /var/www/
Kod: Označi sve
http://localhost/phpinfo.php

Sada trenutno ostavite folder /var/www i kreirajte folder /home/korisnik/htdocs ukoliko ne postoji kao podrazumevani (na Crunchbang-u postoji) i linkovati ga simboličkim linkom iz /var/www
Kod: Označi sve
mkdir /home/korisnik/htdocs
cd /var/www
ln -s /home/korisnik/htdocs korisnik

Trenutno se nalazite u folderu /var/www , tu postoji index.htlm po defaultu i phpinfo.php koj smo napravili, a sada postoji i "folder" linkovan ka /home/korisnik/htdocs. Tu se za sada priča sa /var/www završava i nas sada zanima samo /home/korisnik/htdocs
Napravite fajl index.php koj se treba naći u /home/korisnik/htdocs
Kod: Označi sve
nano /home/korisnik/htdocs/index.php

Sadržaj:
Kod: Označi sve
<?php
echo 'Ovo je naš lični korisnički direktorijum na apache web serveru';
?>

Izmneite dozvole i vlašnistvo (ownership) nad folderom /home/korisnik/htdocs (rekruzivno):
Kod: Označi sve
chown -R www-data:www-data /home/korisnik/htdocs
chmod -R 755 /home/korisnik/htdocs

I sada se nas "korisnički" web direktorijum /home/korisnik/htdocs nalazi na lokaciji:
Kod: Označi sve
http://localhost/korisnik/

Sada konfigurišite phpmyadmin-a, jer ste prilikom instalacije paketa i nega uključili...
Odraditi samo par linija u terminalu:
Kod: Označi sve
cp /etc/phpmyadmin/apache.conf /etc/apache2/sites-available/phpmyadmin
ln -s /etc/apache2/sites-available/phpmyadmin /etc/apache2/sites-enabled/phpmyadmin

Pa restartovati apache:
Kod: Označi sve
/etc/init.d/apache2 restart

Vaš phpmyadmin se nalazi na adresi:
Kod: Označi sve
http://localhost/phpmyadmin

Sledeći korak je mysql sigurna instalacija:
Kod: Označi sve
mysql_secure_installation

Ukucati root lozinku za mysql koju ste definisali malopre prilikom instalacije svih paketa, pa:
Kod: Označi sve
remove anonymous users? [Y/n] y
 ... success!
disallow root login remotely? [Y/n] y
 ... success!
remove test database and access to it? [Y/n] y
 - dropping test database...
reload privilege tables now? [Y/n] y
 ... success!

Samo još jedna stvar pre nego se ulogujemo u phpmyadmin okruženje - kreirati korisnika i dati mu dozvole samo nad njegovom bazom:
Prvo se ulogovati kroz terminal u root-mysql shell:
Kod: Označi sve
mysql -u root -p

Ukucati root lozinku i ispisaće se ovakav odzivnik:
Kod: Označi sve
mysql>

Napraviti bazu, korisnika te baze (kucati samo posle odzivnika "mysql>" i odrediti mu privilegije nad tom bazom:
Kod: Označi sve
mysql> CREATE DATABASE korisnikova_baza;
mysql> CREATE USER 'korisnik_baze' IDENTIFIED BY 'lozinka_korisnika_baze';
mysql> GRANT ALL PRIVILEGES ON korisnikova_baza.* TO 'korisnik_baze';
mysql> exit;

DONE!
sada se na adresi: http://localhost/phpmyadmin ulogujte sa -
user: korisnik_baze
pass: lozinka_korisnika_baze
Možete koristiti vašu mysql bazu podataka!!!

Zatim uraditi još jednu stvar koja će vam olakšati razumevanje web foldera:
Kod: Označi sve
cd /var/www
rm -f index.html
mkdir phpmyadmin
chown -R www-data:www-data /var/www
chown -R www-data:www-data /home/korisnik/htdocs
chmod -R 755 /var/www
chmod -R 755 /home/korisnik/htdocs

Otvoriti u browseru adresu:
Kod: Označi sve
http://localhost

Ne zaboravite da /home/korisnik/htdocs zamenite sa /home/ime_vašeg_korisnika/htdocs
Custom apache konfiguracija
Sada malo zaviriti u apache-ovu konfiguracionu datoteku i dodati podršku za python, perl, cgi, bash kroz CGI (common gateway interface), ali pre toga napravite još cgi-bin direktorijum:
Kod: Označi sve
mkdir /var/www/cgi-bin

Primetili ste da se izmeđustalog izmeštate iz direktorijuma /var/www koj će i dalje ostati kao koreni direktorijum (doc root), a trenutno se fokusirati na folder /var/www/cgi-bin/... kasnije i objašnjenje..
Apache konfiguraciona datoteka za vhost /etc/apache2/sites-available/default izgleda ovako:
Kod: Označi sve
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
   </Directory>
        ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
   <Directory /var/www/cgi-bin/>
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                AddHandler cgi-script .cgi .pl .py .sh
      Order allow,deny
      Allow from all
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/apache2.error.log
   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn
   CustomLog ${APACHE_LOG_DIR}/apache2.access.log combined
</VirtualHost>

Sada ući u dir /var/www/cgi-bin i napraviti 3 fajla (.pl .py .sh)
Kod: Označi sve
cd /var/www/cgi-bin
nano test.pl

test.pl izgleda ovako
Kod: Označi sve
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "perl kroz CGI!";

Zatim test.py
Kod: Označi sve
nano test.py

test.py izgleda ovako:
Kod: Označi sve
#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<head><title>py-cgi</title></head>
<body>
<h2>python kroz CGI!</h2>
</body>
</html>
"""

Zatim test.sh
Kod: Označi sve
nano test.sh

test.sh izgleda ovako:
Kod: Označi sve
#!/bin/bash
echo "Content-Type: text/plain"
echo
echo "Datum i vreme:"
date

Pre pokretanja uradićemo sledeće procedure:
Kod: Označi sve
chmod -R 755 /var/www/
chown -R www-data:www-data /var/www/
/etc/init.d/apache2 restart

Skripte u /var/www/cgi-bin se nalaze na adresama:
Kod: Označi sve
http://localhost/cgi-bin/test.pl
http://localhost/cgi-bin/test.py
http://localhost/cgi-bin/test.sh
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
Postovi: 119
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Lokacija: /dev/hda2, etc
Podijelio/la zahvalu: 24 puta
Primio/la zahvalu: 8 puta
Spol: M
OS: wheezy, slekver ;)
Bi li mogao ovo prebaciti na naš wiki? http://wiki.open.hr/wiki/Naslovnica :)
Avatar
Site Admin
Postovi: 4639
Site Admin
Postovi: 4639
Pridružen/a: 07 ožu 2009, 17:00
Podijelio/la zahvalu: 101 puta
Primio/la zahvalu: 209 puta
Spol: M
OS: fedora 34
Naravno :)
A gde je lemp??? i njega sam postovao????

Molio bih da ne brisete temu, nije lamp nego lemp, nisu isti, jedan je nginx, drugi apache :)
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
Postovi: 119
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Lokacija: /dev/hda2, etc
Podijelio/la zahvalu: 24 puta
Primio/la zahvalu: 8 puta
Spol: M
OS: wheezy, slekver ;)
Zatim promeniti dozvole i vlašnistvo (ownership) nad folderima i datotekama (rekruzivno)

Kod: Označi sve
chown -R www-data:www-data /var/www
chmod -R 755 /var/www


Chmod rekurzivni 755 je učinio da su sve datoteke u /var/www, postale "executable",
čak i za "others", zar to nisu pre extenzivna prava na tim datotekama, zar nisu dovoljne samo "read" ovlasti za "others".
To all you "rvacki pravopis" haters, we're gona blow your planet up
we got death star(death star)
and you know that we got it(death star)

Darth Spellingius :D
Avatar
Postovi: 125
Postovi: 125
Pridružen/a: 03 ožu 2011, 18:18
Lokacija: Zagreb
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 6 puta
Spol: M
OS: mint14Cina/Centos6
Vidi, 755 ne mora, dovoljno je samo ownership promeniti :)
Ali tu su samo i ti fajlovi koji bi se trebalo izvrsiti i iz tog razloga to stoji :)
... šta god da učiniš ... NISI DOBRO IZRAČUNAO ...
... for good fun and advanced thinking join WS1 ...
... do Boga je put dosta kratak, ne moras dalje od svog srca ...
Avatar
Postovi: 119
Postovi: 119
Pridružen/a: 21 vel 2013, 01:00
Lokacija: /dev/hda2, etc
Podijelio/la zahvalu: 24 puta
Primio/la zahvalu: 8 puta
Spol: M
OS: wheezy, slekver ;)

Na mreži
Trenutno korisnika/ca: / i 17 gostiju.