TAHA
10-31-2009, 09:32 PM
خصوصیات یك سرور خوب برای شما كه PHP كار هستید
من در چند روز اخیر برای نصب یك برنامه بر روی وب سایت خودم مشكلات زیادی با شركت ارائه دهنده خدمات هاستینگم پیدا كردم و به این نتیجه رسیدم كه ای كاش قبل از بستن قرارداد با این شركت شرایط آنها را به دقت بررسی می كردم، بعد مقاله ای خواندم در مورد این كه چگونه یك شركت ارائه دهنده خدمات هاستینگ خوب بر اساس نیازهایمان پیدا كنیم، من هم بد ندیدم این مقاله رو ترجمه كنم و در اختیار شما قرار بدم.
PHP و به طور عام LAMP كه تركیبی از Linux, Apache, MySQL و PHP/Perl/Python در سطح بسیار گسترده ای توسط شركتهای هاستینگ و با قیمتهای مناسب ارائه می شود، شما خیلی آسون می تونید با چیزی كمتر از ماهیانه 3 هزار تومان سرویسی رو در اختیار بگیرید كه 90 درصد احتیاجات شما رو برطرف كنه، اما مسلما در تمام سرویسهای ارائه شده امكانات 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 بالای 1 دقیقه داشته باشد، ولی هر وقت كه مشاهده كردید این زمان با بالای 5 دقیقه رسیده است، منتظر ایجاد وقفه در اجرای برنامه های 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 آشنا باشند نیازهای شما را بهتر درك می كنند
[1] http://www.chiark.greenend.org.uk/~s.../download.html (http://forum.patoghu.com/redirector.php?url=http%3A%2F%2Fwww.chiark.greenen d.org.uk%2F%7Esgtatham%2Fputty%2Fdownload.html)
[2] http://winscp.sourceforge.net/eng (http://forum.patoghu.com/redirector.php?url=http%3A%2F%2Fwinscp.sourceforge .net%2Feng)
من در چند روز اخیر برای نصب یك برنامه بر روی وب سایت خودم مشكلات زیادی با شركت ارائه دهنده خدمات هاستینگم پیدا كردم و به این نتیجه رسیدم كه ای كاش قبل از بستن قرارداد با این شركت شرایط آنها را به دقت بررسی می كردم، بعد مقاله ای خواندم در مورد این كه چگونه یك شركت ارائه دهنده خدمات هاستینگ خوب بر اساس نیازهایمان پیدا كنیم، من هم بد ندیدم این مقاله رو ترجمه كنم و در اختیار شما قرار بدم.
PHP و به طور عام LAMP كه تركیبی از Linux, Apache, MySQL و PHP/Perl/Python در سطح بسیار گسترده ای توسط شركتهای هاستینگ و با قیمتهای مناسب ارائه می شود، شما خیلی آسون می تونید با چیزی كمتر از ماهیانه 3 هزار تومان سرویسی رو در اختیار بگیرید كه 90 درصد احتیاجات شما رو برطرف كنه، اما مسلما در تمام سرویسهای ارائه شده امكانات 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 بالای 1 دقیقه داشته باشد، ولی هر وقت كه مشاهده كردید این زمان با بالای 5 دقیقه رسیده است، منتظر ایجاد وقفه در اجرای برنامه های 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 آشنا باشند نیازهای شما را بهتر درك می كنند
[1] http://www.chiark.greenend.org.uk/~s.../download.html (http://forum.patoghu.com/redirector.php?url=http%3A%2F%2Fwww.chiark.greenen d.org.uk%2F%7Esgtatham%2Fputty%2Fdownload.html)
[2] http://winscp.sourceforge.net/eng (http://forum.patoghu.com/redirector.php?url=http%3A%2F%2Fwinscp.sourceforge .net%2Feng)