serverplus’da WordPress 10 daqiqada
WordPress saytini serverplus VPS’da tom ma’noda 10 daqiqada ishga tushirish mumkin. Quyida ikkita yo‘l: Docker Compose orqali (eng tez va toza) va klassik LEMP (nginx + PHP + MariaDB), agar hammasini «qo‘lda» qilmoqchi bo‘lsangiz. Ustiga domen, bepul SSL va bazaviy himoya.
Nima kerak bo‘ladi
- serverplus VPS: boshlash uchun 1–2 vCPU, 2 GB RAM, 20+ GB disk yetarli. Disk turi —
ssd-universal(sayt va MB uchun yaxshi muvozanat). - OS: Ubuntu 24.04 LTS (yoki 22.04 LTS) — tavsiya etiladigan variant.
- Domen (tavsiya etiladi) — HTTPS’ni yoqish uchun. Domen DNS’iga kirish kerak bo‘ladi.
- SSH orqali kirish serverga (kalit bilan).
WordPress talablari (dolzarb). PHP 8.3+, MariaDB 10.6+ yoki MySQL 8.0+, HTTPS. Quyidagi ikkala usulda ham bu versiyalar hisobga olingan.
1-usul — Docker Compose (tez va toza)
WordPress va ma’lumotlar bazasi ikkita fayl va bitta buyruq bilan ko‘tariladi. Tizimni «ifloslantirmaydi», ko‘chirish va yangilash oson.
1. Docker o‘rnating
# Docker o‘rnatishning rasmiy skripti curl -fsSL https://get.docker.com | sudo sh # tekshiruv sudo docker version
2. Loyiha yarating
mkdir -p ~/wordpress && cd ~/wordpress
Parollar bilan .env faylini yarating (o‘zingiznikiga, ishonchliga almashtiring):
MYSQL_ROOT_PASSWORD=change_me_root MYSQL_DATABASE=wordpress MYSQL_USER=wp_user MYSQL_PASSWORD=change_me_strong
docker-compose.yml yarating:
services: db: image: mariadb:11 restart: always environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db_data:/var/lib/mysql wordpress: image: wordpress:php8.3-apache restart: always depends_on: - db ports: - "80:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_NAME: ${MYSQL_DATABASE} WORDPRESS_DB_USER: ${MYSQL_USER} WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD} volumes: - wp_data:/var/www/html volumes: db_data: wp_data:
3. Ishga tushiring
sudo docker compose up -d # konteynerlar holati sudo docker compose ps
Brauzerda http://serveringiz_IP ni oching — WordPress o‘rnatish ustasini ko‘rasiz. Tayyor, keyingisi — «Birinchi kirish» bo‘limi.
Firewall. Kerakli portlarni oching:
sudo ufw allow OpenSSH,sudo ufw allow 80,sudo ufw allow 443, so‘ngsudo ufw enable.
2-usul — Klassik LEMP (nginx + PHP + MariaDB)
Agar komponentlarni to‘g‘ridan-to‘g‘ri tizimga o‘rnatishni afzal ko‘rsangiz. Buyruqlar — Ubuntu 24.04 uchun.
1. Paketlar
sudo apt update sudo apt install -y nginx mariadb-server \ php-fpm php-mysql php-gd php-xml php-mbstring php-curl php-zip
2. Ma’lumotlar bazasi
sudo mysql_secure_installation # root parolini bering, savollarga Y deb javob bering sudo mysqlCREATE DATABASE wordpress CHARACTER SET utf8mb4; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'change_me_strong'; GRANT ALL ON wordpress.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
3. WordPress fayllari
cd /tmp && curl -O https://wordpress.org/latest.tar.gz tar xzf latest.tar.gz sudo cp -r wordpress /var/www/mysite sudo chown -R www-data:www-data /var/www/mysite
4. nginx-sayt
/etc/nginx/sites-available/mysite yarating (kerak bo‘lsa domen va PHP-FPM versiyasini almashtiring):
server { listen 80; server_name example.com www.example.com; root /var/www/mysite; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; } }sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
So‘ng saytni domen/IP orqali oching va o‘rnatish ustasini bajaring.
Domen va DNS
Sayt domen orqali ochilishi va HTTPS ishlashi uchun domenni server IP’siga yo‘naltiring:
- A-yozuv
@→ VPS’ingiz IP’si. - A-yozuv
www→ o‘sha IP (yoki asosiy domenga CNAME).
DNS yangilanishi bir necha daqiqadan bir-ikki soatgacha vaqt olishi mumkin. Tekshirish: dig +short example.com.
Bepul SSL (HTTPS) bir daqiqada
Domen serverga ishora qilgandan so‘ng, certbot orqali Let’s Encrypt sertifikati bilan HTTPS’ni yoqing.
LEMP uchun (nginx)
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com
Certbot HTTPS’ni nginx konfiguratsiyasiga o‘zi yozadi va avto-uzaytirishni sozlaydi.
Docker-usul uchun. Eng osoni — WordPress oldiga avtomatik TLS’li reverse-proksi qo‘shish (masalan Caddy yoki Nginx Proxy Manager) — u sertifikatni o‘zi chiqaradi va uzaytiradi. Yoki certbot’ni xostga o‘rnatib, konteyner portiga proksilash.
Birinchi kirish va bazaviy sozlash
- Saytni oching → WordPress ustasi: tilni tanlang, sayt nomini, administrator loginini (
adminemas!) va ishonchli parolni kiriting. /wp-adminga kiring → «Sozlamalar» → saytning to‘g‘ri manzilini kiriting (https://bilan).- Demo-kontent va ortiqcha mavzu/plaginlarni o‘chiring, kerakli mavzuni o‘rnating.
- «Doimiy havolalar» (CNC) ni «Sozlamalar → Doimiy havolalar» da sozlang.
Bazaviy himoya
adminloginini ishlatmang va uzun parol o‘ylab toping; plagin bilan ikki faktorli autentifikatsiyani yoqing.- Hammasini yangilang: WordPress yadrosi, mavzular va plaginlar — buzishlarning ko‘pi eskirgan plaginlar orqali bo‘ladi.
- Plaginlarni faqat ishonchli manbalardan o‘rnating va ishlatilmaydiganlarini o‘chiring.
- Firewall va SSH: tashqariga — faqat 80/443 va SSH; SSH’ga kalit bilan kiring, parol bilan emas.
- Zaxira nusxalari: zaxiralarni serverdan alohida saqlang (snapshot + serverplus S3 obyekt xotirasiga yuklash).
- HTTPS majburiy — bu ham xavfsizlik, ham SEO’ga plus.
Yangilanishlar va zaxiralar
Docker-usul — obrazlarni yangilash:
cd ~/wordpress sudo docker compose pull sudo docker compose up -d
Zaxira (Docker): fayllar bilan tomlarni va ma’lumotlar bazasi dumpini saqlang:
# baza dumpi sudo docker compose exec db \ sh -c 'mariadb-dump -u root -p"$MYSQL_ROOT_PASSWORD" wordpress' > wp-db.sql
Fayllar (mavzu/plagin/yuklamalar bilan wp-content katalogi) va MB dumpi — tiklash uchun kerak bo‘lgan hamma narsa. Ularni S3’da yoki alohida serverda saqlang.
Ko‘p beriladigan savollar
Qaysi usulni tanlash — Docker yoki LEMP?
Tez va tartibli boshlash uchun — Docker Compose: o‘rnatish, yangilash va ko‘chirish osonroq. LEMP’ni to‘liq nazorat kerak bo‘lsa yoki shunday odatlangan bo‘lsangiz oling.
Minimal VPS yetadimi?
Kichik sayt/blog uchun — ha: 1–2 vCPU va 2 GB RAM. Yuklama va ko‘p plagin uchun RAM qo‘shing va baza ostiga ssd-universal yoki nvme-fast oling.
Domensiz bo‘ladimi?
Test uchun — ha, IP orqali. Lekin normal sayt uchun domen kerak: usiz SSL chiqarib bo‘lmaydi, HTTPS esa bugun majburiy.
Saytni qanday tezlashtirish mumkin?
Keshlash plagini, rasmlarni optimallashtirish, yangi PHP versiyasi (8.3+) va baza ostiga ssd-universal/nvme-fast disk. Trafik uchun — CDN.
O‘rnatishdan keyin sayt ochilmayapti.
Firewall’ni (80/443 ochiqmi), konteyner/xizmatlar ishga tushganini (docker compose ps yoki systemctl status nginx php8.3-fpm) va DNS kerakli IP’ga ishora qilishini tekshiring.