چطور یه سایت بزنیم؟

یه نفر اومد ازم پرسید که چطوری میشه سایت زد. منم بهش گفتم که راه زیاد داره و ایشون هم خواست که توضیح بیشتر بدم. منم دیدم بهتره اینجا بنویسم که هم سوال ایشون رو جواب بدم، هم شاید به درد بقیه بخوره..همین اول کار و قبل از شروع اصل مطلب، بگم این مطلبی که دارم مینویسم رو نمیخوام خیلی تخصصی یا مو به مو بنویسم که دقیقاً چطوری فلان کار رو کنین که بتونین یه سایت درست کنین. اینجا میخوام یه کلّیتی بگم و هر جا که نیاز به توضیحات بیشتر داشتید، به احتمال زیاد میتونید با یه جستجو تو اینترنت، پیدا کنین که چی به چیه. چونکه همینی که میخوام بنویسم، فکر کنم زیاد میشه، چه برسه به اینکه بخوام جزئیات هم بهش اضافه کنم..اول از همه میخوام بگم که کلاً دو نوع سایت ساختن داریم که یکیش با برنامه‌نویسیه و یکیش هم استفاده از کدها و برنامه‌هاییه که از قبل نوشته شده. اولش هم میخوام بخش برنامه‌نویسیش رو توضیح بدم که بریم تو عمق مطلب و آخرای توضیح، آسون‌تر بشه.*- حالا میخوام از زبان‌هایی بگم که باهاشون یه صفحه‌ی وب رو میسازن:احتمالاً تا حالا فایل‌هایی با پسوند "html" رو دیدین یا آخر آدرس سایت‌ها این چهار حرف رو دیدین. توی فایل‌های html با زبان HTML میان و چیدمان محتویات یه صفحه رو مشخص میکنن. مثلاً چی وسط صفحه باشه. کجا جدول بذارن. عکس کجا باشه و... . توی همین فایل html میان و از یه کدهایی استفاده میکنن که اون چیزایی رو که قبلاً چیده بودن رو قشنگ کنن. مثلاً گوشه‌های یه دکمه یا عکس رو گرد کنن که به این کار شکل‌دهی یا استایل‌دهی گفته میشه و به زبانی که باهاش این کار رو میکنن "CSS" میگن. بعدش هم میان برای حرکت دادن بعضی بخش‌ها از یه زبان دیگه استفاده میکنن. مثلاً وقتی موس میره رو یه گزینه و یه منو از زیرش ظاهر میشه و چیزهای مشابه که حرکت میکنن رو با زبان JavaScript درست میکنن.(نکته: میشه از این زبان‌ها، هم توی یه فایل html استفاده کرد و یا تو فایل‌های جدا جدا ریختشون و بعدش به هم وصلشون کرد. ).تا اینجای کار، نیازی به سرور و هاست و از این چیزا نیست و میتونین فایلی که ساختین رو با مرورگر باز کنید و حاصل کار رو ببینین و اگه هم یه سرور گیر بیارین و این فایل‌ها رو بذارین توی یه هاست، میتونین به عنوان یه سایت ازشون استفاده کنین، ولی به این نوع سایت‌ها میگن سایت "ایستا" یا "استاتیک" که یعنی محتوای هر صفحه ثابته و برای تغییرش، آدم باید دستی بره و فایل رو باز کنه و ویرایش کنه. نسل این نوع سایت‌ها، خیلی سال پیش تقریباً منقرض شده و الآن دیگه خیلی کم مورد استفاده قرار میگیرن..حالا فرض میکنیم که شما یه فایل html با اضافات css و javascript نوشتین و میخوایم یه سری امکانات بهش اضافه کنیم. مثلاً کاربر بتونه توش ثبت‌نام کنه یا مطلب جدید بنویسه یا یه کالایی رو توش بفروشین و از این کارها. نمیگم انجام این کار با سایت ایستا غیر ممکنه،‌ ولی به قدری سخته که ترجیه دادن یه زبان دیگه رو هم به این بازی اضافه کنن و اون رو فعلاً زبان PHP در نظر میگیریم..تا اینجای کار به این دقت کنین که زبان‌های قبلی، برای ساخت ظاهر بود و زبان php برای ساخت برنامه یا روش‌کار یا مغز سایته که بتونه در خیلی چیزا از جمله ظاهر سایت رو کنترل کنه و تغییر بده. در واقع دیگه بجای اینکه همه‌ی کدها رو توی فایل html بریزیم،‌ میریزیم توی یه فایل php که علاوه بر کدهای قبلی، کدهای php رو هم توی این فایل استفاده کرد.(نکته: میشه از این زبان‌ها، هم توی یه فایل php استفاده کرد و یا تو فایل‌های جدا جدا ریختشون و بعدش به هم وصلشون کرد.فایل‌های php رو دیگه نمیشه فقط با مرورگر باز کرد و برای اجراش، حداقل نیاز به یه سرور محلیه که پایین‌تر گفتیم چیه. ).بعد از این حرف‌ها هم نیاز به یه جاییه که اطلاعات(مثلاً: نام‌کاربری یا مطالب) رو توش ذخیره کنید که معمولاً از "پایگاه داده" استفاده میکنن، که خودش انواع و اقسام داره و معروف‌ترینشون "MySQL" و "PostgreSQL" . هر چند، میشه با یه روش‌هایی، برای پروژه‌های کوچیک، از فایل هم برای ذخیره‌ی اطلاعات استفاده کرد.*- حالا میریم سراغ گفتن اینکه سرور و هاست چیه:سرور رو یه کامپیورتر دائماً روشن در نظر بگیرین که یه جایی قرار داره و به اینترنت وصله و برنامه‌ای که بهش دادین رو اجرا میکنه. فعلاً همین تعریف کلی رو از سرور بدونین کافیه. روی سرورها هم ممکنه ویندوز یا لینوکس که یه سیستم‌عامل غیر از ویندوزه نصب باشه که به علت قیمت و یه سری چیزای دیگه، ادامه‌ی کار رو با پیشفرض لینوکسی بودن سرور پیش میگیم. ولی بگم که لینوکسی بودن سرور هیچ ترسی نداره. چونکه اصلا شما تو این مراحل، با سیستم‌عامل سرور کار ندارین. شما فقط برنامه رو توی پنل مدیریتی سرورتون، یه جایی بارگذاری یا آپلود کنید و بعدش برنامه بصورت خودکار اجراش میکنه..کلمه‌ی هاست هم به معنی "میزبان" و در واقع همون سروره، ولی یه مقدار متفاوت. در واقع کسایی که نیاز به یه سرور کامل ندارن، میان از هاست استفاده میکنن. هاست به این صورته که میان هارد و قدرت پردازشی یه سرور رو تیکه‌تیکه میکنن و به هر کسی، یه مقداری از اون رو میدن. مشکل هاست اینه که کنترل کامل سرور و پیکربندیش دست ما نیست، ولی خوبیش اینه که خرجش خیلی کمتره از یه سرور کامله.(نکته: سرورها و هاست‌ها رو باید به صورت حق اشتراک یا اجاره تهیه کنید و مدت زمانش میتونه، ماهانه یا سالانه باشه و اینطور نیست که یه بار بخرینشون و برای همیشه ازشون استفاده کنین. ).اگه فعلاً فقط میخواین برای تمرین سایت بنویسین، اصلاً نیازی به سرور گرفتن ندارین و میتونین با برنامه‌های "سرور محلی" یا "local server" ، یه سرور رو توی کامپیوتر یا حتی موبایل خودتون شبیه‌سازی کنین و کدهایی که میتویسین رو باهاش اجرا کنید و نتیجه رو تو مرورگر ببینین.*- حالا میریم سراغ دامنه یا آدرس سایت:برای اینکه یه دامنه بگیرین، اول از همه لازمه که تو سایت "nic.ir" ثبت‌نام کنید. این کار واقعاً نیازه و بدون داشتن شناسه‌ای که این سایت بهتون میده، نمیتونین از هیچ‌کجا دامنه‌ی "ir." بخرین..دامنه‌ی "ir." نسبت به دامنه‌های دیگه که از ۲۰۰ تومن به بالا هستن، ارزونه و ۵ تا ۱۰ هزار تومنه.*- بریم یه هاست و دامنه بخریم:دیگه تا حالا فرض رو بر این گذاشتیم که یه مقداری برنامه‌نویسی وب بلدیم و میخوایم برای اولین بار، بریم یه هاست و دامنه بخریم.برای این کار، میریم و تو اینترنت دنبال سایت فروش هاست و دامنه میگردیم و کلی نتیجه برامون میاره که برای شروع کار، میشه از سایت‌هایی مثل talashnet.com یا cpanel.ir یا mandegarweb.com استفاده کرد که قیمت پایین‌تری نسبت به بقیه سایت‌ها دارن و خدمات قابل قبولی ارائه میدن..بعد از اینکه توی یکی از این سایت‌ها حساب ساختیم، میریم هاستمون رو انتخاب میکنیم و مراحل رو میریم جلو و دامنه رو هم انتخاب میکنیم و کدی که از سایت nic.ir گرفتیم رو میزنیم و میریم جلو.(نکته: بخش مدیریتی هاستی که میخواین بخرین، "سی‌پنل" یا "دایرکت‌ادمین" باشه، تو این سطح خیلی فرقی برای آدم نداره.پیشنهاد من برای شروع و یه سایت آزمایشی زدن، هاست از ۵۰ مگابایت تا نهایتاً ۵۰۰ مگابایته که مقدارش، به کاری که میخواین باهاش انجام بدین بستگی داره. مثلاً هر چی فایل بیشتر، پس نیاز به حجم بیشتر.درسته که انواع و اقسام هاست داریم برای کارهای مختلف مثل(هاست لینوکس، هاست دانلود، هاست ایمیل و... ) ولی دیگه بعضی‌جاها الکی از کلی اسم عجیب و غریب برای توصیف هاست‌هاشون استفاده میکنن. تو اینجور مواقع، ببینین که توی توضیحات هاست چی نوشتن و حتی در صورت لزوم، تو اینترنت بگردین دنبال نظرات کسایی که از اون هاست خریدن، شاید به نکته‌ی مفیدی برسین.در کل هاست ایرانی بگیرین بهتره. در دسترس‌تره و اگه به هر دلیلی، اینترنت خارجی قطع شد، میتونین بهش دسترسی داشته باشین.در ضمن، باید توی حسابتون توی سایت nic.ir یه بخشی که مربوط به کارگزاری‌های دامنه‌ها هست رو باید تغییر بدید که بتونید از هر سایتی، دامنه بخرید.میشه هاست و دامنه رو از جاهای مختلف هم خرید، ولی باید یه تنظیماتی رو تو حساب nic.ir تغییر داد و دامنه و هاست رو به هم وصل کرد. که به نظر من، تو شروع کار، سراغ اینجور کارها نرین بهتره. بعداً که اطلاعات و تجربتون رفت بالا، برین دنبال اینا و ببینین چجوریه. ).آخر سر هم هزینه‌ی سفارش رو میدید و تمام. بعد از پایان سفارش، از چند ساعت تا یکی دو روز طول میکشه که دامنه و هاست شما تو اینترنت شناخته بشه.*- اولین ورود به بخش مدیریت:میریم توی بخش مدیریت فایل هاستمون و توی پوشه‌ی "public_html" یه فایل php با اسم "index" با یه برنامه‌ی ساده و یا تو یدونه فایل html با اسم "index" یه مقدار متن رو برای امتحان بذارین و برین توی آدرس سایتتون و اگه خروجه همون کدها رو دیدید، یعنی کارها درست پیش رفته و میتونید سایتتون رو تو سرور بذارید.(نکته: ارائه دهنده‌های اینترنت، یه کاری میکنن به اسم "کش کردن صفحات وب" که یعنی برای اینکه ترافیک کمتری استفاده کنن، بعضی اوقات میان و یه کپی از صفحه رو برای یه مدتی یه جایی ذخیره میکنن و اگه شما اون صفحه رو تغییر بدین و دوباره بخواین برین تو همون آدرس، همون صفحه‌ی ذخیره شده رو بهتون نشون میدن. برای حل این مشکل، هم میشه به آخر آدرس صفحه، یه علامت سوال بذارین و بعدش هم، همینطوری یه چیزی اضافه کنید، مثلاً:( example.com?tqly ). )*- دیگه میرسیم به برنامه‌های سایت‌ساز:یه سری برنامه‌ها هست به اسم "سیستم مدیریت محتوا" یا "CMS" که اونا هم در واقع یه سری فایل php و html و css و... هستن که یه نفر یا یه گروه زحمت کشید و درستشون کردن و کار راه‌اندازی یه سایت رو خیلی برامون راحت کردن و فقط کافیه که فایل فشرده‌ی هر cms رو ریخت توی پوشه‌ی public_html توی هاست و فایل زیپ رو باز کرد و وارد آدرس سایت شد و ازشون استفاده کرد. از cmsهای معروف میشه به "وردپرس" ، "جوملا" و "دروپال" اشاره کرد. البته، برای کارهای دیگه هم، چیزای مختلفی ساختن. مثلا برای ساخت انجمن، میشه از "php bb" استفاده کرد یا برای فروشگاه ساختن، از "opencart" استفاده کرد و برای ساخت سایت‌های ساده، از "bludit" استفاده کرد که این سایت هم با بلودیت ساخته شده. در ضمن، اکثر این برنامه‌ها رایگانن، ولی ممکنه برای امکانات اضافی، مبلغی بخوان..خیلی از این برنامه‌ها، کلّی قالب و افزو‌نه‌ی آماده دارن که خیلی راحت، میشه یه سری امکانات رو بهشون اضافه کرد یا ظاهرشون رو تغییر داد. مثلاً میشه با استفاده از افزونه‌ها، با وردپرس یه فروشگاه اینترنتی درست کرد..برای این برنامه‌ها هم میشه کدنویسی کرد و چیزای جدید نوشت، ولی باید علاوه بر زبان برنامه‌نویسی که معمولا همون زبان‌هاییه که قبلاً گفتم، ریزه کاری‌های توسعه‌ی هر برنامه رو هم یاد گرفت.*- و دیگر چه:خیلی فناوری و سکو‌های نرم‌افزاری و زبان‌های دیگه‌ای هم داریم که میشه باهاش سایت ساخت. ولی اینی که بالا گفتم، متداول ترینشون بود. مثلاً میشه بجای php، از زبان‌های پایتون و روبی و جاوا یا حتی جاوااسکریپت برای نوشتن بخش منطق سایت استفاده کرد، ولی به نظر من برای شروع کار، همون php آسون ترینشونه. درسته که پایتون در کل قیافه‌ی راحت‌تری نسبت به php داره، ولی وقتی میخواین باهاش سایت بنویسین و تجربه‌ی قبلی ندارین، واقعاً php ساده‌تره و هاستش ارزون‌تره..این قضیه‌ی بالا برای بخش ظاهر سایت هم صادقه و روش‌ها و فناوری‌های دیگه‌ای هم برای طراحی ظاهر سایت وجود داره(مثلا: بوت‌استرپ و... )..میشه با دونستن html رفت سراغ یادگرفتن php و به مرور، css و javascript رو هم یاد گرفت..فرض کنید که یه برنامه‌ی آنلاین هم برای سایت ساختیم که میشه بجای سایت از اون استفاده کرد. میشه برای سمت سرور این برنامه، از همون کدهایی که برای سایت نوشتیم و تو هاست قرار دادیم استفاده کنیم و یه مقدار تغییرش بدیم تا اطلاعات رو به برنامه‌ی آنلاین هم بفرسته..ما حالت‌هایی داریم که طرف، تمرکزش رو میذاره روی طراحی ظاهر سایت و یا فقط برنامه‌ی سمت سرور و اون رو تخصصی یاد میگیره. البته آشنایی داشتن با کلیّت کار، خیلی خوبه.*- سخن پایانی:سعی کردم که تو این مطلب، اطلاعات نسبتاً زیادی رو بصورت فشرده بهتون بگم و احتمال میدم که گیج کننده به نظر بیاد و ایهاماتی توش باشه، به خصوص که هیچ عکس یا فیلمی هم نداره..خلاصه که همونطور که قبلاً هم تو یه مطلب گفتم، من هر چقدر هم از شنا کردن بخوام بگم، تا وقتی نپرین توی آب، شنا یاد بمیگرین. پس از این همه چیزی که گفتم و احتمالاً بیشتر گیجتون کرده نترسین، و شروع کنین. از ساخت یه صفحه‌ی html شروع کنین و کم‌کم چیزای بیشتری یاد بگیرین. اگه ممارست به خرج بدین، احتمالاً تو چند ماه میتونین مقدمات رو یاد بگیرین و یه سایت ابتدایی قبول رو کاملاً کدنویسی کنید..در آخر هم برای امید دادن، بگم که خرج یه سایت برای یکسال با هزینه‌ی دامنه، از تقریباً ۱۵ هزار تومن شروع میشه تا... . و همونطور هم که گفتم، میشه برای شروع، از برنامه‌های "local server" استفاده کرد. پس شروع یادگیری، خرج خاصی نداره و آموزش رایگان هم زیاده. پس شروع کنید :) ..ارادتمند شما، MaCo