سال‌ها پیش، سروری را برای یک پروژه تحویل گرفتم که از نظر کاتالوگ فروش کاملاً بی‌نقص بود: هشت هسته پردازنده، شانزده گیگابایت حافظه، یک ترابایت NVMe. چند هفته بعد، سایت روی همان سرور کند شد. بررسی نشان داد مشکل در نسخه PHP بود: هاستینگ روی نسخه هفت و چهار پیکربندی کرده بود و هر درخواست وردپرس، در مسیری طولانی‌تر از آنچه باید، اجرا می‌شد. آن تجربه به من یک قاعده را تحمیل کرد: سرور وردپرس، بیشتر از سخت‌افزار، به هماهنگی چند لایه نرم‌افزاری بستگی دارد. این مقاله، همان هماهنگی را از منظر معیارهای عددی و قابل سنجش باز می‌کند.

چرا مشخصات سرور وردپرس، یک تصمیم چندلایه است؟

وردپرس روی یک پشته نرم‌افزاری مشخص اجرا می‌شود که هر لایه آن، الزامات خودش را به سرور تحمیل می‌کند. لایه سیستم‌عامل، منابع پایه را مدیریت می‌کند؛ لایه وب‌سرور، درخواست‌ها را دریافت و مسیردهی می‌کند؛ لایه PHP، منطق برنامه را اجرا می‌کند؛ و لایه دیتابیس، داده‌ها را ذخیره و بازیابی می‌کند. وردپرس، به‌عنوان یک لایه بالاتر، از تمام این چهار لایه تغذیه می‌کند. اگر یکی از این لایه‌ها ضعیف باشد، حتی منابع سخت‌افزاری بالا هم نمی‌توانند سایت را سریع کنند. این نکته ظریف که در تجربه پروژه‌ها زیاد به کارم آمده، نقطه شروع درست برای درک مشخصات سرور وردپرس است.

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

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

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

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

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

منبعحداقل مطلقحداقل توصیه‌شدهتوصیه‌شده برای پروژه جدی
RAM۱ گیگابایت۲ گیگابایت۴ تا ۱۶ گیگابایت
هسته CPU۱ هسته۲ هسته۴ تا ۸ هسته
فضای دیسک۱۰ گیگابایت۲۰ تا ۴۰ گیگابایت SSD۶۰ گیگابایت به بالا NVMe
پهنای باند ماهانه۱۰۰ گیگابایت۵۰۰ گیگابایت۱ ترابایت به بالا
نوع دیسکHDDSSDNVMe

در حافظه سرور (RAM)، مرز عملی پایین، دو گیگابایت است. زیر این عدد، وردپرس با افزونه‌های متداول و اتصال به کش، به سرعت به سقف می‌رسد. تفاوت اصلی میان حداقل توصیه‌شده و توصیه‌شده برای پروژه جدی، در ظرفیت پیکربندی کش و افزونه‌های سنگین است. یک فروشگاه ووکامرسی با Redis و کش صفحه، به‌طور معمول بین چهار تا هشت گیگابایت RAM نیاز دارد تا در ساعات اوج تنفس کند.

در پردازنده (CPU)، حداقل عملی دو هسته است. اما تعداد هسته به‌تنهایی معیار درستی نیست؛ نوع پردازنده و سرعت هر هسته هم اثرگذارند. در پروژه‌ها، چندین بار دیده‌ام که سروری با چهار هسته اقتصادی، از سروری با دو هسته حرفه‌ای کندتر عمل می‌کند. معیار دقیق‌تر، امتیاز Geekbench یا PassMark پردازنده است که در صفحه فروش سرور به‌ندرت ذکر می‌شود؛ پرسش مستقیم از پشتیبانی، راه رسیدن به این عدد است.

در فضای دیسک، نوع دیسک از حجم مهم‌تر است. تفاوت SSD و NVMe در زمان پاسخ کوئری‌های دیتابیس وردپرس، به‌طور محسوس دیده می‌شود. در پروژه‌هایی که سایت روی HDD قدیمی اجرا می‌شد، مهاجرت به NVMe تنها، زمان پاسخ TTFB (Time To First Byte) را به‌طور متوسط بین سی تا پنجاه درصد بهبود داده است. اگر می‌خواهید این تفاوت را با جزئیات فنی‌تر ببینید، مقاله چرا SSD برای هاست وردپرس ضروری است؟ تحلیل کامل را ارائه می‌دهد.

در پهنای باند ماهانه، عدد دقیق به نوع سایت و اندازه صفحات بستگی دارد. برای سایت‌های معمولی، پانصد گیگابایت پاسخگوی اکثر نیازهاست؛ برای فروشگاه‌های پرسروصدا یا سایت‌های رسانه‌ای، مصرف می‌تواند به چند ترابایت برسد. در انتخاب بین پلن‌ها، بهتر است بر اساس تخمین مصرف شش‌ماه اول تصمیم بگیرید، نه بر اساس روزهای اول که ترافیک هنوز شکل نگرفته. برای درک عمیق‌تر رابطه منابع سخت‌افزاری با کیفیت تجربه کاربر، مقاله تأثیر هاست بر سرعت سایت چقدر است؟ هفت کانال اثر را با عدد باز کرده است.

نسخه PHP و افزونه‌های آن: قلب تپنده وردپرس

پی‌اچ‌پی (PHP) زبان اجرای وردپرس است و نسخه آن، بیشترین اثر را در سرعت و امنیت سرور دارد. در تجربه پروژه‌ها، تفاوت میان PHP نسخه هفت و چهار و نسخه هشت و دو، گاهی به دو برابر در سرعت اجرای کد وردپرس می‌رسد. هر نسخه بزرگ PHP، بهبودهای ساختاری در موتور اجرای کد ایجاد می‌کند که مستقیماً به وردپرس منتقل می‌شود. اگر سروری هنوز روی نسخه‌های قدیمی PHP کار می‌کند، پیش از هر تغییر سخت‌افزاری، اول این عدد را به‌روز کنید.

حداقل PHP قابل قبول در سال جاری، نسخه هشت و یک است. نسخه توصیه‌شده، هشت و دو یا بالاتر. هر نسخه پایین‌تر، نه‌فقط کندتر است، بلکه از نظر امنیتی هم روی شاخه‌های قدیمی، وصله کمتری دریافت می‌کند. در پروژه‌هایی که به دلیل قالب یا افزونه قدیمی مجبور به ماندن روی نسخه هفت بودند، گذراندن سایت به PHP هشت، بخش قابل توجهی از کندی گزارش‌شده کاربر را بدون تغییر سخت‌افزاری حل کرد.

در کنار نسخه PHP، دو افزونه بومی این زبان نقش کلیدی دارند: OPcache برای کش کامپایل کد PHP و APCu برای کش داده‌های درون‌حافظه. فعال بودن OPcache، در تجربه من، اثر آنی روی سرعت اجرای وردپرس دارد. نبود آن، به‌معنای اجرای مکرر مراحل کامپایل PHP در هر درخواست است. بررسی فعال بودن OPcache، معمولاً از طریق یک فایل ساده phpinfo.php یا از پنل مدیریت سرور انجام می‌شود.

نکته ظریفی که در پروژه‌ها زیاد به آن پرداخته نمی‌شود: مقدار memory_limit و max_execution_time در پیکربندی PHP. مقدار پیش‌فرض این دو پارامتر در بعضی سرورها برای سایت‌های وردپرسی سنگین کافی نیست و به خطاهای «حافظه ناکافی» یا قطع ناگهانی در مراحل آپدیت، بکاپ و وارد کردن داده منجر می‌شود. مقدار توصیه‌شده برای وردپرس، memory_limit روی حداقل ۲۵۶ مگابایت و max_execution_time روی ۳۰۰ ثانیه است. برای فهم بهتر این پارامترها در بستر کلی، خواندن هاست وردپرس چه ویژگی‌هایی باید داشته باشد؟ پیشنهاد می‌شود.

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

PHP به‌روز بدون OPcache فعال، مثل خودرویی است که در دنده یک حرکت می‌کند؛ می‌رسد، اما دیر.

MySQL یا MariaDB: نسخه، حافظه و تنظیمات

وردپرس داده‌ها را در یک دیتابیس رابطه‌ای نگه می‌دارد و مارک‌های اصلی در این حوزه، MySQL و MariaDB هستند. در تجربه پروژه‌ها، تفاوت میان این دو در سطح وردپرس ناچیز است و انتخاب یکی از آن‌ها بسته به سرویس‌دهنده هاست انجام می‌شود. مسئله مهم‌تر، نسخه دیتابیس است: حداقل قابل قبول، MySQL هشت یا MariaDB ده و چهار به بالا. نسخه‌های قدیمی‌تر، هم از نظر امنیت و هم از نظر سرعت، در برابر بارهای مدرن وردپرسی ضعیف‌تر عمل می‌کنند.

در سطح تنظیمات، پارامترهای کلیدی دیتابیس نقش مهمی در کارایی وردپرس دارند. مقدار innodb_buffer_pool_size در MySQL و MariaDB، مسئول اختصاص حافظه به کش داخلی این موتور ذخیره‌سازی است. در پروژه‌هایی که مقدار این پارامتر در حد پیش‌فرض پایین مانده بود، هر کوئری وردپرس به‌جای استفاده از حافظه، به دیسک مراجعه می‌کرد و سرعت کوئری‌های پیچیده ووکامرس به‌طور محسوس افت می‌کرد. تنظیم درست این پارامتر، در سرورهایی که حداقل چهار گیگابایت حافظه دارند، معمولاً به اختصاص پنجاه تا هفتاد درصد حافظه کل به این پارامتر ختم می‌شود.

پارامتر مهم دیگر، max_connections است که سقف اتصالات همزمان به دیتابیس را تعیین می‌کند. در سایت‌های پربازدید، اگر این عدد پایین بماند، درخواست‌ها صف می‌بندند و سایت خطاهای موقت اتصال می‌دهد. عدد توصیه‌شده، بستگی به اندازه سایت دارد و در سایت‌های متوسط معمولاً بین صد تا دویست تنظیم می‌شود. تنظیم این دو پارامتر بدون اندازه‌گیری مصرف واقعی، توصیه نمی‌شود؛ در پرسش‌های پرتکرار پایین‌تر به این نکته پرداخته‌ام.

در انتخاب هاست وردپرسی، دیتابیس تنها یکی از چند لایه است، اما در سایت‌های فروشگاهی و عضویتی، لایه‌ای است که بیشترین وقت را در آن گذرانده‌ام. اگر در انتخاب هاست وردپرس بین چند گزینه مردد هستید، در فهرست بهترین هاست برای وردپرس کدام است؟ معیارهای انتخاب را با مثال باز کرده‌ام. برای پروژه‌های فروشگاهی، در نظر گرفتن لایه دیتابیس به‌عنوان یکی از ستون‌های تصمیم، توصیه جدی من است.

وب‌سرور: Apache، Nginx یا LiteSpeed

وب‌سرور، لایه‌ای است که درخواست‌های HTTP (Hypertext Transfer Protocol) را دریافت می‌کند و به PHP یا به فایل‌های استاتیک مسیر می‌دهد. سه وب‌سرور اصلی در دنیای وردپرس وجود دارد: Apache، Nginx و LiteSpeed. هر یک، رفتار متفاوتی در تحویل فایل، همزمانی و کش دارند. انتخاب بین این سه، تصمیمی است که در سطح سرویس‌دهنده هاست گرفته می‌شود و کاربر معمولاً امکان تغییر آن را ندارد؛ اما شناخت تفاوت‌ها به انتخاب سرویس‌دهنده درست کمک می‌کند.

Apache، قدیمی‌ترین و پرکاربردترین وب‌سرور در هاست‌های اشتراکی است. مزیت آن، انعطاف در پیکربندی از طریق فایل .htaccess است که به هر سایت، اجازه تنظیمات اختصاصی می‌دهد. در هاست‌های اشتراکی، این انعطاف اهمیت دارد، چون کاربر نمی‌تواند تنظیمات سرور را به‌صورت مرکزی تغییر دهد. اما در سرورهای پرترافیک، Apache در همزمانی و تحویل فایل‌های استاتیک، از Nginx و LiteSpeed عقب‌تر می‌ماند.

Nginx، برای بارهای بالا طراحی شده و در تحویل فایل‌های استاتیک و مدیریت اتصالات همزمان، برتری محسوسی دارد. در سرورهای اختصاصی و VPS با ترافیک بالا، Nginx انتخاب پیش‌فرض اکثر سیستم‌ادمین‌های وردپرس است. نقطه ضعف آن، پیچیدگی پیکربندی برای کاربران تازه‌کار است؛ تنظیمات آن در فایل‌های مرکزی سرور انجام می‌شود و به انعطاف Apache برای هر سایت نیست. اما کارایی بالاتر، در بسیاری از پروژه‌ها این ضعف را جبران می‌کند.

LiteSpeed، وب‌سروری است که اخیراً در بازار هاستینگ وردپرس سهم قابل توجهی به دست آورده است. مزیت اصلی آن، کش سروری بومی در سطح خود وب‌سرور است که بدون نیاز به پیکربندی پیچیده، پاسخ‌ها را پیش از رسیدن به PHP تحویل می‌دهد. در پروژه‌هایی که سایت وردپرسی روی هاست LiteSpeed اجرا شده بود، تفاوت TTFB با Apache مشهود بود. تفاوت این سه وب‌سرور، در انتخاب هاست وردپرس، یکی از ستون‌های تصمیم است که در بخش نرم‌افزاری جدی گرفته می‌شود. مقایسه جزئی‌تر این سه، با تمرکز بر پروژه‌های وردپرسی، در VPS چیست و چه تفاوتی با هاست اشتراکی دارد؟ در بستر انواع سرویس‌ها باز شده است.

لایه کش سروری: OPcache، Redis و Memcached

کش سروری، لایه‌ای است که بار PHP و دیتابیس را به‌طور محسوس کاهش می‌دهد. سه نوع کش اصلی در سرور وردپرس وجود دارد: OPcache برای کش کد کامپایل‌شده PHP، Redis و Memcached برای کش آبجکت و کوئری‌های دیتابیس، و کش صفحه در سطح وب‌سرور. حضور یا نبود این سه لایه، تفاوت میان سروری که در ترافیک بالا نفس می‌کشد و سروری که به‌سرعت خم می‌شود را تعیین می‌کند.

OPcache در اکثر سرورهای مدرن، به‌طور پیش‌فرض فعال است، اما مقدار حافظه اختصاص‌یافته به آن، در تنظیمات پیش‌فرض معمولاً کافی نیست. در پروژه‌هایی که مقدار opcache.memory_consumption روی پیش‌فرض صد و بیست و هشت مگابایت مانده بود، وبلاگ‌های پرمحتوا با تعداد زیاد فایل PHP، با cache miss مواجه می‌شدند و از کش PHP بهره کامل نمی‌بردند. تنظیم این مقدار روی ۲۵۶ مگابایت و بالاتر، برای سایت‌های وردپرسی سنگین توصیه می‌شود.

Redis و Memcached، دو راه‌حل رایج برای کش آبجکت هستند. تفاوت آن‌ها در معماری و قابلیت‌هاست. Redis از ساختارهای داده غنی‌تر پشتیبانی می‌کند و برای سناریوهای پیچیده‌تر مناسب‌تر است؛ Memcached سبک‌تر است و در سناریوهای ساده کش آبجکت، عملکرد خوبی دارد. در تجربه پروژه‌های وردپرسی، Redis برای ووکامرس و سایت‌های عضویتی انتخاب غالب است، چون سبد خرید، سفارش و نشست‌های کاربر را می‌تواند به‌طور مؤثر کش کند. برای انتخاب افزونه کش وردپرسی که با لایه سرور هماهنگ باشد، فهرست بهترین افزونه‌های کش وردپرس کدامند؟ مرجع عملی است.

کش صفحه، در سطح وب‌سرور، پاسخ آماده HTML را برای بازدیدکننده بعدی تحویل می‌دهد. این نوع کش، بیشترین اثر را در سرعت درک‌شده کاربر دارد و رایج‌ترین ابزار در این لایه، LiteSpeed Cache و Nginx FastCGI Cache است. در پروژه‌ها، ترکیب کش صفحه با کش آبجکت، چه در فروشگاه و چه در سایت محتوایی، بهترین نتیجه را داده است. توجه به این نکته ضروری است که در سایت‌هایی با محتوای پویا و سبد خرید، کش صفحه باید با تنظیمات استثنا همراه باشد تا اطلاعات کاربر با دیگری اشتباه نشود.

سیستم‌عامل و هسته لینوکس

سیستم‌عامل پایه سرور وردپرس، در اکثر پروژه‌ها لینوکس است. دلایل این انتخاب، از انعطاف در توزیع‌های مختلف تا سربار کمتر نسبت به ویندوز سرور است. در انتخاب توزیع، سه گزینه اصلی وجود دارد: Ubuntu، Debian، و خانواده AlmaLinux و Rocky Linux (نسخه‌های جدید از CentOS). هر سه توزیع، در پایداری و کارایی برای وردپرس قابل قبول هستند و انتخاب بین آن‌ها بیشتر به ترجیح سیستم‌ادمین و پشتیبانی طولانی‌مدت هر توزیع بستگی دارد.

در سطح هسته (Kernel)، معمولاً نیازی به تغییر پیش‌فرض نیست. اما در VPSها و سرورهای اختصاصی، انتخاب بین هسته‌های KVM و OpenVZ یک تصمیم زیرساختی مهم است. KVM، ماشین مجازی کامل با هسته اختصاصی و رفتار قابل پیش‌بینی‌تر ارائه می‌دهد؛ OpenVZ، هسته مشترک دارد و در برخی پروژه‌ها، منابع تبلیغ‌شده با رفتار واقعی هم‌خوانی ندارند. برای میزبانی وردپرس در پروژه‌های جدی، KVM انتخاب امن‌تری است. اگر انتخاب بین دو سیستم‌عامل سرور برایتان سؤال است، مقاله هاست لینوکس یا ویندوز کدام بهتر است؟ مرزهای این تصمیم را روشن می‌کند.

در هسته لینوکس، پارامترهای شبکه و محدودیت‌های سیستم نقش مهمی در رفتار سرور دارند. مقدار fs.file-max در سطح سیستم و LimitNOFILE در سطح سرویس، سقف فایل‌های قابل باز همزمان را تعیین می‌کنند. در سایت‌های پربازدید با تعداد زیاد اتصال همزمان، اگر این مقادیر روی پیش‌فرض پایین مانده باشند، سرور در ساعات اوج شروع به رد کردن درخواست‌های جدید می‌کند. تنظیم درست این پارامترها، در پروژه‌های سرور اختصاصی با ترافیک بالا، معمولاً بخشی از پیکربندی اولیه است.

لایه امنیتی سرور وردپرس

امنیت سرور وردپرس، ترکیبی از چند لایه است: امنیت سیستم‌عامل، امنیت وب‌سرور، امنیت PHP و امنیت دیتابیس. نبود هر لایه، یک شکاف است که مهاجم می‌تواند از آن وارد شود. در تجربه پروژه‌ها، بیشترین موارد نفوذ، از لایه‌های پایه شروع شده‌اند: پسورد ضعیف SSH (Secure Shell)، نسخه‌های به‌روز نشده نرم‌افزار سرور، و پورت‌های باز بدون نیاز. توجه به این سه، نصف امنیت سرور را تأمین می‌کند.

در لایه SSH، استفاده از کلید به‌جای رمز عبور، استاندارد امروز است. غیرفعال کردن ورود با رمز، کاهش پورت پیش‌فرض SSH و محدودسازی دسترسی به IP شناخته‌شده، سه اقدامی هستند که در تجربه من بیشترین اثر را در کاهش تلاش‌های نفوذ خودکار داشته‌اند. اکثر ابزارهای اسکن خودکار، در برابر این سه اقدام ساده، شکست می‌خورند یا از سرور شما عبور می‌کنند. برای درک لایه‌های امنیتی که مسئولیت شماست، فهرست راهنمای امنیت وردپرس برای مبتدیان را مرور کنید.

در لایه وب‌سرور، فایروال و محدودسازی نرخ درخواست (Rate Limiting) نقش کلیدی دارند. فایروال‌هایی مثل UFW (Uncomplicated Firewall) و ابزارهای تحلیلی مثل Fail2Ban، در برابر حملات تکرارشونده ورود، حمایت مؤثری فراهم می‌کنند. در لایه PHP، غیرفعال کردن توابع خطرناک مثل exec و shell_exec که به‌ندرت توسط وردپرس استفاده می‌شوند، ریسک اجرای کد از راه دور را کاهش می‌دهد. در لایه دیتابیس، محدودسازی دسترسی کاربر به میزبان لوکال و پرهیز از حساب root برای وردپرس، پایه‌ای‌ترین اقدامات امنیتی هستند.

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

سرور امن، سروری نیست که هرگز مورد حمله قرار نگیرد؛ سروری است که در برابر حملات معمول، مقاوم بماند.

ابزارهای مدیریتی ضروری روی سرور

سرور وردپرس بدون ابزارهای مدیریتی، مثل خودرو بدون داشبورد است: روشن می‌شود و حرکت می‌کند، اما وقتی لازم است بدانید چه خبر است، دست خالی می‌مانید. چهار ابزار در تجربه من ضروری هستند: cPanel یا پنل مدیریت جایگزین، phpMyAdmin برای مدیریت دیتابیس، SSH برای دسترسی خط فرمان و WP-CLI (WordPress Command Line Interface) برای مدیریت وردپرس از خط فرمان.

cPanel، پرکاربردترین پنل مدیریت هاست در بازار ایران است. در پروژه‌هایی که مدیریت سرور به عهده مشتری بود، سادگی رابط cPanel تعیین‌کننده بود. اگر با این پنل آشنا نیستید، مقاله cPanel چیست و چه کاربردی دارد؟ بخش‌های کلیدی را توضیح می‌دهد. جایگزین‌های سبک‌تر مثل CyberPanel و DirectAdmin در پلن‌های VPS با منابع محدود، انتخاب منطقی‌تری هستند.

phpMyAdmin، ابزار وب‌پایه مدیریت دیتابیس است و در اکثر پنل‌ها به‌طور پیش‌فرض نصب است. این ابزار برای بازیابی پشتیبان، اصلاح داده‌های خاص و بررسی ساختار جداول کاربرد دارد. SSH، دسترسی خط فرمان به سرور است و ابزار ضروری هر سیستم‌ادمین است. WP-CLI، ابزار رسمی وردپرس برای مدیریت سایت از خط فرمان است و برای عملیات‌های تکرارشونده مثل آپدیت هسته، افزونه‌ها و بازیابی بکاپ، زمان‌بری کمی دارد.

سرور مدیریت‌شده یا مدیریت‌نشده؟

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

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

چک‌لیست کامل مشخصات سرور وردپرس

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

  • RAM: حداقل ۲ گیگابایت، توصیه ۴ گیگابایت به بالا.
  • CPU: حداقل ۲ هسته، توصیه ۴ هسته به بالا؛ پردازنده مدرن مهم‌تر از تعداد هسته.
  • دیسک: حداقل SSD، توصیه NVMe؛ فضای ۲۰ گیگابایت به بالا.
  • پهنای باند: حداقل ۵۰۰ گیگابایت ماهانه، بیشتر برای فروشگاه و رسانه.
  • PHP: نسخه ۸ و یک حداقل، ۸ و دو یا بالاتر توصیه.
  • OPcache: فعال با حداقل ۲۵۶ مگابایت حافظه.
  • MySQL/MariaDB: نسخه MySQL ۸ یا MariaDB ۱۰ و چهار به بالا.
  • وب‌سرور: Nginx یا LiteSpeed برای کارایی بالا، Apache برای انعطاف .htaccess.
  • کش آبجکت: Redis یا Memcached برای سایت‌های پربار.
  • کش صفحه: LiteSpeed Cache یا Nginx FastCGI Cache فعال.
  • سیستم‌عامل: یکی از توزیع‌های پایدار لینوکس (Ubuntu، Debian، AlmaLinux).
  • مجازی‌سازی: KVM برای پایداری بیشتر در برابر OpenVZ.
  • SSH: دسترسی فعال با احراز هویت کلیدی.
  • WP-CLI: نصب‌شده برای مدیریت خط فرمان وردپرس.
  • پشتیبان‌گیری: بکاپ روزانه دیتابیس و هفتگی فایل‌ها، در سه محل جداگانه.
  • امنیت: فایروال فعال، Fail2Ban، به‌روزرسانی خودکار وصله‌ها.
  • SSL: گواهی معتبر با ریدایرکت اجباری HTTP به HTTPS.
  • مانیتورینگ: سیستم پایش مصرف CPU، RAM و دیسک با هشدار.

برای به‌کارگیری سریع این چک‌لیست، پیشنهاد می‌کنم آن را در سه دسته پیشنهاد سخت‌افزاری، نرم‌افزاری و امنیتی ببینید. دسته اول، تصمیم خرید پلن؛ دسته دوم، انتخاب سرویس‌دهنده؛ دسته سوم، پیکربندی پس از راه‌اندازی. این سه‌گانه، ترتیب طبیعی کار را بازتاب می‌دهد. اگر سایت شما فروشگاهی است و می‌خواهید الزامات خاص آن را هم ببینید، چگونه هاست مناسب برای فروشگاه اینترنتی انتخاب کنیم؟ نسخه تخصصی چک‌لیست را برای فروشگاه ارائه می‌دهد.

پرسش‌های پرتکرار درباره مشخصات سرور وردپرس

حداقل مشخصات سرور برای نصب وردپرس چیست؟

وردپرس به‌طور رسمی روی هر سروری که PHP نسخه هفت و چهار به بالا و MySQL نسخه پنج و شش به بالا داشته باشد نصب می‌شود. اما برای اجرای پایداری در عمل، حداقل PHP هشت و یک، MySQL هشت یا MariaDB ده و چهار، یک گیگابایت RAM، یک هسته CPU و ده گیگابایت فضای دیسک لازم است. این اعداد، پایین‌ترین سطحی هستند که سایت کوچک روی آن راه می‌افتد.

تفاوت مشخصات حداقل و توصیه‌شده سرور وردپرس در چیست؟

حداقل مطلق، سطحی است که زیر آن وردپرس اجرا نمی‌شود یا بی‌ثبات است. توصیه‌شده، سطحی است که سایت در ساعات اوج، با افزونه‌های متداول و لایه کش، پایدار می‌ماند. تفاوت این دو در تجربه من، معمولاً به‌اندازه چند برابر در رضایت کاربر و نرخ تبدیل دیده می‌شود. برای پروژه‌های جدی، تصمیم بر پایه حداقل مطلق، خطای استراتژیک است.

چه تعداد هسته CPU برای وردپرس کافی است؟

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

چرا NVMe بهتر از SSD معمولی است؟

NVMe از پروتکل جدیدتری برای ارتباط با دیسک استفاده می‌کند که تعداد عملیات همزمان بیشتری را نسبت به SATA پشتیبانی می‌کند. تفاوت آن با SSD معمولی، در بارهای تراکنشی و کوئری‌های دیتابیس، به‌طور محسوس دیده می‌شود. برای سایت‌های وردپرسی با دیتابیس بزرگ یا فروشگاه ووکامرسی، NVMe انتخاب منطقی‌تری است.

آیا OPcache برای وردپرس ضروری است؟

بله، OPcache در عمل به‌عنوان یکی از پایه‌های سرعت وردپرس محسوب می‌شود. با کش کردن کد کامپایل‌شده PHP، از اجرای مکرر مراحل کامپایل جلوگیری می‌کند و سرعت اجرای درخواست‌ها را بالا می‌برد. اکثر سرورهای مدرن آن را به‌طور پیش‌فرض فعال دارند، اما مقدار حافظه اختصاص‌یافته به آن، به‌طور معمول نیاز به تنظیم دستی دارد. مقدار ۲۵۶ مگابایت، حداقل توصیه‌شده برای سایت‌های وردپرسی است.

Redis یا Memcached: کدام برای وردپرس بهتر است؟

هر دو ابزار کش آبجکت هستند و در سطح پایه، کارکرد مشابهی دارند. Redis از ساختارهای داده غنی‌تر پشتیبانی می‌کند و برای سناریوهای پیچیده‌تر مثل ووکامرس و سایت‌های عضویتی مناسب‌تر است. Memcached سبک‌تر است و در سناریوهای ساده کش آبجکت، عملکرد خوبی دارد. در پروژه‌های وردپرسی، Redis انتخاب غالب امروز است، چون دامنه کاربرد گسترده‌تری دارد.

سرور مدیریت‌شده یا مدیریت‌نشده برای وردپرس؟

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

چگونه مطمئن شوم سرور فعلی من مشخصات لازم را دارد؟

سه ابزار ساده: یک فایل phpinfo.php برای بررسی نسخه PHP و تنظیمات OPcache، پنل سرور برای بررسی نسخه MySQL و مقدار innodb_buffer_pool_size، و ابزار مانیتورینگ برای بررسی مصرف CPU و RAM در ساعات اوج. اگر یکی از این سه، پایین‌تر از حداقل توصیه‌شده بود، ارتقای همان لایه، پیش از ارتقای سخت‌افزار، توصیه می‌شود.

آیا وب‌سرور Apache برای وردپرس کافی است؟

بله، Apache برای اکثر پروژه‌های وردپرسی کافی است و در هاست‌های اشتراکی پرکاربردترین گزینه است. مزیت آن، انعطاف .htaccess است که به هر سایت اجازه تنظیمات اختصاصی می‌دهد. برای سایت‌های پربار با ترافیک بالا، Nginx یا LiteSpeed کارایی بهتری دارند، اما انتخاب بین این سه، معمولاً توسط سرویس‌دهنده هاست انجام می‌شود.

پشتیبان‌گیری روی همان سرور کافی است؟

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

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

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

چه زمانی باید سرور را ارتقا داد؟

چهار نشانه: مصرف RAM به‌طور مداوم بالای هشتاد درصد، مصرف CPU متوسط بالا در ساعات پیک، افت محسوس TTFB با تنظیمات ثابت، و افزایش خطاهای ۵۰۳ یا ۵۰۴ در ساعات اوج. اگر سه نشانه از چهار نشانه را دارید، ارتقا ضرورت دارد. این نشانه‌ها باید با ابزار مانیتورینگ بررسی شوند، نه با حس و گمان.

یک قاعده برای انتخاب سرور، فراتر از کاتالوگ

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

سه تصمیم کلیدی که این قاعده را عملی می‌کند: اول، انتخاب پلن بر پایه نیاز واقعی، با اندازه‌گیری مصرف فعلی نه با پیش‌بینی تبلیغاتی. دوم، پیش از ارتقای سخت‌افزار، ارتقای نرم‌افزار و پیکربندی کش، چون این لایه‌ها اغلب بیشتر از سخت‌افزار اضافه، اثر دارند. سوم، پایش مداوم و مستند از مصرف منابع، تا تصمیم‌های آینده بر پایه داده باشند نه حدس. هر سه، ارزان‌ترین تصمیم‌های زیرساخت هستند و بیشترین اثر را دارند.

قدم عملی برای امروز: یک فایل phpinfo.php روی سرور خود بسازید و سه عدد را یادداشت کنید: نسخه PHP، مقدار OPcache و مقدار memory_limit. سپس در پنل سرور، نسخه MySQL و مقدار innodb_buffer_pool_size را ببینید. همین پنج عدد، تصویر روشنی از سلامت نرم‌افزاری سرور فعلی شما می‌دهد. 🙂

اگر در انتخاب مشخصات سرور وردپرس برای پروژه خودتان تجربه‌ای دارید — مثلاً سروری که با یک تغییر کوچک، سرعت قابل توجهی پیدا کرد — در دیدگاه‌ها بنویسید. همین جزئیات برای خواننده بعدی از هر کاتالوگ عمومی مفیدتر است.