نحوه مهاجرت از وب‌ سرور IIS مايكروسافت به Apache بر روي لينوكس

 نويسنده: Jon Walker
LinuxWorld
مترجم: امين ايزدپناه

در اين مقاله، من افرادي را كه مهاجرت به Apache بر روي لينوكس را به عنوان راهي يافته‌اند كه سازمان آنها بايستي بپيمايد مد نظر قرار خواهم داد. حالا كه تصميم اتخاذ گرديده است، چگونه به آن جامه عمل مي‌پوشانيد؟ خب، خوشحالم كه اين سوال را مطرح نموديد.

 

طرح، طرح، طرح

از Henry Ford جمله‌اي نقل است به اين مضمون: ”قبل از هر چيز ديگر، مهيا شدن راز دستيابي به موفقيت است.“ اين يك پند حكيمانه است نه تنها براي ساختن اتومبيل، بلكه براي گسترش وب‌سرورها نيز چنين است. از آنجايي كه مهاجرت‌هاي بدون طرح‌ريزي دقيق مي‌توانند به يك مشكل تبديل شوند، شما بايستي اطمينان حاصل نماييد كه كاركنان فني شما داراي مهارت‌هاي لازم براي پياده‌سازي و نگهداري يك محيط لينوكس مي‌باشند چرا كه تفاوت‌هاي سيستم‌عامل و مديريتي عمده‌اي ميان ويندوز و لينوكس وجود دارد. حداقل تعدادي از كارمندان شما بايد داراي گواهينامه لينوكس (LPI سطح 1 و/يا LPI سطح 2 يا معادل آن) باشند. تعداد زيادي از دوره‌هاي آموزشي لينوكس در دسترس سازمان‌هاي در حال مهاجرت به لينوكس قرار دارند. به علاوه، مشاوره خارج از سازماني را مد نظر قرار دهيد. طرح‌ريزي، طراحي فرايند، سرويس‌هاي پياده‌سازي و ارزيابي حرفه‌اي غالبا در بلند مدت مشكلات فني و هزينه‌اي كمتري را در پي خواهند داشت.

 

زبان برنامه‌نويسي خود را برگزينيد

براي مهاجرت سرور، آيا سازمان شما بايد از زبان‌هاي توسعه فعلي‌تان (همچون استفاده از ويژوال بيسيك در ASP) پشتيباني نمايد يا به محيط‌هاي توسعه جديد (از قبيل PHP) روي آورد؟ در مورد ASP محدوديت‌هاي فراواني وجود دارد از قبيل سرعت كند اجراي آن و قابليت ضعيف توسعه‌پذيري. گذشته از اين، ASP مستقل از سيستم‌عامل نيست (تنها تحت ويندوز اجرا مي‌گردد). به هر حال، اگر شما ويژوال بيسيك را ترجيح مي‌دهيد يا نمي‌خواهيد وقت خود را صرف سايت‌هاي بي‌مصرف كنيد، كماكان مي‌توانيد به Apache مهاجرت كرده و كد قديمي ASP خود را حفظ كنيد. يك محصول تجاري براي كمك به اين گذار وجود دارد: Sun Java System Active Server Pages (براي كسب اطلاعات بيشتر به آدرس www.versora.com/products/sun_asp.php مراجعه نماييد) به شما امكان ميزباني ASP را بر روي تقريبا هر پلاتفرمي كه Apache بر روي آن اجرا مي‌گردد، مي‌دهد. در هر صورت، ممكن است شما نيازمند برخي تغييرات خاص سايت باشيد.

همان گونه كه احتمالا بسياري از شما مي‌دانيد PHP يك نرم‌افزار كدباز است كه نيازمند هيچ هزينه‌‌اي براي مجوز نيست. آن همچنين در ميان زبان‌هاي برنامه‌نويسي وب از سوي بسياري به دليل سرعت بالا، توسعه‌پذيري عالي، مديريت حافظه‌ي مطلوب، يكپارچگي با پايگاه‌داده MySQL و قابليت جابجايي به واسطه توسعه مستقل از سيستم‌عامل به عنوان يك انتخاب عالي مورد توجه قرار گرفته است. اگر شما تصميم داريد از ASP به PHP مهاجرت كنيد، يك برنامه كدباز تحت عنوان asp2php شما را در اين فرايند ياري خواهد نمود. آن سايت‌هاي ASP را به صورت خودكار به PHP تبديل مي‌نمايد. بسياري از تغييرات خسته‌كننده در اين تبديل آسان‌تر گرديده است ضمن اين كه كامل نيست.

اگر شما به يك زبان جديد مهاجرت مي‌كنيد، ليستي از تمامي اجزاي مورد استفاده خود را تهيه نماييد (به خصوص اجزاي واسط يا third-party) و آنها را به همتايان خود در PHP (يا زبان ديگر) مربوط سازيد. به احتمال بسيار زياد شما در خواهيد يافت كه تعدادي از اجزايي كه شما ناچار به خريد آنها براي راهكار ASP خود بوديد به صورت مجاني براي PHP (شامل ايميل، اداره تصاوير، و توليد PDF) در اختيارتان قرار دارند. به علاوه، frameworkهاي كاملي براي مواردي از قبيل برنامه‌هاي كاربردي shopping cart وجود دارد. شركت من از يك ابزار كدباز عالي تحت عنوان OS Commerce براي نيازهاي تجارت الكترونيك‌مان استفاده مي‌كند. ايجاد اين ليست هدف دومي را نيز دنبال مي‌نمايد – شما مي‌توانيد بعدا از آن جهت كمك به تعيين گزينه‌هاي نصب براي Apache استفاده نماييد.

به خاطر داشته باشيد كه Apache مي‌تواند از زبان‌هاي متعددي همچون Perl، Python و جاوا (از طريق JSP) در كنار PHP بهره ببرد. زبان‌ها و مفاهيم توسعه جديد غالبا در دنياي كدباز معرفي مي‌گردند. به عنوان يك نمونه خوب از اين دست مي‌توان به Ruby on Rails اشاره كرد (www.rubyonrails.org).

 

سخت‌افزار خود را برگزينيد

من در اينجا فضاي كافي براي پوشش دادن تمامي فاكتورهاي دخيل در تصميم‌گيري جهت گزينش سخت‌افزار براي استفاده به عنوان يك وب‌سرور را در اختيار ندارم. در هر صورت يك سوال مهم وجود دارد كه شما بايد از خود بپرسيد. آيا شما قصد داريد وب‌سرور موجود خود را از IIS به Apache تغيير دهيد يا در نظر داريد يك مهاجرت توام با يك به روز رساني سخت‌افزار صورت دهيد؟ اگر هدف شما تغيير ماشين موجودتان است، بدانيد كه پس از مهاجرت قادر به بازگشت به حالت قبل نيستيد، البته، مگر آن كه كارهاي مورد نياز جهت يك فرايند بي‌اثر سازي را انجام دهيد. در هر حالت من موكدا توصيه مي‌كنم كه پيش از آغاز يك مهاجرت يك كپي از دايركتوري‌هاي وب خود تهيه نماييد و از پايگاه‌هاي داده مورد استفاده خود پشتيبان‌گيري كنيد. در نهايت، هر سخت‌افزار جديدي كه مي‌خريد بايد در ليست  پشتيباني توزيع لينوكس مورد استفاده شما قرار داشته باشد.

 

انجام مهاجرت به صورت دستي

پس از فرايند طرح‌ريزي، شش مرحله مهاجرت را بايد دنبال نماييد. خب كار را شروع مي‌كنيم.

 

مرحله 1: نصب و تنظيم سيستم لينوكس مورد نظر

نخستين مرحله‌ عبارت است از نصب نسخه‌اي از لينوكس كه شما خواستار استفاده از آن هستيد. 10 توزيع مهم وجود دارد كه توسط Distro Watch ليست گرديده‌اند و علاوه بر موارد مذكور صدها توزيع ديگر نيز وجود دارد كه مي‌توانيد بر اساس معيارهاي خود يكي از آنها را برگزينيد. من انتخاب يك توزيع با پشتيباني خوب نصب براي Apache و تعداد زيادي از ماژول‌هاي Apache را توصيه مي‌كنم. براي افرادي كه با نصب Apache آشنا نيستند، Apache يك سري كاركردها را به شكل ماژول‌هاي الحاقي (براي مثال، پشتيباني PHP به عنوان يك مورد الحاقي فراهم گرديده است) فراهم مي‌آورد. من از لينوكس SuSE ناول به عنوان سيستم‌عامل آزمايشي اين مقاله استفاده مي‌كنم، اما همه توزيع‌هاي مهم يك روش نسبتا آسان براي نصب Apache فراهم مي‌سازند.

 

مرحله 2: نصب و تنظيم Apache

نصب Apache اغلب اوقات به حدي ساده است كه احتمالا شما را به تعجب وا مي‌دارد كه اصلا من چرا آن را مطرح مي‌كنم. در اين مورد شما بايد چند مساله را مد نظر قرار دهيد. ابتدا، انتخاب نسخه Apache است - Apache 1.3 يا Apache 2. ماژول‌هاي Apache براي كار با يك نسخه خاص از Apache نوشته شده‌اند. اغلب ماژول‌هاي معمول (تعداد آنها مدام در حال افزايش است)  با Apache 2 كار مي‌كنند. من Apache 2 را توصيه مي‌كنم، مگر آن كه يك سري دلايل خاص براي استفاده از Apache 1.3 داشته باشيد. با Yast، كه ابزار نصب SuSEse است، تمامي بسته Apache 2 به همراه يك مجموعه از ماژول‌هاي پيش‌فرض تحت عنوان ” Simple Web Server with Apache 2“ شناخته مي‌شوند.

در هنگام نصب Apache 2، شما بايد تصميم بگيريد كه از كدام روش براي چندپردازشي (MPM) استفاده كنيد. اين نكته از اهميت بالايي برخوردار است چرا كه تعدادي از ماژول‌ها وجود دارند كه فقط با يكي از مدل‌هاي پردازش در Apache 2 اجرا مي‌شوند. گزينه‌هاي شما prefork و worker مي‌باشند. prefork از مدل پردازش Apache 1.3 استفاده مي‌كند در حالي كه هر سرور در پروسه خود اجرا مي‌گردد. worker يك مدل كارآمدتر مبتني بر رشته (thread) است كه با برخي از ماژول‌هاي Apache ناسازگار مي‌باشد (برخي نسخه‌هاي mod perl مثال خوبي محسوب مي‌گردند). براي ثبات و پشتيباني حداكثري ماژول، من استفاده از مدل پردازش prefork را پيشنهاد مي‌كنم.

 

مرحله 3: نصب و تنظيم زبان‌هاي پشتيباني و ابزارهاي نصب ماژول‌هاي Apache

فرض مي‌كنيم شما پيشنهاد من را پذيرفتيد و اقدام به نگارش سندي نموديد كه مجموعه ماژول‌هايي را كه شما بر روي IIS مورد استفاده قرار مي‌دهيد به مجموعه ماژول‌هايي كه شما نيازمند پشتيباني آنها بر روي لينوكس هستيد نگاشت مي‌كند. بسته به زباني كه برگزيده‌ايد شما نيازمند نصب ماژول مناسب براي پشتيباني PHP (apache2-mod-php4 Python (apache2-mod-python Perl (apache2-mod-perl)، و مواردي از اين قبيل خواهيد بود.

برخي از ماژول‌هاي محبوب ديگري كه شما ممكن است خواهان نصب آنها باشيد عبارتند از:

mod_mono : پشتيباني توسعه ASP .NET

mod_dav : پشتيباني WebDAV (به سايت www.webdav.org مراجعه نماييد)

mod_auth_mysql : اين ماژول به شما امكان استفاده از يك پايگاه‌داده MySQL را براي اعتبارسنجي (authentication) وب‌‌سايت مي‌دهد.

mod_auth-ldap : اين ماژول به شما امكان استفاده از LDAP براي اعتبارسنجي وب‌سايت را مي‌دهد.

 

نصب جاوا

بسته به پشتيباني خاص جاوا كه شما خواهان آن هستيد، گزينه‌هاي مختلفي براي نصب جاوا وجود دارد. پشتيباني Servlet مي‌تواند توسط پروژه بسيار خوب Apache Tomcat فراهم گردد. براي كسب اطلاعات بيشتر در مورد پشتيباني Apache مرتبط با جاوا پروژه Jakarta در آدرس http://jakarta.apache.org را مورد بررسي قرار دهيد.

 

نصب ماژول‌هاي اضافي

بسته به زبان منتخب شما ممكن است به نصب ماژول‌هاي غير استاندارد براي زبان‌تان نياز داشته باشيد. براي PHP، تقريبا همه موارد مورد نياز شما به صورت دروني از پيش در اختيار شما قرار داده شده است. كاركرد‌هاي خاصي از قبيل اداره XML DOM ممكن است نيازمند نصب ماژول‌هاي اضافي به عنوان بخشي از PHP باشند. احتمالا شما به بازسازي خود PHP به منظور فراهم آوردن امكان پشتيباني مجموعه كامل ماژول‌هاي مورد نيازتان نياز خواهيد داشت. نگاشتي را كه در طي مرحله طرح‌ريزي ايجاد كرده‌ايد براي تعيين وجود اين نياز مورد بررسي قرار دهيد.

 

مرحله 4: كپي كردن اسناد وب

يكي ديگر از مراحل بارزتر در مهاجرت از IIS به Apache انتقال اسناد وب به سرور جديدتان است. به صورت پيش‌فرض، IIS اسناد خود را در c:\inetpub\wwwroot ذخيره مي‌نمايد. Apache (بر روي SuSE) از /srv/www/htdocs براي سرور اصلي و زيرفولدرهاي /srv/www/vhosts/ براي ميزبانان مجازي استفاده مي‌كند.

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

 

sudo chmod 777 /srv/www/htdocs
sudo mkdir /srv/www/vhosts
sudo chmod 777 /srv/www/vhosts

 

شما پس از خط اول ناچاريد رمز عبور ريشه سرور را وارد نماييد. از ابزارهاي ويژوال موجود در توزيع لينوكس خود براي كپي نمودن فايل‌ها استفاده كنيد. براي مثال، در KDE شما مي‌توانيد از Konqueror براي مرور سرور ويندوز و كپي كردن فايل‌ها به درون ريشه سند Apache (/srv/www/htdocs يا زيرفولدرهاي /srv/www/hosts/) استفاده كنيد. هنگامي كه شما در حال مرور سرور ويندوز هستيد، آن دسته از فولدرهاي IIS كه به اشتراك گذارده‌ايد و خواهان انتقال‌شان هستيد را انتخاب كنيد، و به /srv/www/htdocs/ (شما مي‌توانيد اين مسير را در يك پنجره دوم گشوده شده از Konqueror تايپ كنيد) درگ نماييد. در منويي كه ظاهر مي‌گردد، گزينه Copy here را برگزينيد.

توجه: بسته به تعداد فايل‌هاي كپي شده، اين فرايند مي‌تواند زماني را صرف نمايد. هنگامي كه اين مرحله را تكميل نموديد، شما بايد حق دسترسي‌هاي فايل را مجددا تنظيم نماييد (با استفاده از sudo chmod 755 /srv/www/htdocs) تا از تغيير اين فايل‌ها توسط ديگران جلوگيري به عمل آوريد.

 

مرحله 5: تنظيم امنيت فايل‌سيستم و وب‌سرور

مدل‌هاي امنيت مورد استفاده براي IIS و Apache بسيار متفاوت هستند. IIS به شكل تنگاتنگي با ويندوز يكپارچه گرديده و دقيقا همان حقوق اعتبارسنجي كه خود ويندوز استفاده مي‌كند را به كار مي‌برد. در عين حالي كه اين امر به مديريت متمركز ساده‌تر كاربر منتهي مي‌گردد، اما يك سري مشكلات امنيتي نيز در پي دارد.

براي نمونه، اگر يك كاربر براي دسترسي وب ايجاد شده باشد، آن كاربر به صورت پيش‌فرض حق ورود محلي، اتصال در شبكه ويندوز، و شايد حتي اتصال مستقيم به يك پايگاه‌داده SQL Server را نيز داشته باشد. اين حقوق بايد از كاربر مزبور سلب گردد. از سوي ديگر، Apache به صورت پيش‌فرض نام‌هاي كاربري، رمزهاي عبور و حق دسترسي‌هاي متعلق به خود را نگهداري مي‌نمايد. يك كاربر ايجاد شده براي Apache تنها قادر به اتصال از طريق Apache خواهد بود. به خاطر داشته باشيد كه امكان واداشتن ويندوز به ايجاد كاربران جديد بدون حق دسترسي‌هاي زياد نيز وجود دارد، و همچنين امكان تنظيم Apache براي اداره تمامي كاربران از يك مخزن داده مركزي كاربران وجود دارد.

تفاوت عمده ديگر در حق دسترسي‌هاي فايل در نحوه دسترسي به يك فايل از سوي يك كاربر وارد شده به سيستم است. هنگامي كه يك كاربر به IIS وارد مي‌شود، IIS از حقوق دسترسي كاربر براي دستيابي به هر فايلي استفاده مي‌كند. بنابراين اگر كاربري به نام Joe نيازمند دسترسي براي آپلود نمودن يك دايركتوري باشد، آنگاه بايد حق نوشتن براي اين دايركتوري به Joe اعطا شود. شما همچنين نيازمند فراهم آوردن دسترسي نوشتن براي اين دايركتوري در كنسول IIS خواهيد بود – قبل از آن كه هر كاربري بتواند عمل آپلود را انجام دهد.

از سوي ديگر Apache همواره تحت حقوق كاربري كه تنظيم شده اجرا خواهد شد (در حالت عادي nobody، اما در برخي موارد /www/ يا /apache/). براي اعطاي دسترسي به Joe جهت آپلود به همان دايركتوري، شما بايد حق نوشتن را براي nobody بر روي همان دايركتوري تنظيم كنيد. در هر صورت، شما با انجام اين كار دسترسي كامل براي نوشتن را به دايركتوري Apache مي‌دهيد.

اجتناب از اين وضعيت اندكي پيچيده است. بگذاريد ابتدا ببينيم پيكربندي بايد به چه نحو باشد و سپس اين پيكربندي را به اجزاي كوچك‌تر تقسيم كنيم. مثال زير مي‌تواند در هر دايركتيو فايل، دايركتوري يا ميزبان مجازي مورد استفاده قرار گيرد:

 

AuthType Basic
AuthName "Password Area"
AuthUserFile /etc/httpd/basic.passwd
AuthGroupFile /etc/httpd/basic.group
AuthAuthoritative On
<Limit GET POST PROPFIND OPTIONS CONNECT>
Require valid-user
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Require user joe
Require group uploaders
</Limit>

 دايركتيوهاي AuthType و AuthName اعتبارسنجي اساسي را فعال مي‌سازند. به خاطر داشته باشيد كه Apache ساير روش‌هاي اعتبارسنجي را نيز پشتيباني مي‌كند (شامل NTLM با استفاده از يك ماژول الحاقي).

دايركتيو Require به Apache مي‌گويد كه كدام كاربران يا گروه‌ها نيازمند دسترسي به اين صفحه هستند. دستورات Require به يكديگر مرتبط هستند، بدان معني كه خطوط

 

Require user joe
Require group uploaders

 

كاربر joe يا هر كاربر حاضر در گروه uploaders را تحت پوشش قرار خواهد داد. عبارت /valid-user/ كليدواژه‌اي است كه به هر كاربري مفهوم عام مي‌بخشد.

دستور Limit بخش پيچيده‌ي كار ما است اما به ما امكان داشتن نيازهاي مختلف براي انواع متفاوت دسترسي را مي‌دهد. اگر مثال فوق را در نظر بگيريم، در اين حالت ما دو گروه مختلف خواهيم داشت: يكي براي دانلود و يكي براي آپلود.

منشا اين اسامي كجاست؟ دايركتيو Limit بر روي متدهاي HTTP كار مي‌كند و از همين رو ما اين دايركتيوها را به دو نوع مختلف تقسيم‌بندي مي‌كنيم. به ياد داشته باشيد كه بر خلاف IIS، هيچ راهي جهت محدود ساختن يك كاربر براي اجراي يك برنامه وجود ندارد.

اگر شما مجددا نگاهي به پيكربندي بياندازيد، به يك مورد جذاب بر مي‌خوريد. براي تنظيم كردن حق دسترسي‌ها در IIS، ‌شما دسترسي سطح عمومي را از طريق خود IIS، و دسترسي سطح كاربر را بر روي فايل‌ها/دايركتوري‌هاي مورد نظرتان تنظيم مي‌كنيد. در Apache، شما دسترسي سطح عمومي را بر روي فايل يا دايركتوري تنظيم مي‌كنيد، و در مورد دسترسي سطح كاربر اين كار را از طريق فايل پيكربندي Apache انجام مي‌دهيد.

 

مرحله 6: تنظيم ميزبان‌هاي مجازي، دايركتوري‌هاي مجازي، و ساير تنظيمات

بياييد نگاهي به تنظيم يك ميزبان مجازي با تعدادي از دايركتوري‌هاي مجازي با هدف رسيدن به ديدگاهي براي ويرايش دستي فايل‌هاي پيكربندي بياندازيم. براي ذخيره نمودن تغييرات در فايل‌ پيكربندي Apache، شما بايد اين فايل را تحت ريشه ويرايش نماييد. (به دلايل امنيتي، من ورود به درون سرورتان به عنوان ريشه را توصيه نمي‌كنم مگر آن كه نيازمند ايجاد تغييرات باشيد، و البته استفاده آگاهانه از sudo گزينه مناسب‌تري خواهد بود.)

براي ويرايش دستي httpd.conf، يك ويرايشگر لينوكس را تحت ريشه اجرا نماييد و /etc/apache2/httpd.conf را بگشاييد. براي مثال در KDE شما Konsole را اجرا كرده و اين عبارت را تايپ كنيد: sudo kwrite /etc/apache2/httpd.conf . به ياد داشته باشيد برخي توزيع‌ها داراي يك نسخه تغيير يافته از اين فايل هستند كه فايل را به چندين زير‌فايل تقسيم مي‌كند. اين امر باعث تسهيل در ارتقا از يك نسخه از يك توزيع خاص لينوكس به ديگري مي‌گردد. براي مثال، اگر شما دستورات فوق را دنبال نماييد، فايل httpd.conf متعلق به SLES 9 كه تا حد زيادي تغيير يافته است نمايش داده خواهد شد. فايل اصلي پيكربندي SLES 9 حاوي توضيحات مفصل در مورد محل هر تنظيم است.

بر روي SLES 9 شما مشاهده خواهيد كرد كه براي افزودن يك ميزبان مجازي جديد، تنها نيازمند افزودن يك فايل پيكربندي براي آن در دايركتوري vhosts.d هستيد. براي انجام اين كار، يك كپي از قالب نمونه با يك دستور شبيه اين ايجاد نماييد:

 

sudo cp /etc/apache2/vhosts.d/vhost.template
/etc/apache2/vhosts.d/migratedvhost.conf

 

هنگامي كه يك كپي ايجاد كرديد، آن را با ويرايشگر مورد علاقه‌ي خود باز نماييد (تحت ريشه). در قسمت بالاي آن عبارت ”VirtualHost *:80“ را مشاهده خواهيد نمود، كه مفهوم آن اينست كه اين ميزبان به هر اتصال ورودي بر روي پورت 80 گوش فرا خواهد داد. چند خط پايين‌تر مهم‌ترين دايركتيو قرار دارد يعني ServerName. آن به Apache مي‌گويد كه كدام VirtualHost در هنگام ايجاد يك اتصال مورد استفاده قرار گيرد. اين را به نخستين مورد از ميزبان‌هاي مجازي كه شما خواهان مهاجرت به آنها هستيد تغيير دهيد (بنابراين آن چيزي شبيه اين را بيان مي‌دارد: ServerName www.mysite.com). دايركتيو DocumentRoot را بيابيد. آن تعيين مي‌نمايد كه كدام دايركتوري در خدمت اين ميزبان مجازي قرار داشته باشد. اين را به مكاني كه فايل‌ها را در آنجا كپي نموده‌ايد تغيير دهيد (جايي در //srv/www/vhosts// ، براي مثال، /DocumentRoot /srv/www/vhosts/www.mysite.com/)

در عمل، شما مي‌توانيد يك دايركتيو اضافي DirectoryIndex را بيافزاييد – يكي كه در قالب (template) وجود ندارد. هر دايركتيو مي‌تواند تنها در تعداد محدودي از مكان‌ها در فايل پيكربندي قرار داده شود. در اين حالت، DirectoryIndex مي‌تواند درون VirtualHost يا درون هر مدخل دايركتوري قرار گيرد.

براي تغيير سندي كه در هنگام بارگذاري اين ميزبان مجازي از سوي Apache لود مي‌گردد، يك خط جديد در زير دايركتيو DocumentRoot بيافزاييد با اين مضمون: DirectoryIndex default.htm يا هر چه كه بر روي ماشين IIS شما سند پيش‌فرض بود.

اگر شما از چندين سند پيش‌فرض در دايركتوري‌هاي مختلف استفاده كرده‌ايد، مي‌توانيد به آنها ترتيب بدهيد، مثلا: DirectoryIndex defaut.htm default.asp index.php . ساير نمونه‌هاي dummy-host.example.com را با مسيرهاي واقعي از ميزبان مهاجرت كرده‌تان در سراسر قالب جايگزين نماييد.

سرانجام، شما بايد پيكربندي را با راهبري ماشين لينوكس در جهت بارگذاري از روي سرور جديد به جاي ماشين IIS مورد آزمايش قرار دهيد. شما مي‌توانيد اين كار را با ويرايش فايل‌ ميزبان‌ها (sudo /etc/hosts) و افزودن يك خط در انتهاي اين فايل با مضمون 127.0.0.1 www.mysite.com صورت دهيد. هنگامي كه اين كار انجام پذيرفت، هر زمان كه شما www.myserver.com را ملاقات كنيد، شما به ماشين محلي خود متصل خواهيد شد. قبل از اتصال، شما همچنين نيازمند راه‌اندازي مجدد Apache با اجراي sudo /usr/sbin/apache2ctl restart خواهيد بود (اين دستور ممكن است بسته به توزيع لينوكس شما اندكي متفاوت باشد).

همانند نسخه‌هاي قديمي‌تر IIS، Apache بايد براي اعمال شدن هر تغيير راه‌اندازي مجدد گردد چرا كه فايل پيكربندي بايستي تجزيه (pars) شود، كاري كه انجام آن براي هر درخواست بسيار وقت‌گير است؛ IIS تنظيمات را مستقيما در حافظه تغيير مي‌دهد.

يك مرورگر وب را اجرا كرده و www.mysite.com (يا هر چه كه ميزبان مجازي مهاجرت كرده شما است) را ملاقات نماييد. حالا شما بايد سند پيش‌فرض خود را از ميزبان مجازي خود ببينيد (البته اگر ASP، PHP يا مواردي از اين قبيل باشد اين احتمال وجود دارد كه به درستي pars نشود). با انجام اين عمل، كار راه‌اندازي Apache در يك وضعيت اساسي و اوليه تكميل مي‌گردد.

هنوز كارهاي بسياري براي تنظيم از طريق فايل‌هاي پيكربندي Apache باقي مانده است. بسته به نيازهاي شما، شايد شما خواهان راه‌اندازي فايل‌ها يا دايركتوري‌هاي مجازي، تنظيم انقضاهاي زماني، تنظيمات اتصال tweak، يا تغيير صفحات خطايي كه كاربران در هنگام بروز خطا مشاهده مي‌كنند باشيد. ممكن است شما خواستار برپايي PHP، mod_perl، JSP، يا Sun Java System Active Server Pages 4.0 باشيد. براي كسب اطلاعات در مورد تنظيم كردن تنظيماتي كه به همراه Apache ارائه مي‌گردد، به Apache Documentation Project در http://httpd.apache.org/docs-project/ مراجعه كنيد. اطلاعات در مورد نحوه راه‌اندازي زبان‌ها يا محيط‌هاي زمان‌اجراي مختلف بايد در همان مكاني كه آن سيستم‌ها را تهيه نموده‌ايد قابل دستيابي باشد.

 

ابزارهايي براي تسهيل مهاجرت IIS به Apache

خوشبختانه، در حال حاضر ابزارهايي براي تسهيل مهاجرت IIS به Apache در دسترس ما قرار دارد. من قبلا محصولاتي را معرفي كردم كه به شما امكان ميزباني ASP بر روي پلاتفرم‌هاي Apache را مي‌دهند: Sun Java Active Server Pages و asp2php. همچنين بد نيست يادي از دو نرم‌افزار تجاري كه روند مهاجرت از Microsoft IIS به Apache بر روي لينوكس را خودكار مي‌نمايند بكنيم: Progression Web محصول Versora (www.versora.com/products) و LSP محصول Das Technology (www.das.com.tw). چنين راهكارهاي نرم‌افزاري خودكاري نفر-ساعت مورد نياز براي مهاجرت يك وب‌سرور در سازمان شما را كاهش مي‌دهد.

به طور خلاصه، مهاجرت از Microsoft IIS به Apache بر روي لينوكس نگراني‌هاي خود را دارد. همانند بسياري از تغييرات، آموزش خود، طرح‌ريزي مهاجرت، و گزينش ابزارهاي مناسب كليد يك مهاجرت موفقيت‌آميز محسوب مي‌گردند. در نهايت، مزاياي يك حركت قوي‌ترين محرك‌هاي آن به حساب مي‌آيند: هزينه كاهش يافته، ثبات و امنيت.

 

Copyright 2005 IDG News Service.All right reserved.
Copyright 2005, PC World Iran, All rights reserved.