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

لینوکس؛ سیستمعامل سرور
لینوکس را میتوان مثل «ویندوز سرور» در نظر گرفت، اما معمولاً بدون دسکتاپ، آیکون و ماوس. بیشتر سرورهای وب با لینوکس کار میکنند چون سبک، پایدار، امن و مناسب اجرای سرویسهای دائمی است. لینوکس منابع اصلی سرور مثل CPU، RAM، هارد و دسترسی فایلها را مدیریت میکند و بستری فراهم میکند تا وبسرور، PHP، دیتابیس و وردپرس روی آن اجرا شوند.
برای یک طراح وردپرس لازم نیست از ابتدا دستورات لینوکس را حرفهای بلد باشد، اما باید بداند هاست وردپرسی فقط یک پنل گرافیکی نیست؛ پشت آن یک سیستمعامل سروری در حال مدیریت منابع و سرویسهاست.
وبسرور؛ دریافت درخواست کاربر
وبسرور نرمافزاری است که درخواست مرورگر کاربر را میگیرد و فایل یا خروجی مناسب را به او تحویل میدهد. Apache، Nginx و LiteSpeed از وبسرورهای رایج هستند. Apache منعطف است و از فایل .htaccess پشتیبانی میکند. Nginx سریع و سبک است اما .htaccess ندارد. LiteSpeed برای وردپرس بسیار محبوب است چون هم سرعت بالایی دارد و هم از .htaccess پشتیبانی میکند.
مسیر ساده پردازش یک صفحه اینطور است: کاربر درخواست میفرستد، وبسرور آن را دریافت میکند، اگر نیاز به اجرای PHP باشد درخواست به PHP سپرده میشود، PHP کدهای وردپرس را اجرا میکند، اطلاعات لازم از دیتابیس خوانده میشود و خروجی نهایی دوباره از طریق وبسرور به مرورگر کاربر برمیگردد.
تنظیمات اصولی PHP در هاست
وردپرس با PHP ساخته شده، بنابراین تنظیمات PHP روی عملکرد سایت تأثیر مستقیم دارد. این تنظیمات معمولاً در کنترلپنل هاست قابل تغییر هستند و مشخص میکنند اسکریپتهای PHP چقدر رم مصرف کنند، چقدر زمان برای اجرا داشته باشند، چه حجمی از فایل را بپذیرند و خطاها چطور نمایش داده شوند.
فلسفه RAM و Memory Limit
RAM حافظه موقت سرور است؛ یعنی جایی که پردازشهای لحظهای در آن انجام میشود. وقتی کاربر وارد سایت میشود یا شما با Bricks، ووکامرس یا افزونههای سنگین کار میکنید، PHP برای اجرای کدها به RAM نیاز دارد. اما این به معنی آن نیست که هرچه رم بیشتری به PHP بدهیم، همیشه بهتر است.
اگر سرور مثلاً ۶ گیگابایت رم دارد، نباید همه آن را به یک اسکریپت PHP اختصاص داد، چون لینوکس، وبسرور، دیتابیس و سایر سرویسها هم به رم نیاز دارند. برای بسیاری از سایتهای وردپرسی، مقدارهایی مثل 256M یا 512M برای Memory Limit منطقی و رایج هستند. دادن رم خیلی زیاد به یک اسکریپت میتواند خطرناک باشد؛ چون اگر کد معیوب یا مخرب اجرا شود، ممکن است منابع سرور را بیدلیل درگیر کند.
دایرکتیوهای مهم PHP
| تنظیم PHP | کاربرد عملی |
|---|---|
memory_limit | سقف رم مصرفی هر اسکریپت PHP را مشخص میکند. اگر کم باشد، در صفحهسازها یا عملیات سنگین ممکن است Fatal Error ببینید. |
max_execution_time | مشخص میکند یک اسکریپت چند ثانیه اجازه اجرا داشته باشد. برای نصب، آپدیت یا پردازشهای سنگین مهم است. |
upload_max_filesize | سقف حجم فایل قابل آپلود را مشخص میکند. اگر کم باشد، آپلود قالب، افزونه یا فایلهای بزرگ با خطا مواجه میشود. |
post_max_size | سقف دادهای را مشخص میکند که در یک درخواست ارسال میشود. بهتر است برابر یا کمی بیشتر از upload_max_filesize باشد. |
max_input_vars | تعداد متغیرهای قابل دریافت در یک درخواست را مشخص میکند. برای منوهای طولانی یا تنظیمات زیاد ممکن است نیاز به افزایش داشته باشد. |
display_errors | در سایت زنده بهتر است غیرفعال باشد تا خطاهای فنی و مسیر فایلها برای کاربران یا افراد مخرب نمایش داده نشود. |
این تنظیمات را نباید بیهدف زیاد کرد. هدف، رسیدن به تعادل است: سایت باید منابع کافی برای اجرای درست داشته باشد، اما تنظیمات آنقدر باز نباشد که امنیت و پایداری هاست به خطر بیفتد.
فایل wp-config.php؛ شناسنامه فنی وردپرس
فایل wp-config.php یکی از مهمترین فایلهای وردپرس است. این فایل در ریشه نصب وردپرس قرار دارد و اطلاعات حساس و پایهای سایت در آن ذخیره میشود؛ مثل نام دیتابیس، نام کاربری دیتابیس، رمز دیتابیس، کلیدهای امنیتی و بعضی تنظیمات مهم وردپرس.
اگر اطلاعات اتصال دیتابیس در این فایل اشتباه باشد، وردپرس نمیتواند با دیتابیس ارتباط بگیرد و معمولاً با خطای معروف Error Establishing a Database Connection روبهرو میشوید. به همین دلیل، wp-config را میتوان شناسنامه فنی سایت دانست؛ فایلی کوچک، اما بسیار حساس.
تنظیم Memory Limit در wp-config
ممکن است در هاست مقدار PHP Memory Limit را مثلاً روی 512M گذاشته باشید، اما وردپرس بهصورت پیشفرض همیشه از کل آن استفاده نمیکند. با تعریف Memory Limit در wp-config، به وردپرس میگوییم برای بخش کاربری و بخش مدیریت تا چه سقفی اجازه مصرف رم داشته باشد.
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
WP_MEMORY_LIMIT بیشتر برای سمت کاربر یا Front-end استفاده میشود؛ یعنی زمانی که بازدیدکننده سایت را میبیند. WP_MAX_MEMORY_LIMIT بیشتر برای بخش مدیریت، ویرایشگرها، آپدیتها و کارهای سنگینتر کاربرد دارد. این تفکیک کمک میکند سمت کاربر بیدلیل منابع زیاد مصرف نکند، اما مدیر سایت هنگام کار با ابزارهایی مثل Bricks فضای بیشتری داشته باشد.
موارد مهم دیگر در wp-config
در wp-config علاوه بر تنظیم رم، مواردی مثل اطلاعات دیتابیس، Salt Keys و WP_DEBUG هم وجود دارد. Salt Keys رشتههای امنیتی تصادفی هستند که برای امنتر کردن نشستها و کوکیهای کاربران استفاده میشوند. WP_DEBUG هم برای عیبیابی در زمان توسعه کاربرد دارد، اما در سایت زنده نباید بدون دقت روشن بماند؛ چون ممکن است خطاهای فنی را در معرض دید قرار دهد.
فایل .htaccess؛ دروازهبان وردپرس
فایل .htaccess مخصوص وبسرورهایی مثل Apache و LiteSpeed است و قبل از اینکه درخواست کاربر به وردپرس برسد، میتواند روی آن اثر بگذارد. این فایل شبیه نگهبان ورودی سایت است؛ درخواست را بررسی میکند و بر اساس قوانین موجود، اجازه عبور میدهد، ریدایرکت میکند یا بعضی دسترسیها را محدود میکند.
در وردپرس، .htaccess معمولاً برای مدیریت پیوندهای یکتا، ریدایرکتها، بعضی تنظیمات امنیتی و گاهی کش استفاده میشود. اگر این فایل خراب شود یا قوانین آن بههم بریزد، ممکن است صفحات داخلی سایت با خطای 404 باز شوند، حتی اگر خود محتوا در وردپرس وجود داشته باشد.
نکته مهم این است که Nginx از .htaccess استفاده نمیکند. اگر سایت روی Nginx باشد، قوانین مشابه باید در تنظیمات اصلی وبسرور نوشته شوند. اما در هاستهای رایج وردپرسی که Apache یا LiteSpeed دارند، .htaccess یکی از فایلهای مهم برای عملکرد درست سایت است.
phpMyAdmin؛ مدیریت دیتابیس وردپرس
دیتابیس جایی است که بخش بزرگی از اطلاعات وردپرس در آن ذخیره میشود؛ از نوشتهها و برگهها گرفته تا کاربران، تنظیمات سایت، سفارشها، گزینههای افزونهها و اطلاعات داخلی وردپرس. phpMyAdmin یک ابزار گرافیکی برای دیدن و مدیریت همین دیتابیس است.
برای یک طراح وردپرس، phpMyAdmin ابزار روزمره نیست که هر روز با آن کار کند، اما شناخت آن مهم است. چون در شرایط اضطراری، مهاجرت سایت، تغییر آدرس سایت، بررسی جدولها یا بازیابی دسترسی مدیر ممکن است به آن نیاز پیدا کنید.
جدولهای مهم وردپرس در دیتابیس
| جدول | نقش اصلی |
|---|---|
wp_options | تنظیمات اصلی سایت، آدرس سایت، تنظیمات قالب و بسیاری از گزینههای افزونهها |
tmp4696e6_posts | نوشتهها، برگهها، محصولات، منوها و بسیاری از محتواهای اصلی وردپرس |
wp_users | اطلاعات کاربران سایت |
wp_usermeta | اطلاعات تکمیلی کاربران، نقشها و بعضی دسترسیها |
wp_postmeta | اطلاعات تکمیلی نوشتهها، برگهها، محصولات و دادههای افزونهها |
پیشوند جدولها همیشه wp_ نیست و ممکن است در بعضی سایتها برای امنیت یا هنگام نصب تغییر کرده باشد. بنابراین اگر وارد phpMyAdmin شدید و جدولها را با نامی متفاوت دیدید، الزاماً مشکل وجود ندارد؛ مهم ساختار و نقش جدولهاست.
تغییر اضطراری رمز مدیر از phpMyAdmin
این روش فقط برای زمانی است که مالک سایت هستید و دسترسی معمولی به پیشخوان یا ایمیل بازیابی رمز ندارید. در چنین حالتی میتوانید وارد phpMyAdmin شوید، جدول کاربران را باز کنید، کاربر مدیر را ویرایش کنید و مقدار user_pass را تغییر دهید.
مسیر کلی به این شکل است: وارد جدول wp_users شوید، روی Edit کاربر مدیر بزنید، فیلد user_pass را پیدا کنید، در ستون Function گزینه MD5 را انتخاب کنید، رمز جدید را در ستون Value وارد کنید و ذخیره را بزنید. وردپرس بعد از اولین ورود، این رمز را شناسایی میکند و معمولاً آن را به فرمت امنتر خودش تبدیل میکند.
این روش کاربردی است، اما نباید عادی و روزمره استفاده شود. برای مدیریت معمول رمزها، همیشه بهتر است از مسیر استاندارد بازیابی رمز یا تغییر رمز داخل پیشخوان استفاده کنید.
جمعبندی جلسه
در این جلسه با پشت صحنه فنی وردپرس آشنا شدیم. فهمیدیم لینوکس بستر اصلی سرور است، وبسرور درخواست کاربر را دریافت میکند، PHP کدهای وردپرس را اجرا میکند و دیتابیس اطلاعات سایت را نگه میدارد.
بعد تنظیمات مهم PHP مثل Memory Limit، زمان اجرای اسکریپت، حجم آپلود، max_input_vars و display_errors را شناختیم. همچنین دیدیم فایل wp-config.php شناسنامه فنی وردپرس است، .htaccess نقش دروازهبان درخواستها را دارد و phpMyAdmin ابزار مدیریت مستقیم دیتابیس است.
هدف این جلسه این نیست که از شما مدیر سرور بسازد؛ هدف این است که هنگام کار با هاست و وردپرس، بدانید هر بخش چه نقشی دارد و در زمان خطا یا تنظیمات مهم، سردرگم نشوید.

