Rezumat

În cadrul acestui proiect sunt descrise etapele necesare pentru a configura un server WWW și altor servicii bazate pe acesta. Înițial se vor face setările necesare ale interfeței de rețea pentru a realiza conexiunea la Internet. Apoi se va studia și verifica existenta pachetelor, ce sunt nevoie de instalat, pe mediul de dezvoltare folosit (în cazul dat sistemul de operare Centos 5.4 ). După primii pași se va purcede la instalarea și configurarea serverului LAMP, care este compus din apache, mysql și php . Se vor descrie etapele necesare pentru a seta funcționarea corectă a serverului. Mai apoi se va trece la configurarea serviciilor adiționale cum ar fi ftp, https. De menționat faptul că toate aceste etape nu reprezintă toate etapele posibile în ridicarea unui server WWW, ci etapele necesare pentru funcționarea normală și necesară a serverului pentru a presta serviciile predestinate lui.

Aspecte generele

În figura ce urmează este reprezentată schema configurației rețelei în care se află serverul.

rlc schema

  1. Server

  2. OS: Centos 5.4 (numai kernel, fără desktop)
    CPU: 300Mhz Intel Pentium
    RAM: 192MB SDRAM
    HDD: 80GB IDE ATA
    LAN: 100Mbit
    IP: 192.168.1.100

  3. Calculatorul depe care s-au făcut toate setările serverului prinintermediul conexiunii realizate prin ssh

  4. OS: Ubuntu 9.10
    CPU: 2.4Ghz Intel Core2Duo
    RAM: 4GB DDR2
    HDD: 500GB SATA
    LAN: 100Mbit
    IP: 192.168.1.20

  5. Swicth-ul #1

  6. Model: TP-link

  7. Switch-ul #2

  8. Model: ASUS

  9. Modem DSL configurat ca router

  10. Model: Zyxel 600
    Mod DSL: ADSL2+
    Viteză conexiune: 20mbps/1024kbps
    IP: 192.168.1.1

Configurarea serverului

Setarea interfeței de rețea

Pentru a realiza conexiunea calculatorului la internet este necesară următoare configurare a interfeței de rețea:

  • IP: 192.168.1.100
  • Gateway: 192.168.1.1
  • DNS1: 172.27.137.10
  • DNS2: 172.27.137.20

Mai întîi de toate ne logăm cu drepturi de root:

# sudo su

Pentru a seta IP-ul este necesară editarea fișierului /etc/sysconfig/network-scripts/ifcfg-eth0 :

# nano /etc/sysconfig/network-scripts/ifcfg-eth0

Se va deschide utilitarul pentru editat texte în care trebuie făcute următoarele modificări:01

Am setat mai poi gateway-ul prin editarea fișierului /etc/sysconfig/network prin următorea comandă:

# nano /etc/sysconfig/network

În utilitarul de editat texte facem următoarele modificări:02
Iar prin editarea fișierului nano /etc/resolv.conf setăm serverele DNS de care avem nevoie:

# nano /etc/resolv.conf

Modificăm următoarele:

03

Configurare firewall

Pentru a permite conexiunile către server este nevoie de setat firewall-ul preinstalat (cu ajutorul utilitarului iptables) prin deschiderea port-urilor de care avem nevoie: 80 pentru conexiuni HTTP, 443 pentru HTTPS și 21 pentru conexiuni FTP. Pentru aceasta executăm următoarele comenzi în terminal:

# iptables -I INPUT -p tcp –dport 80 -j ACCEPT
# iptables -I INPUT -p tcp –dport 443 -j ACCEPT
# iptables -I INPUT -p tcp –dport 21 -j ACCEPT
# /etc/init.d/iptables save

Notă: De menționat faptul că la acest capitol se încadrează și configurarea router-ului pentru a permite conexinule către server din afara rețeli locale. Pentru aceasta s-a făcut port forwarding către server (IP: 192.168.1.100) la porturile 80,21,443. În afară de aceasta a fost setat Firefall-ul routerului pentru a permite conexiunile prin porturile menționate mai sus.

Instalare pachete necesare

Verificări inițiale

Mai întîi de toate se verifică dacă pachetele ce dorim să le instalăm (apache,httpd,mysql,vsftpd,php) sunt deja instalate prin executarea comenzilor:

# rpm -qa | grep -i apache
# rpm -qa | grep -i httpd
# rpm -qa | grep -i php
# rpm -qa | grep -i mysql

în caz că sunt instalate unul din aceste pachete este necesară eliminarea lui prim executarea comenzii:

# rpm -e numepachet

Instalare și configurare Apache

Se va instala webserverul apache2 prin comanda ce urmează:

# yum install httpd

Pentru configurări se editează fișierul /etc/httpd/conf/httpd.conf și anume:

  • se setează directorul implicit pentru stocarea fișierelor .php, .html, etc :

în cazul nostru el este /var/www/html

DocumentRoot “/var/www/html”

<Directory “/var/www/html”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

  • se configurează serverul astfel încât fișierele php, html să nu fie percepute ca text dar să fie procesate de server în mod normal:

33

  • adaugăm index.php pentru a putea fi și ea ca pagină de start:

<IfModule mod_dir.c>
DirectoryIndex index.php index.htm intex.html
</IfModule>

După toate aceste setări pornim Apache (httpd) prin rulearea comenzii:

# service httpd start

Dacă serverul s-a pornit cu succes vom avea următorul mesaj:

04Apoi verificăm dacă se oprește corect serverul:

# service httpd stop

În caz de succes se afișează următoarele:

05Instalare și configurare MySQL

Se instalează baza de date MySQL și pachetele necesare pentru a face legătura dintre mysql și php:

# yum install mysql mysql-server mysql-php

Pornim serverul mysql:

# service mysqld start

Dacă s-a pornit cu succes avem mesajul:

55
Rulăm careva comenzi pentru a testa funcționalitatea mysql-ului. Ne logăm în consola mysql:

# mysql

Apoi executăm:

> CREATE DATABASE db1;
> CREATE USER ‘test’@'localhost’ IDENTIFIED BY ‘moldova’;
> GRANT ALL PRIVILEGES ON *.* to ‘test’@'localhost’ WITH GRANT OPTION;

La executarea cu succes avem aceste mesaje:

44
Pentru a ieși din mysql promt:

> \q

Oprim serverul mysql:

# service mysqld stop

Dacă s-a oprit cu succes avem mesajul:

66Instalare PHP

Pentru a putea rula fișiere PHP pe serverul Apache și pentru a face conexiune din PHP către MySQL este nevoie de instalat pachetele php și php-mysql:

# yum install php php-mysql

Instalare și configurare FTP

Pentru a realiza conexiuni FTP către server se va instala utilitarul vsftpd:

# yum install vsftpd

Pornim serviciul pentru a testa dacă merge corect:

# service vsftpd start

Dacă se pornește corect avem următorul mesaj:

77
Apoi, adăugăm un user pentru a ne conecta prin ftp:

# useradd Neo
# passwd Neo

Setăm folderul (/var/www/html) implicit al utilizatorului Neo prin editarea fișierului /etc/passwd:

# nano /etc/passwd

Aici edităm următoarea linie după cum urmează:

Neo:x:500:500::/var/www/html:/bin/bash

Mai apoi trebuie creeate anumite privilegii asupra folderului acestui utilizator :

# chown Neo /var/www/html
# chmod 777 /var/www/html

Chiar și după aceasta utilizatorul Neo nu va avea acces la fișierele și folderele apartenente sistemului, de aceea deschidem permisiunea utilizatorilor ce se conectează prin ftp de a accesa foldere din sistem:

# /usr/sbin/setsebool -P ftp_home_dir=1

Oprim serviciul FTP:

# service vsftpd stop

Dacă s-a oprit cu succes avem mesajul:

88Instalare și configurare server securizat SSL

Instalăm pachetele SSL necesare securizării:

# yum install mod_ssl openssl

Creeăm propriul certificat după cum urmează:

  • generăm key-a privată

# openssl genrsa -out ca.key 1024

  • generăm CSR-ul

# openssl req -new -key ca.key -out ca.csr

S-au introdus următoarele date în certificat:

456456

  • generăm key-a propriu-zisă

# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Dacă execuția a avut loc cu succes avem următorul mesaj:

675675

  • mutăm fișierele în locația necesră

# mv ca.crt /etc/pki/tls/certs
# mv ca.key /etc/pki/tls/private/ca.key
# mv ca.csr /etc/pki/tls/private/ca.csr

Apoi, edităm fișierul de configurație a securizării SSL la Apache:

# nano +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf

Facem următoarele modificări:

23423
121212Mai este nevoie de editat fișierul httpd.conf :

# nano /etc/hhtpd/conf/httpd.conf

Aici adăugăm următoarele:

540Restartăm serverul Apache:

# service httpd restart

Aplicații practice

HTTP, MySQL, PHP

Accesăm adresa serverului din browser pentru a verifica funcționalitatea corectă a LAMP-ului:

httpNotă: Pe server au fost încărcate fișierele .php ale unui site care necesită și o bază de date MySQL

FTP

Conectarea la server :

ftp_connectÎncărcare fișiere:

ftp_incarcHTTPS, SSL

Conectarea la pagina web prin protocolul https securizat SSL:

ssl1ssl2ssl3

Pagina web accesată prin intermediul protocolului HTTPS:

https

Bibliografie

Documentarea în pdf o puteți solicita la pagina de Contact.


9 Comentarii la “Configurare server LAMP (Linux, Apache, MySQL, PHP)”

  1. Bun articol.

    Sper că l-ai înscris în concurs ;)

    Răspunde
  2. eu nu am atita rabdare si pasiune sa studiez aceste sisteme, cred ca a fost vreo lucrare semestriala

    Răspunde
  3. @neagaoleg: păi, în vreo 5-7 zile l-am realizat. a fost proiect de vacanță

    Răspunde
  4. @Nicolae Vartolomei: mulțumesc
    @mircea iurcu: nu corespunde termenilor

    Răspunde
  5. ryunoske spune:

    pentru mine a fost nou crearea SSL, în rest m-am jucat şi eu destul în anii de studenţie cu goange de astea.
    bv, îmi plac oamenii pasionaţi de ceva

    Răspunde
  6. @ryunoske: mulțumesc ;)

    Răspunde
  7. Ma bucur ca in moldova mai sunt baietz care se ocupa cu ceva serios. Imi amintesc de un proiect asemanator numai ca pe freebsd http://blog.arvat.org/archives/392

    Răspunde
  8. Foarte bun articol… trebuie de incercat

    Răspunde

Trackbacks/Pingbacks

  1. Tweets that mention Gânduri numerice » Configurare server LAMP -- Topsy.com - [...] This post was mentioned on Twitter by Nicolae Vartolomei and Iurcu Mircea, Grigoriev Sergiu. Grigoriev Sergiu said: New Blog ...

Lasă un răspuns