راهنمای گامبهگام نصب و پیکربندی سرور مجازی لینوکس
سرور مجازی لینوکس، یا همان VPS لینوکس، یک محیط مجازی است که بر روی یک سرور فیزیکی ایجاد میشود و منابع آن (CPU، RAM، دیسک) به صورت اختصاصی یا نیمهاختصاصی در اختیار شما قرار میگیرد. به عبارت سادهتر، VPS ترکیبی از انعطافپذیری هاست اشتراکی و قدرت سرور اختصاصی است.
چرا VPS لینوکس؟
- انعطافپذیری بالا:
شما میتوانید هر نرمافزاری را نصب کنید، تنظیمات سرور را به دلخواه تغییر دهید و از منابع بهینه استفاده کنید. برای مثال، نصب یک دیتابیس MySQL یا راهاندازی WordPress کاملاً تحت کنترل شماست. - هزینه بهصرفه:
نسبت به سرور اختصاصی، VPS هزینه کمتری دارد ولی بسیاری از مزایای مشابه را ارائه میدهد. - امنیت و دسترسی کامل:
دسترسی روت (root) به شما این امکان را میدهد که امنیت سرور را طبق استانداردهای خود تنظیم کنید، مانند فعال کردن فایروال یا استفاده از SSH Key. - کاربردهای گسترده:
VPS لینوکس مناسب برای انواع پروژههاست:- راهاندازی وبسایتهای وردپرسی و جوملا
- توسعه اپلیکیشنها و سرویسهای تحت وب
- اجرای پایگاه دادههای بزرگ مثل MySQL، PostgreSQL یا MongoDB
- نصب کنترل پنلهای مدیریتی مانند cPanel و Plesk
پیشنیازها و انتخاب سیستمعامل برای سرور مجازی لینوکس
قبل از شروع نصب و پیکربندی VPS لینوکس، باید مطمئن شوید که تمامی پیشنیازهای لازم را فراهم کردهاید تا فرآیند نصب بدون مشکل و امن انجام شود.
۱. پیشنیازهای سختافزاری و نرمافزاری
برای یک سرور لینوکس بهینه و پایدار، حداقل منابع سختافزاری زیر توصیه میشود:
منبع | حداقل پیشنهادی | توضیح |
RAM | 1 گیگابایت | برای سرورهای سبک یا تست |
CPU | 1 هسته | مناسب برای سایتهای کوچک و میانه |
فضای دیسک | 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
- مزایا: مناسب سازمانها و سرویسهای پایدار، پشتیبانی طولانی مدت
- معایب: کمتر مناسب برای پروژههای شخصی و تازهکارها
۳. پیشنیازهای نرمافزاری
قبل از نصب نرمافزارهای اصلی، مطمئن شوید که موارد زیر نصب شده باشند:
- SSH Client: برای اتصال امن به سرور (مثلاً PuTTY در ویندوز یا ترمینال لینوکس)
- ابزارهای پایه: curl، wget، git، unzip
- دسترسی sudo یا root: برای نصب و پیکربندی نرمافزارها
- نام دامنه (اختیاری): اگر میخواهید وبسایت خود را روی VPS راهاندازی کنید
۴. نکات امنیتی پیش از شروع
- تغییر رمز عبور پیشفرض پس از اولین ورود
- فعالسازی فایروال اولیه (UFW یا firewalld)
- ایجاد کاربر جدید با دسترسی sudo به جای استفاده مستقیم از root
گام ۱ – تهیه و آمادهسازی VPS لینوکس
قبل از اینکه بتوانید سرور لینوکس خود را نصب و پیکربندی کنید، باید VPS را از یک ارائهدهنده معتبر تهیه و آماده کنید. این گام بسیار مهم است، زیرا انتخاب درست منابع و ارائهدهنده مناسب، عملکرد و امنیت سرور شما را تضمین میکند.
۱. انتخاب ارائهدهنده VPS
۲. انتخاب کانفیگ مناسب VPS
هنگام خرید VPS، باید منابع سرور را بر اساس نیازهای پروژه خود انتخاب کنید:
منبع | توصیه برای پروژههای سبک | توصیه برای پروژههای متوسط | توصیه برای پروژههای سنگین |
CPU | 1 هسته | 2 هسته | 4 هسته و بیشتر |
RAM | 1 گیگابایت | 2-4 گیگابایت | 8 گیگابایت و بیشتر |
فضای دیسک | 10 گیگابایت | 20-50 گیگابایت | 100 گیگابایت و بیشتر |
پهنای باند | 100 Mbps | 500 Mbps | 1 Gbps یا بیشتر |
انتخاب منابع مناسب باعث میشود وبسایت یا اپلیکیشن شما سریع، پایدار و امن اجرا شود.
۳. دریافت اطلاعات ورود SSH
پس از خرید VPS، ارائهدهنده معمولاً اطلاعات زیر را ارائه میدهد:
- IP سرور – برای اتصال به VPS
- نام کاربری – معمولاً root یا کاربری که دسترسی sudo دارد
- رمز عبور یا SSH Key – برای ورود امن
📌 توصیه میشود بعد از اولین ورود، رمز عبور پیشفرض را تغییر دهید و برای امنیت بیشتر SSH Key ایجاد کنید.
۴. نکات امنیتی قبل از شروع نصب
- تغییر رمز عبور پیشفرض:
passwd
- ایجاد کاربر جدید با دسترسی sudo:
· adduser username
· usermod -aG sudo username
- فعالسازی فایروال اولیه:
· sudo ufw allow OpenSSH
· sudo ufw enable
- بررسی اتصال به سرور:
از دستور ping IP_ADDRESS و تست SSH برای اطمینان از اتصال استفاده کنید.
۵. مثال واقعی برای منابع و کانفیگ VPS
پروژه | CPU | RAM | Storage | ارائهدهنده |
سایت شخصی وردپرسی | 1 هسته | 1 گیگابایت | 20 GB SSD | ArvanCloud |
فروشگاه آنلاین کوچک | 2 هسته | 4 گیگابایت | 50 GB SSD | ParsPack |
اپلیکیشن وب متوسط | 4 هسته | 8 گیگابایت | 100 GB SSD | DigitalOcean |
دیتابیس بزرگ و سرور بازی | 8 هسته | 16 GB | 200 GB SSD | Linode |
این جدول به شما کمک میکند منابع سرور را براساس نوع پروژه انتخاب کنید.
گام ۲ – اتصال به سرور با SSH و ورود اولیه
پس از تهیه و آمادهسازی VPS، اولین قدم عملی، اتصال امن به سرور با استفاده از SSH است. SSH (Secure Shell) یک پروتکل امن برای مدیریت سرورهای لینوکس است و به شما امکان میدهد دستورات را از راه دور اجرا کنید.
۱. اتصال به سرور از سیستمهای مختلف
الف) اتصال از لینوکس یا 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
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، مرحله بعدی بهروزرسانی سیستم عامل و نصب ابزارهای ضروری است. این کار باعث میشود سرور شما امن، پایدار و آماده برای نصب نرمافزارهای اصلی باشد.
۱. بهروزرسانی سیستم عامل
بهروزرسانی سیستم عامل باعث میشود تمامی بستههای نرمافزاری به آخرین نسخه امن و پایدار برسند.
الف) 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 معمولاً کاراتر است.
۱) نصب سریع
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
معیار | Nginx | Apache |
معماری | event-driven و سبک | process/thread-based (MPM) |
کارایی فایل استاتیک | بسیار عالی | خوب |
سازگاری با .htaccess | ندارد | دارد (مزیت برای اپهای قدیمی) |
یکپارچگی با PHP | PHP-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 ضروری است.
۱) انتخاب پایگاه داده مناسب
معیار | MySQL | PostgreSQL |
محبوبیت | بسیار رایج، مناسب WordPress و اپهای PHP | قوی، استاندارد برای اپهای Enterprise و اپهای پیچیده |
سرعت خواندن/نوشتن | سریع در خواندن، مناسب OLTP | قدرتمند در queryهای پیچیده و گزارشگیری |
امنیت | رمزگذاری، سطح دسترسی | رمزگذاری، کنترل granularتر دسترسیها |
پشتیبانی | مستندات و جامعه گسترده | مستندات رسمی کامل و جامعه فعال |
مثال واقعی | WordPress, Magento | Django 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)
- برای پروژههای بزرگ، PostgreSQL برای queryهای پیچیده بهتر است.
- همیشه از پشتیبانگیری خودکار روزانه استفاده کنید.
- محدودیت منابع VPS را در نظر بگیرید، پایگاه داده نیاز به RAM و CPU کافی دارد.
- بررسی لاگها به صورت هفتگی:
- MySQL: /var/log/mysql/error.log
- PostgreSQL: /var/log/postgresql/postgresql.log
پرسشهای متداول (FAQ)
س: MySQL بهتر است یا PostgreSQL؟
ج: برای پروژههای کوچک تا متوسط MySQL و برای پروژههای پیچیده و Enterprise PostgreSQL توصیه میشود.
س: چطور رمز عبور امن انتخاب کنم؟
ج: از ترکیب حروف بزرگ، کوچک، اعداد و کاراکترهای خاص استفاده کنید و حداقل ۱۲ کاراکتر باشد.
س: چند وقت یکبار باید بکاپ بگیریم؟
ج: بسته به حجم تغییرات، حداقل روزانه یا هفتگی، به صورت خودکار.
آمادهاید پایگاه داده خود را روی 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 و اتصال آن به دیتابیس است. این مرحله شامل انتقال فایلها، پیکربندی محیط اجرا و بررسی اتصال امن به پایگاه داده میشود.
۱) آمادهسازی محیط اپلیکیشن
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) استفاده کنید.
۳) تست عملکرد اپلیکیشن
- دسترسی از مرورگر
- آدرس VPS + مسیر اپلیکیشن را باز کنید:
/http://vps_ip/your_app
- بررسی کنید که اپلیکیشن بدون خطا اجرا میشود.
- تست اتصال به دیتابیس
- فرمهای ورود یا عملیات 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
ابزار | کاربرد | نوع |
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 خود را از ابتدا تا مرحله راهاندازی کامل اپلیکیشن، امن، بهینه و پایدار مدیریت کنید. اکنون آمادهاید سرور خود را انتخاب کرده و تمام مراحل عملی را اجرا کنید
همین حالا با سرور مجازی آمریکا یا سرور مجازی مالزی، سرور اختصاصی خود را راهاندازی کنید و از امنیت و سرعت بالای سرور مجازی لینوکس بهرهمند شوید!