راهنمای گام‌به‌گام نصب و پیکربندی سرور مجازی لینوکس

سرور مجازی لینوکس، یا همان VPS لینوکس، یک محیط مجازی است که بر روی یک سرور فیزیکی ایجاد می‌شود و منابع آن (CPU، RAM، دیسک) به صورت اختصاصی یا نیمه‌اختصاصی در اختیار شما قرار می‌گیرد. به عبارت ساده‌تر، VPS ترکیبی از انعطاف‌پذیری هاست اشتراکی و قدرت سرور اختصاصی است.

چرا VPS لینوکس؟

  1. انعطاف‌پذیری بالا:
    شما می‌توانید هر نرم‌افزاری را نصب کنید، تنظیمات سرور را به دلخواه تغییر دهید و از منابع بهینه استفاده کنید. برای مثال، نصب یک دیتابیس MySQL یا راه‌اندازی WordPress کاملاً تحت کنترل شماست.
  2. هزینه به‌صرفه:
    نسبت به سرور اختصاصی، VPS هزینه کمتری دارد ولی بسیاری از مزایای مشابه را ارائه می‌دهد.
  3. امنیت و دسترسی کامل:
    دسترسی روت (root) به شما این امکان را می‌دهد که امنیت سرور را طبق استانداردهای خود تنظیم کنید، مانند فعال کردن فایروال یا استفاده از SSH Key.
  4. اینفوگرافیک مفهومی VPS لینوکس شامل تقسیم یک سرور فیزیکی به چند سرور مجازی با CPU، رم و دیسک اختصاصی و آیکون‌های لینوکس، وب‌ هاستینگ و دیتابیس
  5. کاربردهای گسترده:
    VPS لینوکس مناسب برای انواع پروژه‌هاست:

    • راه‌اندازی وب‌سایت‌های وردپرسی و جوملا
    • توسعه اپلیکیشن‌ها و سرویس‌های تحت وب
    • اجرای پایگاه داده‌های بزرگ مثل MySQL، PostgreSQL یا MongoDB
    • نصب کنترل پنل‌های مدیریتی مانند cPanel و Plesk

پیش‌نیازها و انتخاب سیستم‌عامل برای سرور مجازی لینوکس

قبل از شروع نصب و پیکربندی VPS لینوکس، باید مطمئن شوید که تمامی پیش‌نیازهای لازم را فراهم کرده‌اید تا فرآیند نصب بدون مشکل و امن انجام شود.

۱. پیش‌نیازهای سخت‌افزاری و نرم‌افزاری

برای یک سرور لینوکس بهینه و پایدار، حداقل منابع سخت‌افزاری زیر توصیه می‌شود:

منبعحداقل پیشنهادیتوضیح
RAM1 گیگابایتبرای سرورهای سبک یا تست
CPU1 هستهمناسب برای سایت‌های کوچک و میانه
فضای دیسک10 گیگابایتبرای نصب سیستم‌عامل و نرم‌افزارهای پایه
پهنای باندحداقل 100 Mbpsمناسب برای انتقال داده‌های وب و دانلودها
سیستم عامللینوکس (Ubuntu/Debian/CentOS)بر اساس نیاز و ترجیح شما

نکته: برای وب‌سایت‌های پربازدید، پیشنهاد می‌شود حداقل 2 گیگابایت RAM و 2 هسته CPU در نظر بگیرید.

۲. انتخاب سیستم‌عامل لینوکس

انتخاب سیستم‌عامل مناسب، یکی از مهم‌ترین مراحل قبل از راه‌اندازی VPS است، زیرا روی امنیت، سرعت و پشتیبانی نرم‌افزاری سرور تاثیر مستقیم دارد.

Ubuntu

  • نسخه‌های LTS (Long Term Support) مثل Ubuntu 22.04
  • مزایا: پایدار، مستندات زیاد، محبوب بین توسعه‌دهندگان
  • معایب: نسبت به Debian حجم بیشتری دارد

Debian

  • نسخه‌های 12 و بالاتر
  • مزایا: سبک و ایمن، مناسب برای سرورهای تولید
  • معایب: ممکن است برای مبتدیان کمی پیچیده باشد

CentOS / CentOS Stream

  • نسخه 8 و Stream
  • مزایا: مناسب سازمان‌ها و سرویس‌های پایدار، پشتیبانی طولانی مدت
  • معایب: کمتر مناسب برای پروژه‌های شخصی و تازه‌کارها

پیش‌نیازهای راه‌اندازی VPS لینوکس شامل CPU، رم، دیسک، کلاینت SSH، فایروال و لوگوهای اوبونتو، دبیان و سنت‌اواس

۳. پیش‌نیازهای نرم‌افزاری

قبل از نصب نرم‌افزارهای اصلی، مطمئن شوید که موارد زیر نصب شده باشند:

  1. SSH Client: برای اتصال امن به سرور (مثلاً PuTTY در ویندوز یا ترمینال لینوکس)
  2. ابزارهای پایه: curl، wget، git، unzip
  3. دسترسی sudo یا root: برای نصب و پیکربندی نرم‌افزارها
  4. نام دامنه (اختیاری): اگر می‌خواهید وب‌سایت خود را روی VPS راه‌اندازی کنید

۴. نکات امنیتی پیش از شروع

  • تغییر رمز عبور پیش‌فرض پس از اولین ورود
  • فعال‌سازی فایروال اولیه (UFW یا firewalld)
  • ایجاد کاربر جدید با دسترسی sudo به جای استفاده مستقیم از root

گام ۱ – تهیه و آماده‌سازی VPS لینوکس

قبل از اینکه بتوانید سرور لینوکس خود را نصب و پیکربندی کنید، باید VPS را از یک ارائه‌دهنده معتبر تهیه و آماده کنید. این گام بسیار مهم است، زیرا انتخاب درست منابع و ارائه‌دهنده مناسب، عملکرد و امنیت سرور شما را تضمین می‌کند.

تصویر فرآیند تهیه VPS شامل انتخاب پلن با منابع CPU، رم و فضای ذخیره‌سازی به همراه آیکون IP و کلید SSH

۱. انتخاب ارائه‌دهنده VPS

۲. انتخاب کانفیگ مناسب VPS

هنگام خرید VPS، باید منابع سرور را بر اساس نیازهای پروژه خود انتخاب کنید:

منبعتوصیه برای پروژه‌های سبکتوصیه برای پروژه‌های متوسطتوصیه برای پروژه‌های سنگین
CPU1 هسته2 هسته4 هسته و بیشتر
RAM1 گیگابایت2-4 گیگابایت8 گیگابایت و بیشتر
فضای دیسک10 گیگابایت20-50 گیگابایت100 گیگابایت و بیشتر
پهنای باند100 Mbps500 Mbps1 Gbps یا بیشتر

انتخاب منابع مناسب باعث می‌شود وب‌سایت یا اپلیکیشن شما سریع، پایدار و امن اجرا شود.

۳. دریافت اطلاعات ورود SSH

پس از خرید VPS، ارائه‌دهنده معمولاً اطلاعات زیر را ارائه می‌دهد:

  1. IP سرور – برای اتصال به VPS
  2. نام کاربری – معمولاً root یا کاربری که دسترسی sudo دارد
  3. رمز عبور یا SSH Key – برای ورود امن

📌 توصیه می‌شود بعد از اولین ورود، رمز عبور پیش‌فرض را تغییر دهید و برای امنیت بیشتر SSH Key ایجاد کنید.

۴. نکات امنیتی قبل از شروع نصب

  • تغییر رمز عبور پیش‌فرض:

passwd

  • ایجاد کاربر جدید با دسترسی sudo:

·         adduser username

·         usermod -aG sudo username

  • فعال‌سازی فایروال اولیه:

·         sudo ufw allow OpenSSH

·         sudo ufw enable

  • بررسی اتصال به سرور:
    از دستور ping IP_ADDRESS و تست SSH برای اطمینان از اتصال استفاده کنید.

۵. مثال واقعی برای منابع و کانفیگ VPS

پروژهCPURAMStorageارائه‌دهنده
سایت شخصی وردپرسی1 هسته1 گیگابایت20 GB SSDArvanCloud
فروشگاه آنلاین کوچک2 هسته4 گیگابایت50 GB SSDParsPack
اپلیکیشن وب متوسط4 هسته8 گیگابایت100 GB SSDDigitalOcean
دیتابیس بزرگ و سرور بازی8 هسته16 GB200 GB SSDLinode

این جدول به شما کمک می‌کند منابع سرور را براساس نوع پروژه انتخاب کنید.

گام ۲ – اتصال به سرور با SSH و ورود اولیه

پس از تهیه و آماده‌سازی VPS، اولین قدم عملی، اتصال امن به سرور با استفاده از SSH است. SSH (Secure Shell) یک پروتکل امن برای مدیریت سرورهای لینوکس است و به شما امکان می‌دهد دستورات را از راه دور اجرا کنید.

تصویر اتصال امن SSH به VPS با نمایش کاربر در ترمینال، آیکون قفل امنیتی، سرور و پنگوئن لینوکس

۱. اتصال به سرور از سیستم‌های مختلف

الف) اتصال از لینوکس یا macOS

در ترمینال، دستور زیر را وارد کنید:

ssh root@IP_ADDRESS

  • root نام کاربری پیش‌فرض است (می‌توانید کاربر جدید با دسترسی sudo ایجاد کنید)
  • IP_ADDRESS آدرس IP سرور شماست

پس از ورود، سیستم از شما رمز عبور یا تایید کلید SSH را می‌خواهد.

ب) اتصال از ویندوز

  • نصب PuTTY یا Windows Terminal
  • وارد کردن IP سرور و نام کاربری
  • استفاده از رمز عبور یا فایل SSH Key برای اتصال امن

۲. ایجاد کلید SSH برای امنیت بیشتر

برای جلوگیری از ورودهای غیرمجاز و افزایش امنیت:

ایجاد کلید SSH در لینوکس یا macOS

“ssh-keygen -t rsa -b 4096 -C “your_email@example.com

  • مسیر پیش‌فرض: ~/.ssh/id_rsa
  • سپس کلید عمومی را به سرور منتقل کنید:

ssh-copy-id root@IP_ADDRESS

استفاده در ویندوز با PuTTY

  • ایجاد کلید با PuTTYgen
  • اضافه کردن کلید عمومی به فایل ~/.ssh/authorized_keys روی سرور

پس از فعال‌سازی کلید SSH، ورود با رمز عبور غیرفعال شود تا امنیت سرور افزایش یابد.

۳. اولین اقدامات پس از ورود

1.به‌روزرسانی سیستم عامل

sudo apt update && sudo apt upgrade -y   # Ubuntu/Debian

sudo yum update -y                        # CentOS

2.ایجاد کاربر جدید با دسترسی sudo (اگر هنوز ایجاد نکرده‌اید)

adduser username

usermod -aG sudo username

  1. 3.تست اتصال با کاربر جدید

ssh username@IP_ADDRESS

۴. فعال‌سازی فایروال و تنظیمات پایه امنیتی

  • بررسی وضعیت فایروال:

sudo ufw status

  • فعال‌سازی فایروال و اجازه دسترسی SSH:

sudo ufw allow OpenSSH

sudo ufw enable

sudo ufw status

اطمینان حاصل کنید که قوانین فایروال شما دسترسی ضروری را محدود نکنند و سرور امن باقی بماند.

۵. نکات عملی و خطاهای رایج

  • خطای Permission denied: مطمئن شوید کلید SSH درست اضافه شده و دسترسی فایل‌ها صحیح است.
  • Timeout در اتصال: احتمال فایروال شبکه یا IP اشتباه وجود دارد.
  • استفاده از ترمینال صحیح: لینوکس/macOS ترمینال استاندارد دارد، ویندوز باید PuTTY یا Windows Terminal نصب باشد

گام ۳ – به‌روزرسانی سیستم و نصب ابزارهای ضروری

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

تصویر تنظیمات اولیه VPS لینوکس شامل آپدیت سیستم، نصب ابزارهای ضروری مانند curl، wget، git و فعال‌سازی فایروال

۱. به‌روزرسانی سیستم عامل

به‌روزرسانی سیستم عامل باعث می‌شود تمامی بسته‌های نرم‌افزاری به آخرین نسخه امن و پایدار برسند.

الف) Ubuntu / Debian

 بروزرسانی فهرست بسته‌ها#    sudo apt update
بروزرسانی بسته‌ها# sudo apt upgrade -y

 حذف بسته‌های اضافی #    sudo apt autoremove

ب) CentOS / RHEL

sudo yum update -y
sudo yum autoremove -y

توجه: بعد از هر به‌روزرسانی سنگین، سرور را ری‌استارت کنید:

sudo reboot

۲. نصب ابزارهای پایه و ضروری

ابزارهای پایه برای مدیریت سرور و اجرای دستورات مختلف مورد نیاز هستند. نمونه ابزارها:

ابزارکاربرد
curlارسال درخواست HTTP و دانلود فایل
wgetدانلود فایل از اینترنت
gitمدیریت نسخه و دانلود پروژه‌ها
unzipاستخراج فایل‌های ZIP
htopمانیتورینگ منابع سرور (CPU, RAM)
ufw / firewalldمدیریت فایروال و امنیت

Ubuntu / Debian

sudo apt install curl wget git unzip htop ufw -y

CentOS / RHEL

sudo yum install curl wget git unzip htop firewalld -y

۳. بررسی نسخه نرم‌افزارها

بعد از نصب ابزارها، توصیه می‌شود نسخه آنها را بررسی کنید:

curl –version
wget –version
git –version
htop –version

این کار به شما اطمینان می‌دهد که ابزارها به درستی نصب شده و آماده استفاده هستند.

۴. پیکربندی اولیه امنیت ابزارها

1.فعال‌سازی فایروال (UFW برای Ubuntu/Debian، firewalld برای CentOS):

sudo ufw enable
sudo ufw allow OpenSSH
sudo ufw status

یا برای CentOS:

sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewall-cmd –permanent –add-service=ssh
sudo firewall-cmd –reload

2.فعال‌سازی مانیتورینگ منابع با htop:

htop

htop کمک می‌کند میزان استفاده CPU و RAM را در لحظه بررسی کنید و بهینه‌سازی لازم را انجام دهید.

۵. نکات عملی و خطاهای رایج

  • خطای “package not found”: بررسی کنید مخزن بسته‌ها فعال باشد و دستورات درست وارد شده باشند.
  • نصب ابزارهای جدید پس از هر آپدیت سنگین: بعضی ابزارها ممکن است به‌روزرسانی شده و دوباره نصب شوند.
  • پیکربندی فایروال قبل از اجرای سرویس‌ها: حتماً دسترسی SSH را باز بگذارید تا از قفل شدن سرور جلوگیری شود.

مثال واقعی

فرض کنید یک VPS برای راه‌اندازی سایت وردپرسی خریداری کرده‌اید:

ابزارکاربردنتیجه
curlدانلود پلاگین‌ها و تست APIموفقیت‌آمیز
gitدانلود قالب وردپرسموفقیت‌آمیز
htopبررسی مصرف منابعRAM و CPU تحت کنترل
ufwحفاظت از سرورSSH امن و بقیه پورت‌ها بسته

این کار به شما اطمینان می‌دهد که VPS آماده مرحله بعدی یعنی نصب وب‌سرور و پایگاه داده است.

گام ۴ — نصب و پیکربندی وب‌سرور (Apache یا Nginx)

در این گام، وب‌سرور را نصب و برای میزبانی وب‌سایت/اپلیکیشن آماده می‌کنیم. انتخاب بین Apache و Nginx به الگوی ترافیک، نیازمندی‌های اپ، و ترجیحات تیم بستگی دارد. اگر PHP-WordPress دارید، هر دو گزینه مناسب‌اند؛ اگر ترافیک استاتیک سنگین و concurrent زیاد دارید، Nginx معمولاً کاراتر است.

اینفوگرافیک مقایسه Apache و Nginx روی VPS لینوکس شامل مراحل راه‌اندازی، پیکربندی PHP-FPM، SSL و نکات بهینه‌سازی

۱) نصب سریع

Ubuntu/Debian

Apache#
sudo apt update && sudo apt install -y apache2

 Nginx#
sudo apt update && sudo apt install -y nginx

RHEL/CentOS

Apache (httpd)#
sudo yum install -y httpd
sudo systemctl enable httpd && sudo systemctl start httpd

 Nginx (ممکن است نیاز به فعال‌سازی repo داشته باشید)#
sudo yum install -y nginx
sudo systemctl enable nginx && sudo systemctl start nginx

فایروال را باز کنید:

 UFW#
یا ‘sudo ufw allow ‘Apache Full #
‘sudo ufw allow ‘Nginx Full
sudo ufw reload

۲) ساخت Virtual Host / Server Block

۲.۱) Nginx (پیشنهادی برای ترافیک بالا)

مسیرهای رایج:

  • کانفیگ‌ها: /etc/nginx/sites-available/ و symlink به /etc/nginx/sites-enabled/
  • روت سایت: /var/www/example.com/public

ایجاد ساختار:

sudo mkdir -p /var/www/example.com/public
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www

کانفیگ دامنه:

sudo nano /etc/nginx/sites-available/example.com

نمونه کانفیگ:

 }server
;listen 80
;server_name example.com www.example.com
;root /var/www/example.com/public
;index index.php index.html

;access_log /var/log/nginx/example_access.log
;error_log /var/log/nginx/example_error.log

} / location
;try_files $uri $uri/ /index.php?$query_string
{

# PHP-FPM
} location ~ \.php$
;include snippets/fastcgi-php.conf
;fastcgi_pass unix:/run/php/php8.2-fpm.sock
{

# امنیت ابتدایی
} . \/ ~ location  /\. {
;deny all
{
{

فعال‌سازی سایت و تست:

/sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl reload nginx

۲.۲) Apache

مسیرهای رایج:

  • روت سایت: /var/www/example.com/public
  • فایل vhost: /etc/apache2/sites-available/example.com.conf

ایجاد ساختار:

sudo mkdir -p /var/www/example.com/public
sudo chown -R $USER:$USER /var/www/example.com
sudo chmod -R 755 /var/www

کانفیگ دامنه:

sudo nano /etc/apache2/sites-available/example.com.conf

نمونه کانفیگ:

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public

<Directory /var/www/example.com/public>
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>

فعال‌سازی و تست:

sudo a2ensite example.com.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

۳) پشتیبانی PHP (PHP-FPM)

Ubuntu/Debian

sudo apt install -y php php-fpm php-mysql php-cli php-curl php-xml php-gd php-zip

  • در Nginx، معمولاً از php-fpm استفاده می‌شود (نمونه کانفیگ بالا).
  • در Apache، می‌توانید از libapache2-mod-php یا php-fpm استفاده کنید. پیشنهاد امروز: Apache + PHP-FPM برای کارایی بهتر:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo systemctl reload apache2

RHEL/CentOS (نمونه)

sudo yum install -y php php-fpm php-mysqlnd php-cli php-xml php-gd php-zip
sudo systemctl enable php-fpm && sudo systemctl start php-fpm

۴) فعال‌سازی SSL با Let’s Encrypt (HTTPS)

Nginx

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

Apache

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

تجدید خودکار:

   #  sudo systemctl list-timers | grep certbot

۵) تیونینگ عملکرد (Performance Tuning)

Nginx (گزیده‌های مهم)

در /etc/nginx/nginx.conf:

;worker_processes auto
events { worker_connections 4096; }

} http
;sendfile on
;keepalive_timeout 65
;client_max_body_size 20M

;gzip on
;gzip_types text/plain text/css application/javascript application/json image/svg+xml
اگر ماژول brotli دارید، می‌توانید فعال کنید (اختیاری) #
}

Apache

  • ماژول‌های غیرضروری را غیرفعال کنید.
  • MPM را به‌درستی تنظیم کنید (برای PHP-FPM، از event استفاده کنید):

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

  • فعال‌سازی کش استاتیک با هدرها:

<IfModule mod_expires.c>
ExpiresActive On
“ExpiresByType text/css “access plus 7 days
“ExpiresByType application/javascript “access plus 7 days
“ExpiresByType image/jpeg “access plus 30 days
“ExpiresDefault “access plus 1 day
</IfModule>

۶) هدرهای امنیتی پیشنهادی (هر دو وب‌سرور)

Nginx (در بلاک server یا http)

;”add_header X-Frame-Options “SAMEORIGIN
;”add_header X-Content-Type-Options “nosniff
;”add_header Referrer-Policy “strict-origin-when-cross-origin
;()=add_header Permissions-Policy “geolocation=(), microphone

Apache (در vHost یا htaccess)

“Header always set X-Frame-Options “SAMEORIGIN
“Header always set X-Content-Type-Options “nosniff
“Header always set Referrer-Policy “strict-origin-when-cross-origin
()=Header always set Permissions-Policy “geolocation=(), microphone

فراموش نکنید mod_headers را در Apache فعال کنید: sudo a2enmod headers

۷) لاگ و لاگ‌روتیشن

  • مسیر لاگ‌ها را بررسی کنید:
    • Nginx: /var/log/nginx/
    • Apache: /var/log/apache2/ یا /var/log/httpd/
  • logrotate معمولاً از قبل فعال است؛ اگر حجم لاگ زیاد شد، چرخش (rotation) را کوتاه‌تر کنید.

۸) مقایسه سریع Apache و Nginx

معیارNginxApache
معماریevent-driven و سبکprocess/thread-based (MPM)
کارایی فایل استاتیکبسیار عالیخوب
سازگاری با .htaccessندارددارد (مزیت برای اپ‌های قدیمی)
یکپارچگی با PHPPHP-FPM استانداردmod_php یا PHP-FPM (پیشنهادی)
پیکربندینسبتاً ساده و شسته‌رفتهانعطاف‌پذیر، گاهی پیچیده
استفاده پیشنهادیترافیک بالا، reverse proxyسازگاری وسیع، مهاجرت آسان

۹) چک‌لیست سریع استقرار

  • وب‌سرور نصب و سرویس فعال
  • دامنه و vhost/server block ساخته شد
  • PHP-FPM راه افتاد و php تست شد
  • فایروال پورت‌های 80/443 را باز کرده
  • Let’s Encrypt فعال و auto-renew چک شد
  • gzip و کش استاتیک تنظیم شد
  • هدرهای امنیتی اضافه شد
  • لاگ‌ها پایش می‌شوند (error/access)

۱۰) خطاهای رایج و رفع آن‌ها

  • 403 Forbidden: پرمیشن فولدر روت یا مالکیت اشتباه است؛ مسیر root/DocumentRoot را بررسی کنید.
  • 502 Bad Gateway در Nginx: مسیر سوکت PHP-FPM درست نیست؛ با php-fpm.sock صحیح جایگزین کنید یا به پورت 9000 وصل شوید.
  • nginx: [emerg]: خطای سینتکس؛ sudo nginx -t را اجرا و خط را تصحیح کنید.
  • AH00558 در Apache: ServerName تعریف نشده؛ در vhost یا conf مقدار دهید.
  • SSL خطا می‌دهد: دامنه به IP درست اشاره نمی‌کند یا پورت 443 باز نیست؛ DNS و فایروال را چک کنید.

گام ۵ — نصب و پیکربندی پایگاه داده (MySQL/PostgreSQL)

برای بسیاری از وب‌اپلیکیشن‌ها، پایگاه داده قلب سیستم است. در این مرحله، نصب، پیکربندی و بهینه‌سازی MySQL یا PostgreSQL روی VPS ضروری است.

تصویر نصب و پیکربندی دیتابیس روی VPS شامل لوگوهای MySQL و PostgreSQL، دستورات ترمینال و نمادهای امنیت و بکاپ

۱) انتخاب پایگاه داده مناسب

معیارMySQLPostgreSQL
محبوبیتبسیار رایج، مناسب WordPress و اپ‌های PHPقوی، استاندارد برای اپ‌های Enterprise و اپ‌های پیچیده
سرعت خواندن/نوشتنسریع در خواندن، مناسب OLTPقدرتمند در queryهای پیچیده و گزارش‌گیری
امنیترمزگذاری، سطح دسترسیرمزگذاری، کنترل granular‌تر دسترسی‌ها
پشتیبانیمستندات و جامعه گستردهمستندات رسمی کامل و جامعه فعال
مثال واقعیWordPress, MagentoDjango apps, ERP systems

انتخاب پایگاه داده بستگی به پروژه، نیازمندی‌های حجم داده و اپلیکیشن دارد.

۲) نصب MySQL

Ubuntu/Debian

sudo apt update
sudo apt install -y mysql-server
sudo systemctl enable mysql
sudo systemctl start mysql

RHEL/CentOS

sudo yum install -y mysql-server
sudo systemctl enable mysqld
sudo systemctl start mysqld

پس از نصب، امنیت اولیه را فعال کنید:

sudo mysql_secure_installation

  • ایجاد رمز قوی برای root
  • حذف کاربران ناشناس
  • غیرفعال کردن login از راه دور برای root

۳) نصب PostgreSQL

Ubuntu/Debian

sudo apt update
sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql

RHEL/CentOS

sudo yum install -y postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql

۴) ایجاد کاربر و پایگاه داده

MySQL

;CREATE DATABASE example_db
;’!CREATE USER ‘example_user’@’localhost’ IDENTIFIED BY ‘StrongPassword
;’GRANT ALL PRIVILEGES ON example_db.* TO ‘example_user’@’localhost
;FLUSH PRIVILEGES

PostgreSQL

;CREATE DATABASE example_db
;’!CREATE USER example_user WITH ENCRYPTED PASSWORD ‘StrongPassword
;GRANT ALL PRIVILEGES ON DATABASE example_db TO example_user

همیشه از رمز عبور قوی استفاده کنید و دسترسی‌های غیرضروری را محدود کنید.

۵) پیکربندی امنیت و بهینه‌سازی

  • فعال کردن SSL/TLS برای اتصال امن به دیتابیس
  • پشتیبان‌گیری دوره‌ای (Backup)
  • بهینه‌سازی تنظیمات حافظه برای MySQL: innodb_buffer_pool_size و PostgreSQL: shared_buffers
  • تنظیم محدودیت اتصال برای جلوگیری از حملات DDoS

۶) تست اتصال

  • از سرور VPS خود به پایگاه داده متصل شوید و جدول نمونه بسازید:

MySQL

;USE example_db
;CREATE TABLE test_table (id INT PRIMARY KEY, name VARCHAR(50))
;INSERT INTO test_table (id, name) VALUES (1, ‘Test’)
;SELECT * FROM test_table

PostgreSQL

c example_db\
;CREATE TABLE test_table (id SERIAL PRIMARY KEY, name VARCHAR(50))
;INSERT INTO test_table (name) VALUES (‘Test’)
;SELECT * FROM test_table

۷) نکات حرفه‌ای (Pro Tips)

  1. برای پروژه‌های بزرگ، PostgreSQL برای queryهای پیچیده بهتر است.
  2. همیشه از پشتیبان‌گیری خودکار روزانه استفاده کنید.
  3. محدودیت منابع VPS را در نظر بگیرید، پایگاه داده نیاز به RAM و CPU کافی دارد.
  4. بررسی لاگ‌ها به صورت هفتگی:
    • MySQL: /var/log/mysql/error.log
    • PostgreSQL: /var/log/postgresql/postgresql.log

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

س: MySQL بهتر است یا PostgreSQL؟
ج: برای پروژه‌های کوچک تا متوسط MySQL و برای پروژه‌های پیچیده و Enterprise PostgreSQL توصیه می‌شود.

س: چطور رمز عبور امن انتخاب کنم؟
ج: از ترکیب حروف بزرگ، کوچک، اعداد و کاراکترهای خاص استفاده کنید و حداقل ۱۲ کاراکتر باشد.

س: چند وقت یک‌بار باید بکاپ بگیریم؟
ج: بسته به حجم تغییرات، حداقل روزانه یا هفتگی، به صورت خودکار.

آماده‌اید پایگاه داده خود را روی VPS راه‌اندازی کنید؟ همین حالا سرور مجازی مناسب خود را انتخاب کنید و با امنیت و عملکرد بالا پروژه‌تان را استارت بزنید!

گام ۶ — امنیت و بهینه‌سازی VPS

امنیت و بهینه‌سازی VPS یکی از مهم‌ترین مراحل مدیریت سرور است. حتی اگر سرور شما سریع و قدرتمند باشد، بدون تنظیمات امنیتی مناسب و بهینه‌سازی، پروژه‌ها در معرض حملات و افت عملکرد قرار می‌گیرند.

تصویر امنیت و بهینه‌سازی VPS شامل سرور با نماد سپر، فایروال، دستورات امنیتی ترمینال، بهینه‌سازی و بکاپ ابری

۱) به‌روزرسانی سیستم عامل و نرم‌افزارها

یکی از ساده‌ترین و مؤثرترین اقدامات برای امنیت VPS، به‌روزرسانی مرتب سیستم عامل و نرم‌افزارهاست.

دستورات نمونه:

Ubuntu/Debian:

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

RHEL/CentOS:

sudo yum update -y
sudo yum autoremove -y

نکته: به‌روزرسانی منظم نه تنها باگ‌ها را رفع می‌کند بلکه امنیت سرور را افزایش می‌دهد.

۲) پیکربندی فایروال

فعال کردن فایروال و محدود کردن پورت‌های باز، یک گام کلیدی امنیتی است.

نمونه با UFW (Ubuntu/Debian):

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

نمونه با Firewalld (RHEL/CentOS):

sudo firewall-cmd –permanent –add-service=ssh
sudo firewall-cmd –permanent –add-service=http
sudo firewall-cmd –permanent –add-service=https
sudo firewall-cmd –reload

توصیه: همیشه پورت SSH را امن کنید و در صورت امکان از SSH key authentication استفاده کنید.

۳) مدیریت دسترسی کاربران

  • کاربر root را محدود کنید و برای فعالیت‌های روزانه از کاربران با دسترسی محدود استفاده کنید.
  • ایجاد کاربر جدید:

sudo adduser newuser
sudo usermod -aG sudo newuser

  • SSH key authentication فعال کنید و ورود با رمز عبور را غیرفعال نمایید.

۴) نصب و پیکربندی ابزارهای امنیتی

ابزارعملکرد
Fail2Banجلوگیری از حملات Brute Force
ClamAVاسکن ویروس و بدافزار
Lynisبررسی و audit امنیتی سرور
CSFفایروال پیشرفته با قابلیت مدیریت آسان

ترکیب این ابزارها سطح امنیت سرور را به شکل چشمگیری افزایش می‌دهد.

۵) بهینه‌سازی عملکرد VPS

الف) منابع سرور

  • RAM و CPU کافی برای اپلیکیشن خود اختصاص دهید.
  • از ابزارهایی مثل htop یا top برای مانیتورینگ استفاده کنید.

ب) کشینگ و بهینه‌سازی وب‌سرور

  • فعال‌سازی OPcache برای PHP
  • استفاده از Nginx caching یا Varnish برای سرعت بالاتر
  • فشرده‌سازی فایل‌ها با gzip یا brotli

ج) پایگاه داده

  • بررسی و بهینه‌سازی Queryهای سنگین
  • افزایش Cache و Buffer مناسب در MySQL/PostgreSQL

۶) بکاپ‌گیری منظم

  • تهیه بکاپ دوره‌ای از فایل‌ها و پایگاه داده حیاتی است.
  • ابزارهای پیشنهادی:
    • rsync برای فایل‌ها
    • mysqldump یا pg_dump برای پایگاه داده
  • ذخیره بکاپ روی سرور دیگر یا فضای ابری توصیه می‌شود.

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

س: چقدر مهم است که SSH key استفاده کنیم؟
ج: بسیار مهم است؛ ورود با رمز عبور قابل هک است و SSH key امنیت اتصال را تضمین می‌کند.

س: چه فرکانسی برای بکاپ توصیه می‌شود؟
ج: حداقل روزانه یا هفتگی، بسته به تغییرات سیستم.

س: چگونه می‌توانم عملکرد VPS را مانیتور کنم؟
ج: ابزارهایی مثل htop, top, Glances یا داشبوردهای ابری مانیتورینگ کمک می‌کنند.

اکنون وقت آن است که سرور خود را امن و بهینه کنید! با انتخاب سرور مجازی مناسب، تنظیم امنیت و بهینه‌سازی حرفه‌ای، پروژه خود را بدون نگرانی از حملات یا کاهش عملکرد اجرا کنید.

راه‌اندازی وب‌اپلیکیشن و اتصال به پایگاه داده

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

تصویر استقرار اپلیکیشن وب روی VPS شامل سرور، صفحه کدنویسی، دیتابیس MySQL/PostgreSQL و نماد قفل امنیتی

۱) آماده‌سازی محیط اپلیکیشن

1.انتقال فایل‌ها به سرور

    • با استفاده از SCP یا rsync فایل‌های اپلیکیشن را منتقل کنید:

/scp -r /local/project user@vps_ip:/var/www/html

  • ساختار دایرکتوری پیشنهادی:

/var/www/html/
/your_app ──└
index.php / index.html ──├
/config──├
/public──└

2.مجوزها و مالکیت

    • مالکیت فایل‌ها را به کاربر وب‌سرور تغییر دهید:

sudo chown -R www-data:www-data /var/www/html/your_app
sudo chmod -R 755 /var/www/html/your_app

3.نصب وابستگی‌ها

    • برای PHP: Composer
    • برایjs: npm/yarn
    • مثال PHP:

cd /var/www/html/your_app
composer install

۲) پیکربندی اتصال به پایگاه داده

  • فایل کانفیگ اپلیکیشن را ویرایش کنید و اطلاعات دیتابیس را وارد نمایید:

مثال برای PHP (config.php)

php?>
;’db_host = ‘localhost$
;’db_user = ‘example_user$
;’!db_pass = ‘StrongPassword$
;’db_name = ‘example_db$

;conn = new mysqli($db_host, $db_user, $db_pass, $db_name)$
} (if ($conn->connect_error
;die(“Connection failed: ” . $conn->connect_error)
{
;”echo “Connected successfully
<?

مثال برای Node.js (using PostgreSQL)

;const { Client } = require(‘pg’)
})const client = new Client
;’user: ‘example_user
;’host: ‘localhost
;’database: ‘example_db
;’!password: ‘StrongPassword
,port: 5432
;({
()client.connect
;then(() => console.log(‘Connected successfully’)).
;catch(e => console.error(e.stack)).

حتماً از رمزهای قوی و اتصال امن (SSL) استفاده کنید.

۳) تست عملکرد اپلیکیشن

  1. دسترسی از مرورگر
    • آدرس VPS + مسیر اپلیکیشن را باز کنید:

/http://vps_ip/your_app

  • بررسی کنید که اپلیکیشن بدون خطا اجرا می‌شود.
  1. تست اتصال به دیتابیس
    • فرم‌های ورود یا عملیات CRUD را بررسی کنید تا اطمینان حاصل شود اتصال پایگاه داده صحیح است.

۴) پیکربندی محیط تولید (Production)

  • فعال‌سازی HTTPS با استفاده از Let’s Encrypt:

sudo apt install certbot python3-certbot-nginx
sudo certbot –nginx -d yourdomain.com

  • تنظیم Cache و Performance:

    • فعال‌سازی OPcache در PHP
    • فعال‌سازی Nginx caching یا Redis برایjs
  • بررسی لاگ‌ها:

sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/mysql/error.log

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

س: چگونه می‌توانم اتصال دیتابیس را امن کنم؟
ج: استفاده از SSL، رمزهای قوی، محدود کردن دسترسی IP و ایجاد کاربر با دسترسی حداقلی بهترین روش‌ها هستند.

س: اگر اپلیکیشن اجرا نشد، چه کنم؟
ج: لاگ‌های وب‌سرور و دیتابیس را بررسی کنید، مطمئن شوید مجوزها صحیح هستند و فایل‌های ضروری منتقل شده‌اند.

س: بهترین روش برای مدیریت وابستگی‌ها چیست؟
ج: برای PHP از Composer و برای Node.js از npm یا yarn استفاده کنید و در محیط Production نسخه‌های ثابت را نصب کنید.

آماده‌اید اپلیکیشن خود را روی VPS راه‌اندازی کنید؟ همین حالا مراحل آموزش داده شده را اجرا کنید و با اتصال امن به دیتابیس، پروژه خود را به صورت حرفه‌ای راه‌اندازی نمایید

مانیتورینگ و نگهداری سرور

مانیتورینگ و نگهداری منظم VPS باعث افزایش پایداری، کاهش خطاها و جلوگیری از مشکلات امنیتی و عملکردی می‌شود. این مرحله شامل بررسی منابع، لاگ‌ها، سلامت سرویس‌ها و اجرای پشتیبان‌گیری منظم است.

تصویر مانیتورینگ و نگهداری VPS شامل رک‌های سرور، داشبورد مانیتورینگ CPU و رم، آیکون دیتابیس، بکاپ ابری و هشدارها

۱) ابزارهای مانیتورینگ VPS

ابزارکاربردنوع
htopمانیتورینگ لحظه‌ای CPU، RAM و پروسه‌هاCLI
topنمایش پروسه‌ها و مصرف منابعCLI
Glancesنمایش جامع منابع سرور و وضعیت شبکهCLI/GUI
Netdataداشبورد آنلاین مانیتورینگ منابع، وب‌سرور و دیتابیسWeb GUI
Zabbixمانیتورینگ حرفه‌ای و هشدار دهندهServer/Client

توصیه: برای پروژه‌های کوچک htop و Glances کافی است، برای پروژه‌های بزرگ Netdata یا Zabbix پیشنهاد می‌شود.

۲) بررسی لاگ‌ها

  • وب‌سرور

    • Nginx: /var/log/nginx/error.log
    • Apache: /var/log/apache2/error.log
  • پایگاه داده

    • MySQL: /var/log/mysql/error.log
    • PostgreSQL: /var/log/postgresql/postgresql.log
  • سیستم عامل

    • Linux: /var/log/syslog یا /var/log/messages

مانیتورینگ لاگ‌ها به شما کمک می‌کند خطاها و هشدارها را قبل از تبدیل شدن به مشکل جدی شناسایی کنید.

۳) بررسی سلامت سرویس‌ها

  • بررسی وضعیت وب‌سرور:

sudo systemctl status nginx
sudo systemctl status apache2

  • بررسی وضعیت پایگاه داده:

sudo systemctl status mysql
sudo systemctl status postgresql

  • بررسی وضعیت SSH و فایروال:

sudo systemctl status ssh
sudo ufw status

سرویس‌های حیاتی باید همیشه در حال اجرا باشند و از حالت اتوماتیک بوت سیستم فعال باشند.

۴) مانیتورینگ منابع سرور

  • مصرف CPU، RAM و Disk:

htop
df -h

  • ترافیک شبکه:

iftop

  • هشدارها و نوتیفیکیشن‌ها را تنظیم کنید تا هنگام استفاده بیش از حد منابع مطلع شوید.

۵) پشتیبان‌گیری و بازیابی

  • اجرای پشتیبان‌گیری منظم از فایل‌ها و دیتابیس.
  • ذخیره بکاپ روی سرور دیگر یا فضای ابری (AWS S3, Google Cloud Storage).
  • آزمایش بازیابی بکاپ‌ها برای اطمینان از صحت آن‌ها.

۶) بهینه‌سازی دوره‌ای

  • پاک‌سازی فایل‌های لاگ قدیمی و غیرضروری:

sudo journalctl –vacuum-time=7d

  • بررسی و بروزرسانی نرم‌افزارها و سیستم عامل.
  • بهینه‌سازی پایگاه داده با ابزارهای built-in مانند OPTIMIZE TABLE برای MySQL و VACUUM ANALYZE برای

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

س: چند وقت یک بار باید لاگ‌ها بررسی شود؟
ج: حداقل هفته‌ای یکبار، در پروژه‌های حساس بهتر است روزانه مانیتور شوند.

س: چگونه مطمئن شوم بکاپ‌ها سالم هستند؟
ج: پس از هر پشتیبان‌گیری یک بازیابی آزمایشی انجام دهید.

س: بهترین ابزار برای مانیتورینگ سرور چیست؟
ج: برای پروژه‌های کوچک htop یا Glances و برای پروژه‌های بزرگ Netdata یا Zabbix توصیه می‌شود.

برای اطمینان از عملکرد بی‌وقفه و امنیت VPS خود، مانیتورینگ و نگهداری دوره‌ای را جدی بگیرید. با انتخاب سرور مجازی مناسب و پیروی از نکات این راهنما، همیشه پروژه خود را با سرعت و امنیت بالا مدیریت کنید

چک‌لیست جامع راه‌اندازی و مدیریت VPS

گام ۱: انتخاب سرور مجازی مناسب

  • انتخاب کشور سرور بر اساس کاربران هدف و قوانین محلی
  • بررسی رم، CPU و فضای دیسک مورد نیاز
  • انتخاب نوع سیستم عامل: Linux (Ubuntu, CentOS, Debian)

گام ۲: دسترسی به سرور و اتصال SSH

  • دریافت IP و credentials از ارائه‌دهنده VPS
  • اتصال امن از طریق SSH:

ssh user@vps_ip

  • تغییر رمز عبور اولیه و فعال کردن SSH key authentication

گام ۳: نصب و پیکربندی وب‌سرور

  • انتخاب وب‌سرور: Apache یا Nginx
  • نصب وب‌سرور:

sudo apt install apache2
sudo apt install nginx

  • بررسی اجرا و دسترسی از مرورگر
  • فعال‌سازی HTTPS با Let’s Encrypt

گام ۴: نصب و پیکربندی وب‌سرور (Apache یا Nginx)

  • Apache: ماژول‌ها، پیکربندی virtual hosts
  • Nginx: server blocks، تنظیمات caching و امنیت
  • تست اجرا و performance

گام ۵: نصب و پیکربندی پایگاه داده (MySQL/PostgreSQL)

  • انتخاب پایگاه داده متناسب با پروژه
  • نصب پایگاه داده
  • ایجاد کاربر و پایگاه داده
  • فعال‌سازی SSL و بهینه‌سازی تنظیمات حافظه
  • تست اتصال از اپلیکیشن

گام ۶: امنیت و بهینه‌سازی VPS

  • به‌روزرسانی سیستم و نرم‌افزارها
  • پیکربندی فایروال و محدود کردن پورت‌ها
  • مدیریت کاربران و دسترسی‌ها
  • نصب ابزارهای امنیتی: Fail2Ban, ClamAV, Lynis, CSF
  • بهینه‌سازی منابع، کشینگ و پایگاه داده
  • بکاپ‌گیری دوره‌ای

گام ۷: نصب و پیکربندی پایگاه داده (جزئیات عملی)

  • دستورات نصب برای Ubuntu/Debian و RHEL/CentOS
  • نمونه کانفیگ و ایجاد جداول
  • بهینه‌سازی Queryها و Buffer

گام ۸: مانیتورینگ منابع و سلامت سرور

  • بررسی مصرف CPU، RAM، Disk
  • بررسی وضعیت سرویس‌ها و وب‌سرور
  • مانیتورینگ شبکه و هشدارها

گام ۹: راه‌اندازی وب‌اپلیکیشن و اتصال به پایگاه داده

  • انتقال فایل‌ها به سرور (SCP, rsync)
  • تنظیم مجوزها و مالکیت فایل‌ها
  • نصب وابستگی‌ها (Composer, npm/yarn)
  • پیکربندی اتصال به دیتابیس
  • تست عملکرد اپلیکیشن و HTTPS

گام ۱۰: مانیتورینگ و نگهداری سرور

  • بررسی لاگ‌های وب‌سرور، دیتابیس و سیستم
  • مانیتورینگ لحظه‌ای و داشبورد
  • اجرای بکاپ دوره‌ای و بازیابی آزمایشی
  • بهینه‌سازی منظم و پاک‌سازی فایل‌های غیرضروری

📌 نکات حرفه‌ای

  • همیشه از رمزهای عبور قوی استفاده کنید
  • اتصال به دیتابیس با SSL
  • سرویس‌های حیاتی همیشه فعال و مانیتور شوند
  • پشتیبان‌گیری و بازیابی را جدی بگیرید
  • منابع VPS را بر اساس نیاز پروژه مدیریت کنید

با دنبال کردن این چک‌لیست جامع، می‌توانید VPS خود را از ابتدا تا مرحله راه‌اندازی کامل اپلیکیشن، امن، بهینه و پایدار مدیریت کنید. اکنون آماده‌اید سرور خود را انتخاب کرده و تمام مراحل عملی را اجرا کنید

همین حالا با سرور مجازی آمریکا یا سرور مجازی مالزی، سرور اختصاصی خود را راه‌اندازی کنید و از امنیت و سرعت بالای سرور مجازی لینوکس بهره‌مند شوید!

نوشته‌های مشابه

دیدگاهتان را بنویسید