Tutorial – Cum să-ți faci propriul hosting acasa

16 iunie 2015

Printre administratorii de sistem circulă o vorbă – cel mai bun hosting e „localhost”-ul, ceea ce vrea să subânțeleagă că cele mai bune condiții de hosting pot  fi satisfăcute doar la Dumneavoastră acasă, în serverul adaptat special pentru asta.

La companiile de găzduire publice pot fi multe lucruri care să nu vă satisfacă. Spațiul pe disk, performanța serverului, programele instalate în server (s-ar putea ca site-ul Dumneavoastră să aibă nevoie de o librărie care nu-i instalată pe server).

În acest articol voi descrie cum să vă găzduiți site-ul la Dumneavoastră acasă.

Veți avea nevoie de:

  • Conexiune la Internet – în funcție de cât trafic va avea site-ul Dumneavoastră.
  • Un router ca să împartă conecțiunea la internet și cu alte computere din casă. Desigur, puteți opta să aveți două linii de internet, una pentru server și alta pentru stațiile de lucru. Dar dacă ne gândim la economie, mai bine e să împărțiți o conecțiune doar, și să procurați un router.
  • Un server – care poate fi un computer vechi dar funcțional. Performanța computerului iarăși, trebuie aleasă în funcție de specificul site-ului pe care vreți să-l găzduiți, numărului de vizitatori, etc.
  • Cunoștințe de bază de unix/linux, care pot fi învățate de aici (material în engleză). În doar 8 lecții veți deține cunoștințele necesare lucrului cu sistemele de tip Unix.
  • Răbdare.

Configurarea rețelei

În general, rețeaua va arăta, cu mici modificări, în felul următor:

hosting acasa

Unde:

  • Internet User – este utilizatorul de internet, vizitatorul site-ului Dumneavoastră.
  • ISP Gateway – este prestatorul de servicii internet.
  • Firewall/Router – este routerul, care va sta permanent conectat la internet, și va împărți banda între stațiile de lucru și server.
  • Linux Box – serverul web, pe care îl veți configura.
  • Workstation – stația de lucru, computerul personal.

Atenție la partea de sus a schemei, unde este reprezentată rețeaua publică și rețeaua privată. Până la router se consideră rețea publică, iar computerul Dumneavoastră e cunoscut printr-un IP public, unic în toată lumea, iar după router începe rețeaua privată, sau locală, unde serverul și computerele vor avea un IP privat (192.168.1.100 de exemplu). Ambele însă, când vor naviga pe internet, vor fi cunoscute ca având IP-ul public. IP-ul public îl puteți afla intrând pe http://www.ip-adress.com .

IP-ul public poate fi static sau dinamic. Static, înseamnă că nu se schimbă, nici dacă vă deconectați de la internet și vă conectați iar.

IP dinamic se schimbă de fiecare dată când vă conectați la internet, iar uneori, după o perioadă de inactivitate în rețea.

Cel mai bine este să aveți un IP static, ca să specificați la registratorul de domeniu un ip pe care să se rezolve adresa site-ului Vostru.

Dacă aveți IP dinamic, nu disperați, există soluție gratuită și pentru situația Dumneavoastră – dyndns. El vă va permite să găzduiți un sait pe un server cu IP dinamic. Exista si alte servicii free DNS. De exemplu, furnizorul de servicii de internet RDS ofera gratuit un serviciu similar abonatilor. Acesta se configureaza din contul fiecarui utilizator.

Pregătirea serverului

Am pornit de la ideea că aveți un computer pe care îl veți folosi pe post de server. Ar fi bine să aibă și  un CD-ROM, și conecțiune la internet (o veți seta în timpul instalării).

Primul pas este instalarea unei distribuții de Linux. Ele sunt multe, noi recomandăm Debian. Puteți folosi varianta net install, veți descărca imaginea unui cd, de aproximativ 150 Mb, iar la instalare, după ce veți configura rețeaua, se vor scoate din internet restul pachetelor și se vor instala singure.

Imagini ale CD-urilor găsiți aici. Pe majoritatea îi vor interesa doar imaginea pentru arhitectura i386 sau amd64 (se referă la arhitectura procesorului, primul e Intel, al doilea – Athlon). După ce ați descărcat imaginea, creați un cd cu ea (Burn CD Image). Introduceți cd-ul în server, asigurați-vă că ați conectat tastatura, monitorul și cablul de rețea, și porniți serverul.

Instalarea e destul de ușoară, la ultima versiune de Debian, pare-se că este și instalare grafică. Ca să aveți o ideie despre cum se instalează un Debian – accesați această pagină.

Câteva lucruri la care trebuie de atras atenția:

  • De dorit ca hard disk-ul serverului să fie curat, fără nicio informație pe el. De dorit nici partiții să nu fie. În caz contrar, faceți o copie de rezervă pe alt hard disk a informației importante.
  • Country – selectați ori Moldova, ori România, ori țara în care vă aflați (le găsiți la secțiunea Other).
  • Keyboard Layout – folosiți American English.
  • Hostname și Domain Name – scrieți aici ce doriți.
  • Time Zone – GMT+2 – ora Bucureștiului.
  • Partiționarea – vedeți mai jos, e temă aparte.
  • Root Password – parola de administrator. Alegeți una grea.
  • Setările de rețea le veți alege destul de ușor.
  • Debian archive mirror country – alegeți o țară apropiată Vouă. Din serverele din această țară se vor descărca pachetele pentru instalare. Proximitatea poate folosi doar la viteza de descărcare.
  • Debian archive mirror – alegeți un server de pe care să se descarce programele. Dacă nu va merge, veți selecta alt server.
  • Software Selection – pentru web server recomandăm să lasați debifate toate opțiunile. Programele le vom instala mai apoi.

Totul e destul de intuitiv, în afară de partiționare.

Partiționarea

Recomandarea noastră este să folosiți partiționarea manuală – Manual. Veți folosi tot hard disk-ul. În funcție de cât de mare va fi site-ul. Recomandăm să creați partiții aparte pentru mapele /home , /usr, /var, și /boot şi /tmp (acestea sunt mounting point, atunci când creați o partiție). Să zicem că saitul Dumneavoastră va avea 1 GB, iar bazele de date ale lui vor avea încă 5 GB în viitor, recomandăm așadar ca partiția /var , unde se va păstra saitul și bazele de date, să aibă măcar 12-13 GB,  să fie și cu rezervă.

Copiile de rezervă le puteți păstra pe partiția /home (/home e mapa în care se păstrează directoriile utilizatorilor). /tmp trebuie să fie aparte ca să nu sufere sistemul în caz de epuizare a spațiului din mapa temporară. Pentru un hard disk de 80 GB, schema de partiționare poate arăta în felul următor:

(toate partițiile în afară de ultima vor fi de tip ext3)
/ – partiția root, sau /, – 5 GB
/var – partiția pe care vor fi saiturile și bazele de date – 15 GB
/usr – aici vor sta o bună parte din programele instalate, şi informaţia statică – 8 GB
/boot – pe această partiţie vor sta fişierele pentru start-up. 200 MB.
/tmp – aici vor sta fișierele temporare – 2 GB
/home – aici vor fi fișierele utilizatorilor, eventual, copiile de rezervă. Tot aici vor putea fi trecute bazele de date și/sau saiturile atunci când se va epuiza spațiul pe /var – 44 GB.

Partiție swap – sistem de fișiere swap, folosită de sistem pentru situația când nu mai poate aloca memorie operativă – 2 GB, sau de două ori mai mult decât memoria operativă.

Cum am spus mai sus, la crearea partiției, să zicem, de root (/), din meniu se va adăuga ca mounting point – „/”. La crearea partiției /home, se va indica „/home” ca mounting point. Veți înțelege asta atunci când veți partiționa.

După instalare

După ce veți reporni serverul, ar fi bine să instalați programele necesare unui web server. Ar fi bine să fiți obișnuiți lucrului cu consola (la începutul articolului este o legătură către un sait, care în 8 lecții vă va învăța aproape tot ce trebuie să știți despre lucrul cu consola). Iată comenzile pe care le veți scrie pentru instalarea programelor necesare (după ce vă veți autentifica ca root, utilizând parola):

Înainte de instalare, ar fi bine să înnoiți bazele cu programele disponibile:

apt-get update
apt-get upgrade

Instalarea serverului Web (apache2):

apt-get install apache2 php5 libapache2-mod-php5

Serverul web a fost instalat. Fișierul de configurare se află în /etc/apache2/apache2.conf . Directoriul unde se află/se vor afla saiturile – /var/www .

Instalarea serverului MySQL:

apt-get install mysql-server mysql-client php5-mysql

De obicei, se va instala MySQL, cu un utilizator root, fără parolă. Dacă veți dori să adăugați parola pentru acest utilizator:

mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('noua_parolă') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Instalare phpMyAdmin

Unii ar găsi util instrumentul phpmyadmin – pentru administrarea mai ușoară a mysql-ului. Următoarele trei comenzi par să facă treaba:

apt-get install phpmyadmin
echo 'Include /etc/phpmyadmin/apache.conf' >> /etc/apache2/apache2.conf
/etc/init.d/apache2 reload

Accesați din alt computer: http://ip-ul-serverului/phpmyadmin/

În loc de sfârșit

Ca să fie accesibil saitul din afară, trebuie să faceți „port forwarding” la router, ca cererile pe portul 80 să meargă la ip-ul privat al serverului.

Trebuie să configurați ca serverul să aibă mereu aceeași adresă de ip internă, pentru asta va trebui să citiți documentația pentru modelul Dumneavoastră de router.

La registratorul de domeniu indicați ip-ul vostru extern ca A record pentru domeniul Dumneavoastră. Puteți adăuga și o zonă www.domeniulvostru.com (cu www in față) – tot către ip-ul vostru extern, în caz că el e static. Dacă-i dinamic – citiți documentația DynDNS – http://www.dyndns.com/support/kb/webservers.html

Pentru a încărca fișierele saitului pe server, puteți folosi FTP-ul. Pentru asta, recomandăm să instalați un ftp-server:

apt-get install vsftpd

După asta va trebui să editați fișierul de configurare a serverului ftp:

nano /etc/vsftpd.conf

Scoateți simbolul # din fața următoarelor rânduri:

local_enable=YES
write_enable=YES
ftpd_banner=Welcome to my FTP service (aici introduceți ce mesaj doriți)

Modificați următorul rând:
anonymous_enable=YES
să arate în felul următor:
anonymous_enable=NO

Salvați documentul (Ctrl + x, y, enter), și restartați serviciul de ftp:

/etc/init.d/vsftpd restart

Creăm un user fpt:

useradd ftpuser

Se va crea utilizatorul ftpuser, cu parola pe care o veți indica. Dați drepturi de folosință pentru mapa /var/www:

usermod -G www-data ftpuser
chmod -R 775 /var/www

Acum  vă puteți conecta de pe alt computer, prin ftp, folosint total commander sau alt client ftp, numele și parola utilizatorului nou creat pentru a vă conecta la server și a încărca fișierele saitului în mapa /var/www.

Testați totul dacă merge. Dacă da – felicitări.


Pe aceasi tema

4 Comentarii

  1. ion

    foarte interesant si clar articolul. as vrea sa stiu care sunt posibilitatile pentru a gazdui mai multe domenii pe acelasi server si cu acelasi IP static.

  2. Adrian

    Salut,
    Am configurat un ddns la rds si mi-au dat o adresa de forma xxxx.go.ro
    Acuma cum procedez la rotld cu nameserverele, ca acolo i-mi cere ceva de genu ns.domeniu.ro si un ip?

    Multumesc anticipat

    • Valentin

      Ai nevoie de un serviciu extern dns. Ex Huricane electric. E gratuit. Vei pune la rotld.ro name sereverle lor, iar in contul creat la ei vei seta CNAME adresa ta de la rds. O sa fac un tutorial pe tema asta, ceva mai retaliat despre cum sa gazduiesti un website la tine acasa chiar daca nu ai un ip fix.

  3. Badulescu

    Salutare,

    Am un server LAMP, am incarcat siteul in apache2 dar ma intreb daca trebuie sa setez si serverul DNS BIND, daca DA, atunci am nevoie de 2 IPuri statice externe (primary si secondary DNS servers) ?

    Multumesc anticipat,
    Adrian

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *