ابزار و نرم افزارها : چگونه یک سرور تست محلی راهاندازی کنیم؟
این مقاله نحوه راهاندازی یک سرور تست محلی ساده روی دستگاه شما و اصول اولیه استفاده از آن را توضیح میدهد.
فایلهای محلی در مقابل فایلهای راه دور
در بیشتر بخشهای آموزشی، به شما میگوییم که مثالهای خود را مستقیماً در مرورگر باز کنید - این کار را میتوان با دوبار کلیک کردن روی فایل HTML، کشیدن و رها کردن آن در پنجره مرورگر، یا انتخاب و رفتن به فایل HTML انجام داد. روشهای زیادی برای دستیابی به این هدف وجود دارد.
اگر مسیر آدرس وب با شروع شود و به دنبال آن مسیر فایل روی هارد دیسک محلی شما قرار گیرد، از یک فایل محلی استفاده میشود. در مقابل، اگر یکی از مثالهای ما که در GitHub میزبانی شده است (یا مثالی روی یک سرور راه دور دیگر) را مشاهده کنید، آدرس وب با یا شروع میشود تا نشان دهد که فایل از طریق HTTP دریافت شده است.
مشکل در آزمایش فایلهای محلی
برخی از مثالها اگر آنها را به عنوان فایلهای محلی باز کنید، اجرا نمیشوند. این میتواند به دلایل مختلفی باشد که محتملترین آنها عبارتند از:
آنها درخواستهای ناهمزمان دارند. برخی از مرورگرها (از جمله کروم) اگر فقط مثال را از یک فایل محلی اجرا کنید، درخواستهای ناهمزمان را اجرا نمیکنند (به بخش یادگیری: ایجاد درخواستهای شبکه با جاوا اسکریپت مراجعه کنید). این به دلیل محدودیتهای امنیتی است (برای اطلاعات بیشتر در مورد امنیت وب، امنیت وبسایت را بخوانید).
آنها دارای یک زبان سمت سرور هستند. زبانهای سمت سرور (مانند PHP یا Python) برای تفسیر کد و ارائه نتایج به یک سرور ویژه نیاز دارند.
آنها شامل فایلهای دیگری نیز میشوند. مرورگرها معمولاً درخواستهای بارگیری منابع با استفاده از طرح file:// را به عنوان درخواستهای cross-origin در نظر میگیرند. بنابراین اگر یک فایل محلی را که شامل فایلهای محلی دیگری است بارگیری کنید، ممکن است باعث خطای CORS شود.
اجرای یک سرور HTTP محلی ساده
برای حل مشکل درخواستهای ناهمگام، باید چنین مثالهایی را با اجرای آنها از طریق یک وب سرور محلی آزمایش کنیم.
استفاده از یک افزونه در ویرایشگر کد شما
اگر فقط به HTML، CSS و جاوا اسکریپت نیاز دارید و به زبان سمت سرور نیازی ندارید، سادهترین راه میتواند بررسی افزونهها در ویرایشگر کد شما باشد. این افزونهها علاوه بر خودکارسازی نصب و راهاندازی برای سرور HTTP محلی شما، به خوبی با ویرایشگرهای کد شما نیز ادغام میشوند. آزمایش فایلهای محلی در یک سرور HTTP ممکن است با یک کلیک انجام شود.
برای VS Code، افزونههای رایگان زیر را امتحان کنید:
پیشنمایش زنده
پیشنمایش در وب سرور
ماژول http-server نود.جیاس روشی آسان برای میزبانی فایلهای HTML در هر دایرکتوری است.
برای استفاده از این ماژول:
دستورات زیر را اجرا کنید تا بررسی کنید که آیا نود.جیاس از قبل نصب شده است یا خیر:
اگر Node.js نصب نشده است، باید آن را نصب کنید. دستورالعملهای دانلود را در مستندات Node.js دنبال کنید، سپس دستورات بالا را دوباره اجرا کنید تا بررسی کنید که آیا نصب موفقیتآمیز بوده است یا خیر.
فرض کنید دایرکتوری است. دستور زیر را برای شروع سرور اجرا کنید:
این فایل، میزبان تمام فایلهای موجود در دایرکتوری در است. گزینه صفحه index.html را در مرورگر وب باز میکند. اگر index.html وجود نداشته باشد، دایرکتوری به جای آن نمایش داده میشود.
راه دیگر برای دستیابی به این هدف، استفاده از ماژول پایتون است.
نسخههای قدیمیتر پایتون (تا نسخه ۲.۷) ماژول مشابهی به نام SimpleHTTPServer ارائه میدادند. پایتون ۲ دیگر پشتیبانی نمیشود، بنابراین توصیه میکنیم از پایتون ۳ استفاده کنید.
برای انجام این کار:
دستور زیر را اجرا کنید تا بررسی کنید که آیا پایتون از قبل نصب شده است یا خیر:
اگر پایتون نصب نشده است، باید آن را نصب کنید. دستورالعملهای دانلود را در مستندات پایتون دنبال کنید، سپس دستورات بالا را دوباره اجرا کنید تا بررسی کنید که آیا نصب موفقیتآمیز بوده است یا خیر.
اگر پایتون نصب شده است، با استفاده از دستور cd به دایرکتوری که حاوی کد وبسایتی است که میخواهید آزمایش کنید، بروید.
دستور زیر را برای راهاندازی سرور در آن دایرکتوری وارد کنید:
به طور پیشفرض، این دستور محتویات دایرکتوری را روی یک وب سرور محلی، روی پورت ۸۰۰۰ اجرا میکند. میتوانید با رفتن به آدرس اینترنتی در مرورگر وب خود به این سرور بروید. در اینجا محتویات دایرکتوری را مشاهده خواهید کرد - روی فایل HTML که میخواهید اجرا کنید کلیک کنید.
اگر از قبل چیزی روی پورت ۸۰۰۰ در حال اجرا دارید، میتوانید با اجرای دستور server و به دنبال آن یک شماره پورت جایگزین، مثلاً ، پورت دیگری را انتخاب کنید. سپس میتوانید به محتوای خود در دسترسی پیدا کنید.
اجرای زبانهای سمت سرور به صورت محلی
بهترین رویکرد برای کار با زبانهای سمت سرور، مانند پایتون، پیاچپی یا جاوااسکریپت، به زبان سمت سروری که استفاده میکنید و اینکه آیا با یک چارچوب وب یا کد «مستقل» کار میکنید، بستگی دارد.
اگر با یک چارچوب وب کار میکنید، معمولاً آن چارچوب سرور توسعه خود را ارائه میدهد. به عنوان مثال، زبانها/چارچوبهای زیر با یک سرور توسعه ارائه میشوند:
چارچوبهای وب پایتون، مانند جنگو، فلاسک و پیرامید.
چارچوبهای نود/جاوااسکریپت مانند اکسپرس وب فریمورک (Node.js/JavaScript)
پیاچپی سرور توسعه داخلی خود را دارد:
اگر مستقیماً با یک چارچوب سمت سرور یا یک زبان برنامهنویسی که یک سرور توسعه ارائه میدهد کار نمیکنید، ماژول http.server پایتون همچنین میتواند برای آزمایش کد سمت سرور نوشته شده به زبانهایی مانند پایتون، PHP، جاوا اسکریپت و غیره، با فراخوانی اسکریپتهای سمت سرور Common Gateway Interface (CGI) استفاده شود. برای مثالهایی از نحوه استفاده از این ویژگی، به بخش «اجرای یک اسکریپت از راه دور از طریق رابط Common Gateway (CGI)» در «نحوه راهاندازی یک سرور HTTP در یک خط کد پایتون» در realpython.com مراجعه کنید.