نحوه نصب وردپرس روی VPS لینوکسی با Nginx

نویسنده تیم مهندسی ONIE · به‌روزرسانی: 21 آبان 1405 · زمان مطالعه: 3 دقیقه

این راهنما وردپرس را روی یک VPS با Ubuntu 22.04 یا 24.04 و با پشته LEMP شامل Linux، Nginx، MariaDB و PHP-FPM راه‌اندازی می‌کند. یک سرور با 2 vCPU و 2 GB RAM شروع مناسبی است؛ برای جزئیات بیشتر به راهنمای انتخاب مشخصات VPS مراجعه کنید. می‌توانید در چند دقیقه یک VPS ابری را راه‌اندازی کنید و همراه با این راهنما پیش بروید. پیش از شروع، example.com را با دامنه خود جایگزین کنید و رکورد A دامنه را به IP سرور اشاره دهید.

1. به‌روزرسانی سرور و باز کردن فایروال

sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

اگر هنوز SSH را ایمن نکرده‌اید، ابتدا این کار را با راهنمای سخت‌سازی SSH انجام دهید.

2. نصب Nginx، MariaDB و PHP

sudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl unzip curl
sudo mysql_secure_installation

3. ایجاد پایگاه داده

sudo mysql
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'USE_A_LONG_RANDOM_PASSWORD';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. دانلود وردپرس

cd /tmp && curl -O https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
sudo mv wordpress /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
cd /var/www/example.com && sudo -u www-data cp wp-config-sample.php wp-config.php

فایل wp-config.php را ویرایش کنید: مقادیر DB_NAME، DB_USER و DB_PASSWORD را برابر مقادیر بالا قرار دهید و کلیدهای احراز هویت را با کلیدهای تازه از مولد رسمی در https://api.wordpress.org/secret-key/1.1/salt/ جایگزین کنید.

5. پیکربندی Nginx

فایل /etc/nginx/sites-available/example.com را بسازید:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php;

    location / { try_files $uri $uri/ /index.php?$args; }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }
    location ~ /\.ht { deny all; }
}
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

اگر /run/php/php-fpm.sock وجود نداشت، از سوکت دارای شماره نسخه استفاده کنید، برای مثال /run/php/php8.3-fpm.sock.

6. افزودن گواهی رایگان HTTPS

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot یک زمان‌بند نصب می‌کند که گواهی را به‌طور خودکار تمدید می‌کند. با دستور sudo certbot renew --dry-run آن را بررسی کنید.

7. تکمیل نصب در مرورگر و سخت‌سازی

https://example.com را در مرورگر باز کنید و نصب‌کننده را تکمیل کنید. سپس:

  • وردپرس، قالب‌ها و افزونه‌ها را به‌روز نگه دارید و آنچه استفاده نمی‌کنید را حذف کنید.
  • از رمزهای عبور قوی و منحصربه‌فرد برای مدیر استفاده کنید و ورود دومرحله‌ای را فعال کنید.
  • پیش از هر به‌روزرسانی بزرگ، یک snapshot یا پشتیبان بگیرید.
  • یک افزونه کش نصب کنید تا بار روی VPS کوچک کاهش یابد.

پرسش‌های متداول

کدام نسخه PHP را باید استفاده کنم؟

از نسخه‌ای استفاده کنید که همراه نسخه Ubuntu شما عرضه شده، به شرط آنکه وردپرس و افزونه‌های شما از آن پشتیبانی کنند. صفحه رسمی نیازمندی‌ها را بررسی کنید.

آیا می‌توان چند سایت را روی یک VPS میزبانی کرد؟

بله. برای هر سایت یک بلوک server در Nginx، یک پایگاه داده و یک پوشه بسازید و مطمئن شوید سرور RAM کافی برای همه آن‌ها دارد.

چرا خطای 502 Bad Gateway می‌بینم؟

Nginx نمی‌تواند به PHP-FPM دسترسی پیدا کند. بررسی کنید PHP-FPM در حال اجرا باشد و مسیر سوکت در فایل Nginx با یک سوکت موجود مطابقت داشته باشد.

منابع و مطالعه بیشتر

راهنماهای بیشتر VPS