Stranica: 1/1.

lamp (linux, apache, mysql, php, perl, python)

Postano: 22 vel 2013, 13:27
Postao/la hightech
Prvo, par neophodnih paketa, kao root: <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

Re: lamp (linux, apache, mysql, php, perl, python)

Postano: 22 vel 2013, 16:27
Postao/la iweb
Bi li mogao ovo prebaciti na naš wiki? http://wiki.open.hr/wiki/Naslovnica :)

Re: lamp (linux, apache, mysql, php, perl, python)

Postano: 22 vel 2013, 18:03
Postao/la hightech
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 :)

Re: lamp (linux, apache, mysql, php, perl, python)

Postano: 23 vel 2013, 21:17
Postao/la tomog999
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".

Re: lamp (linux, apache, mysql, php, perl, python)

Postano: 23 vel 2013, 22:38
Postao/la hightech
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 :)