من در چند روز اخیر برای نصب یک برنامه بر روی وب سایت خودم مشکلات زیادی با شرکت ارائه دهنده خدمات هاستینگم پیدا کردم و به این نتیجه رسیدم که ای کاش قبل از بستن قرارداد با این شرکت شرایط آنها را به دقت بررسی می کردم، بعد مقاله ای خواندم در مورد این که چگونه یک شرکت ارائه دهنده خدمات هاستینگ خوب بر اساس نیازهایمان پیدا کنیم، من هم بد ندیدم این مقاله رو ترجمه کنم و در اختیار شما قرار بدم.
PHP و به طور عام LAMP که ترکیبی از Linux, Apache, MySQL و PHP/Perl/Python در سطح بسیار گسترده ای توسط شرکتهای هاستینگ و با قیمتهای مناسب ارائه می شود، شما خیلی آسون می تونید با چیزی کمتر از ماهیانه ۳ هزار تومان سرویسی رو در اختیار بگیرید که ۹۰ درصد احتیاجات شما رو برطرف کنه، اما مسلما در تمام سرویسهای ارائه شده امکانات PHP ای که در اختیار شما قرار می گیرند یکسان نیستند و تا حد بسیار زیادی به تنظیمات فایل php.ini و همچنین extension های نصب شده بستگی دارد پس یک انتخاب خوب می تونه شما رو از شر دردسرهای احتمالی در آینده نجات بده!
علاوه بر توجه به این موارد دونستن اینکه آیا admin شما به تمام سوالات و مشکلات شما پاسخ می ده و یا اینکه ازآیا سواد کافی برخورداره هم بسیار مهم هستند و شما می تونید این اطلاعات رو از مشتریان قبلی سرویس دهنده به دست بیارید، خوب حالا به موارد عمومی ای که شما باید هنگام خرید دقت کنید می پردازم:
ترکیبی از PHP و Apache 1.3
از دیدگاه کارایی و مطمئن بودن این زوج بهترین ترکیب را به دست می دهند، از سرویسهایی که از Apache 2.x استفاده می کنند بپرهیزید، با توجه به تمام کارایی و قدرت Apache 2 این نسخه هنوز برای کار با PHP به طور کامل آماده نشده، همچنین ازمدیر سایت بخواهید که توزیع لینوکس نصب شده بر روی هاست رو به شما اطلاع دهد، هر چی بیشتر بدونید که با چه نرم افزارهایی سروکار دارید بهتره
آیا اجازه دسترسی SSH به سرور در اختیار شما قرار می گیرد؟
SSH یک ارتباط امن به سرور رو برای شما فراهم می کند که با استفاده از اون می تونید کارهای مختلفی رو با استفاده از command line لینوکس و یا SCP ( کپی امن) انجام بدید، از هر هاستی که به شما اجازه دسترسی از طریق telnet رو میده پرهیز کنید، برای کاربران ویندوز Putty[1] می تونه یک محیط command line عالی رو روی SSH به وجود بیاره، همچنین WinSCP[2] مکانیزم امنی رو برای انتقال فایلها روی SSH فراهم می کنه، اصلا از FTP استفاده نکنید چون به اندازه telnet ناامنه!
هاست یک Reseller است یا اینکه خودشون سرور رو نگه داری می کنن؟
این مهمه که شرکت ارائه دهنده خدمات یک reseller است یا نه، اگر reseller باشد درست است که در موارد پیش پا افتاده و یا گاها اندکی پیچیده فقط و فقط با راهنمایی می توانند شما رو کمک کنند اما در واقع سطح دسترسی اونا در همون حد شماست و نه بیشتر!
میزان Overload سرور
بعضی از شرکتها خیلی بیشتر از تعداد ماکزیمی که نسیت به سیستم در اختارشون می تونن سرویس ارائه بدن، account می دن و این یعنی پایین اومدن کارآیی، بهترین مقیاس اجرای دستور uptime است ( اینجاست که حق دسترسی به SSH معنی پیدا می کنه )، این دستور به شما مقدار میانگین Load سرویس رو میگه؛ در حالت ایده آل سرویس هرگز نباید میانگین load بالای ۱ دقیقه داشته باشد، ولی هر وقت که مشاهده کردید این زمان با بالای ۵ دقیقه رسیده است، منتظر ایجاد وقفه در اجرای برنامه های PHP خود باشید
سیاست شرکت برای command line ها چیست؟
مسلما دستور MYSQLDump روشی مطمئن برای Backup گیری فراهم می کنه، ولی بعضی از شرکتها دستورهایی که بیشتر از یک زمان مشخص اجرای اونها طول بکشه رو به طور خودکار kill می کنن
و در نهایت ببینید که آیا شرکت اجازه دسترسی به corn که یک ابزار UNIX برای مدیریت کارهای batch است رو در اختیار شما قرار می ده
حالا به مواردی می پردازیم که مربوط به PHP هستند:
آیا شما می توانید خروجی تابع phpinfo را مشاهده کنید؟
ممکن است بعضی از هاستها ادعا کنند که این یک شکاف امنیتی است اما هاستهای حرفه ای می دانند که امنیت همراه با ابهام [Security by obscurity] هرگز نمی تواند جایگزین امنیت واقعی شود، اطلاعاتی که توسط phpinfo در اختیار شما قرار داده می شه هیچ مشکلی رو برای هاستی که با استفاده از لینوکس، آپاچی و قایروالها به خوبی تنظیم شده ایجاد نمی کنه.
آیا PHP به صورت یک ماژول نصب شده است؟
از لحاظ کارآیی این نوع نصب به مراتب بهتر از CGI است.
آیا تنظیم Allowoverride در Apache به درستی تنظیم شده است؟
این تنظیم، این قابلیت رو به شما می ده که با استفاده از فایل .htaccess تنظیمات php.ini رو تحت تاثیر قرار بدین.
آیا Safe Mode غیر فعال شده است؟
safe_mode در فایل php.ini از لحاظ تئوری کاربران را از اجرای دستورات و یا توابع مشخصی که با بحث امنیت در ارتباط هستند منع می کند، در واقع safe_mode چیزی نیست جز یک دردسر بزرگ وقتی که بخواهید با PHP کارهای جدی انجام بدهید!
سیاست شرکت در قبال اطلاع رسانی به شما هنگام ایجاد تغییرات چیست؟
کم نیستند شرکتهایی که به یکباره تنظیمات php.ini را تغییر می دهند و مثلا register_globals رو مرتبا روشن و خاموش می کنن.
از PHP Extensions نصب شده آگاهی بیابید.
از هاست بخواهید که اکستنشنهای نصب شده را به شما اطلاع دهد و توجه داشته باشید که اکستنشن XSLT حتما نصب شده باشد و همچنین اطمینان حاصل کنید که این اکستنشنها همیشه در دسترس خواهند بود.
و در نهایت میزان اطلاعات شرکت رو نسبت به PHP بسنجید، مسلما شما از اونها توقع ندارید که برنامه های کامل با استفاده از PHP بنویسن اما اگر اونها تا حدودی با PHP آشنا باشند نیازهای شما را بهتر درک می کنند