Găzduire web: primii pași

Tot ce urmează se face din Cont → Hosting pe medialab.works. Planurile și prețurile sunt pe pagina de găzduire; ce este inclus e descris în prezentarea găzduirii.

1. Comandă un plan

  1. Deschide pagina de găzduire și alege planul și perioada de facturare (lunar sau anual).
  2. Adaugă opțiuni dacă ai nevoie: mai mult disc, vCPU sau RAM, ori backup extins. Le poți schimba mai târziu.
  3. Introdu adresa de e-mail (sau autentifică-te, dacă ai deja cont; altfel contul de client se creează la plată și parola temporară vine pe e-mail), bifează acordul cu Termenii, Politica de utilizare acceptabilă și Acordul de prelucrare a datelor și plătește prin Stripe.

Contul de găzduire se creează automat după plată, de obicei în câteva minute, și primești un e-mail. Garanția de 30 de zile bani înapoi începe cu prima plată.

2. Adaugă un site

În Site-uri → Adaugă un site:

  • Nume: litere mici, cifre și cratime. Devine dosarul www-data/<nume> din dosarul tău personal.
  • Tehnologie: PHP 8.1–8.5, Node.js 22 sau 24, Python 3.12 (Node.js și Python de la Standard) sau static.
  • Server web (doar pentru PHP): Apache citește fișierele .htaccess, ca la majoritatea găzduirilor, și este alegerea sigură pentru WordPress și pentru majoritatea aplicațiilor PHP care vin cu reguli de rescriere în .htaccess. nginx este mai ușor și mai rapid la fișierele statice, dar ignoră .htaccess; WordPress merge pe el fără modificări. Alegi pentru fiecare site.
  • Domeniu (opțional): domeniul tău sau un subdomeniu al unui domeniu din cont (de exemplu blog.domeniultau.ro); înregistrarea DNS a subdomeniului se creează automat. Fără domeniu, site-ul merge imediat pe adresa de previzualizare, <site>-<utilizator>.hosting.medialab.works (doar HTTP, până muți domeniul).
  • Rădăcina web (PHP și static): folderul din www-data/<site> servit vizitatorilor, implicit public; . înseamnă chiar folderul site-ului.

La creare, folderul site-ului primește o pagină de început (index.php sau index.html) care arată că domeniul ajunge la server, unde e găzduit site-ul și ce versiune de PHP rulează. Înlocuiește-o cu fișierele tale.

Unde pui fișierele:

Tehnologie Dosar
PHP, static www-data/<site>/public (sau rădăcina web aleasă)
Node.js, Python www-data/<site>/app

3. Conectează domeniul

Când adaugi un domeniu (odată cu un site sau din Domenii), creăm pentru tine:

  1. o zonă DNS în Cloudflare, în contul nostru, cu înregistrările web și de e-mail (MX, SPF, DKIM, DMARC, autoconfig);
  2. domeniul de e-mail pe serverul nostru de e-mail, cu cheia lui DKIM;
  3. site-ul pe server, cu un certificat SSL de îndată ce domeniul indică spre noi.

Ce faci tu: la firma la care ai înregistrat domeniul (registrarul), înlocuiești serverele de nume cu cele două afișate în Cont → Hosting → Domenii. Schimbarea durează de obicei de la câteva minute la câteva ore, uneori până la 48 de ore. Pagina domeniului arată fiecare pas; când serverele de nume sunt văzute, zona devine activă, iar certificatul se emite automat. Verifică DNS-ul și Emite certificatul îți permit să reîncerci imediat.

Vrei să rămâi la furnizorul de DNS actual? Îndreaptă în schimb o înregistrare A spre adresa IP afișată în cont și adaugă singur înregistrările de e-mail, dacă vrei e-mail pe domeniu (tabelul cu înregistrările DNS din cont le arată). Fără serverele noastre de nume, înregistrările DNS sunt responsabilitatea ta.

4. Publică un site PHP (exemplu: WordPress)

  1. Creează un site cu PHP 8.4 (sau versiunea de care are nevoie aplicația) și Apache.
  2. Creează o bază de date MariaDB în Baze de date (de exemplu wp; numele complet devine <utilizator>_wp). Parola utilizatorului de baze de date se afișează o singură dată, când creezi prima bază MariaDB: salveaz-o.
  3. Încarcă WordPress în www-data/<site>/public din Fișiere (o arhivă .zip, apoi Dezarhivează), prin SFTP (secțiunea 8) sau prin SSH.
  4. În wp-config.php folosește:
    • DB_NAME: <utilizator>_wp
    • DB_USER: utilizatorul tău de baze de date (același cu utilizatorul contului)
    • DB_PASSWORD: parola salvată
    • DB_HOST: mlw-db:3390
  5. Deschide adresa site-ului și termină instalarea WordPress.

Alte aplicații PHP (Laravel, Symfony, Drupal, WHMCS, Nextcloud …) se publică la fel. Încarcă proiectul în www-data/<site>, apoi, în Setări lângă site, apasă Detectează: recunoaștem aplicația și îți propunem rădăcina web (public la Laravel și Symfony, web la Drupal cu Composer, folderul aplicației la WordPress, WHMCS sau Nextcloud). Fișierele din afara rădăcinii web (vendor/, storage/, .env, datele Nextcloud, folderele attachments, downloads și templates_c ale WHMCS) rămân accesibile aplicației, dar nu din browser.

5. Aplicații Node.js și Python

Încarcă aplicația în www-data/<site>/app. Ea trebuie să asculte pe portul din variabila de mediu PORT (8080 în container) pe toate interfețele (0.0.0.0), nu doar pe localhost. Serverul web și certificatul sunt în fața ei; nu deschizi tu niciun port.

Cum pornește aplicația, în această ordine:

  • Node.js: un start.sh executabil în app/; altfel npm start din package.json (dependențele se instalează cu npm ci --omit=dev dacă lipsește node_modules); altfel server.js, index.js, app.js sau main.js.
  • Python: un start.sh executabil; altfel asgi.py (servit de workeri uvicorn în gunicorn); altfel app.py cu un obiect app sau wsgi.py cu application (gunicorn). requirements.txt se instalează într-un mediu virtual și se reinstalează la pornire dacă fișierul s-a schimbat.

După ce încarci o versiune nouă, apasă Repornește lângă site. Până când se găsește o aplicație, site-ul arată o pagină provizorie care spune ce lipsește.

6. Fișiere și jurnale

Fișiere din Cont → Hosting este un manager de fișiere pentru www-data (site-urile), logs (jurnalele) și restore (copiile restaurate):

  • navighezi prin foldere, creezi, redenumești, muți și ștergi (ștergerea cere numele scris ca confirmare);
  • încarci fișiere de orice mărime permisă de plan (fișierele mari se trimit pe bucăți) și dezarhivezi .zip, .tar.gz, .tar.bz2 sau .tar.xz, cu opțiunea de a goli întâi folderul de destinație;
  • editezi fișierele text (până la 1 MB) direct în browser;
  • descarci un fișier sau un folder întreg ca .zip: arhiva se pregătește în fundal și apare la Operații și descărcări, unde rămâne 24 de ore.

Jurnalele fiecărui site sunt în logs/<site>/: nginx/ sau apache/ (access.log, error.log) și php/ (sau node/, python/) pentru ieșirea aplicației. Le vezi și în Setări → Jurnale, lângă site, și prin SFTP.

Tot din Setări poți opri și porni un site (cât e oprit, vizitatorii văd o pagină „indisponibil”), îi poți descărca arhiva sau îl poți restaura dintr-o arhivă încărcată de tine.

7. Baze de date

  • MariaDB și PostgreSQL. Toate bazele de același tip folosesc un singur utilizator de baze de date, cu numele contului tău. Parola lui se afișează o singură dată, la prima bază de acel tip; Parolă nouă creează alta pentru toate bazele de acel tip (actualizează apoi site-urile).
  • Din site-uri (din containere), gazda bazei de date este mlw-db, portul 3390 pentru MariaDB și 5490 pentru PostgreSQL.
  • Prin SSH (de la Standard), aceleași baze sunt la 127.0.0.1, pe aceleași porturi, de exemplu mysql -h 127.0.0.1 -P 3390 -u <utilizator> -p sau psql -h 127.0.0.1 -p 5490 -U <utilizator> <utilizator>_db.
  • Editorul web (Adminer, pentru MariaDB și PostgreSQL) se deschide cu Editor lângă bază: intri direct, cu un login temporar valabil 4 ore, fără parola bazei, și vezi doar bazele contului tău.
  • Export (.sql.gz) și import (.sql, .sql.gz; la PostgreSQL și .dump din pg_dump -Fc) din aceeași listă. Importul rulează cu drepturile contului tău: tabelele cu aceleași nume se înlocuiesc, așa că exportă întâi baza dacă vrei o copie.
  • Bazele de date nu sunt accesibile direct din internet.

8. SFTP și SSH

Serverul, portul (22) și numele de utilizator sunt în Cont → Hosting → SFTP și SSH.

  • Start: SFTP cu parolă. Creează o parolă nouă o afișează o singură dată; cea veche nu mai merge.
  • Standard, Pro și Business: SFTP și SSH cu cheile tale SSH (autentificarea cu parolă e oprită). Adaugă cheia publică (ssh-ed25519, ssh-rsa sau ecdsa-…) și conectează-te cu comanda afișată acolo. Git este disponibil prin SSH.

Dosarul tău personal conține www-data (site-urile), logs (jurnalele site-urilor) și restore (copiile restaurate). Nu ține date secrete în rădăcina web.

9. E-mail

  1. Adaugă mai întâi domeniul; căsuțele se pot crea după ce configurarea lui de e-mail s-a încheiat (pagina domeniului arată pasul).
  2. În E-mail, creează o căsuță și alege-i spațiul. Parola se afișează o singură dată.
  3. Majoritatea aplicațiilor de e-mail se configurează singure după adresă (autoconfig). Dacă a ta cere datele, serverul de intrare (IMAP, portul 993) și cel de ieșire (SMTP submission, portul 587) este serverul de e-mail din înregistrarea MX a domeniului, afișat în tabelul cu înregistrările DNS.

Trimiterea din site-uri: trimite prin SMTP pe portul 587 cu una dintre căsuțele tale (în WordPress, cu un plugin SMTP). Trimiterea directă pe portul 25 este blocată pentru toate conturile de găzduire.

10. Backup și restaurare

  • În fiecare noapte se face un backup al fișierelor și bazelor de date, păstrat după planul tău: Start 7 zile, Standard 14 zile, Pro 14 zilnice + 4 săptămânale, Business 30 zilnice + 12 lunare. Opțiunea de backup extins îți dă retenția planului următor (Start → 14 zile, Standard → 14 zilnice + 4 săptămânale, Pro → 30 zilnice + 12 lunare).
  • Backup-urile sunt criptate și stocate pe un disc separat din același server, nu într-o a doua locație. Păstrează o copie proprie a tot ce e important.
  • Restaurezi singur din Backup: alegi copia și ce restaurezi (tot contul, un site sau o bază de date). Fișierele se copiază implicit într-un dosar nou, restore/, iar fișierele actuale rămân neatinse; bifează Înlocuiește fișierele actuale ca să restaurezi pe loc. Restaurarea unei baze de date o înlocuiește cu copia ei.
  • Backup acum pornește un backup în afara programului (de cel mult 3 ori pe zi), de exemplu înaintea unei actualizări.
  • Descarcă dintr-un backup un site, toate site-urile sau o bază de date: fișierul apare la Operații și descărcări.
  • Restaurarea făcută de noi: descrii ce să restaurăm și din ce zi. Prima restaurare din fiecare lună este gratuită; următoarele costă 10 € fiecare.

11. Limite și utilizare

Pagina contului arată discul, fișierele (inode-urile), procesorul și memoria folosite față de plan. Procesorul și memoria sunt limite fixe: o aplicație care are nevoie de mai mult este încetinită sau oprită, niciodată facturată în plus. Numărul de site-uri, baze de date și căsuțe urmează planul; la Business sunt nelimitate în limita utilizării rezonabile.

Peste limita de disc sau de fișiere: îți scriem pe e-mail și ai 7 zile să eliberezi spațiu sau să adaugi disc (opțiunea +10 GB). După 7 zile, încărcările se blochează (SFTP devine doar citire) până când contul revine sub limită; site-urile rămân online. Când utilizarea scade sub limită, încărcările se deblochează automat, la următoarea verificare zilnică.

12. Schimbă planul sau anulează

  • Schimbă planul sau opțiunile din Cont → Hosting: vezi întâi prețul. Când treci la un plan mai mare sau adaugi opțiuni, plătești doar diferența pentru restul perioadei curente (proporțional), iar limitele noi se aplică într-un minut. Un plan mai mic este acceptat doar dacă site-urile, bazele de date, căsuțele și discul tău încap în el.
  • Anulezi din aceeași pagină. Contul rămâne activ până la sfârșitul perioadei plătite, apoi este suspendat și șters după 30 de zile; backup-ul final se păstrează în aceste 30 de zile. Poți renunța la anulare înainte de sfârșitul perioadei.
  • Plată eșuată: site-urile rămân online în perioada de grație de 7 zile, cât timp cardul este reîncercat. Dacă plata tot nu reușește, contul este suspendat (nu șters) și repornește imediat ce factura este plătită.
  • Bani înapoi: în 30 de zile de la prima plată, ceri rambursarea din cont (tichet) sau la contact@medialab.works; contul se închide apoi.

Întrebări? Vezi întrebările frecvente sau scrie-ne.