اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نصب و تنظیم LAMP/LEMP Stack بر روی (دبیان) Debian 8 Jessie

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    نصب و تنظیم LAMP/LEMP Stack بر روی (دبیان) Debian 8 Jessie

    یکی از دلایل راه اندازی سیستم های لینوکسی، هاستینگ وب سایتها ست. براساس گزارش NetCraft.com’s May 2015 survey از یک میلیون وب سایت پربازدید دنیا، تقریبا 71 درصد بر روی آپاچی یا Nginx اجرا می شوند.

    از آنجایی که وب سرور ها احتمالا محتوای دینامیکی ارائه می دهند یا بیشترشان به دیتابیس متصل هستند، توانایی تنظیم سرورهای LAMP یا LEMP برای جویندگان کار و کارمندان بسیار حیاتی می باشد
    .
    در این آموزش به نصب و راه اندازی یک سرور لینوکس (مخصوصا دبیان 8 Jessie ) خواهیم پرداخت تا به عنوان یک سرور LAMP/LEMP فعالیت کند .


    همچنین توصیه میشود مطالعه کنید :

    آموزش نصب LAMP (مخفف Linux, Apache, MySQL/MariaDB, PHP) در Ubuntu 16.04/16.10

    آموزش نصب LAMP (مخفف Linux, Apache, MySQL/MariaDB, PHP) در Debian 9

    آموزش نصب LAMP (مخفف Linux, Apache, MySQL/MariaDB, PHP) در CentOS/RedHat 7



    سرورهای LAMP/LEMP چیستند؟
    سوال جالبی است! همانند اکثر موارد دیگر که در دنیا به ازای آنها محاسباتی صورت میگیرد، LAMP نیز مخفف Linux Apache MySQL PHP و LEMP مخفف Linux Nginx MySQL PHP می باشد.

    این عبارات مختصر شده در حقیقت به مجموعه ای از برنامه های موجود روی وب سرور اشاره می کنند. در این آموزش ابتدا به نصب موارد مشترک بین LAMP و LEMP مخصوصا MySQL و PHP خواهیم پرداخت. وقتی نصب PHP و MYSQL تمام شد هر یک از وب سرورها را نصب و راه اندازی خواهیم کرد.

    قبل از این که وارد مباحث تنظیمات این دو سیستم بشویم, بهتر است نگاهی به تفاوت های آپاچی و Nginx بندازیم.

    آپاچی چیست؟
    Apache یکی از وب سرورهای اصیل است که پیدایشش به سال 1995 بر میگردد. آپاچی به صورت گسترده در حال استفاده می باشد که دارای طول عمر بالا، دارای مستندات کافی، و ده ها ماژول بمنظور افزودن انعطاف پذیری بیشتر این وب سرور می باشد.

    Nginx چیست؟
    Nginx زندگی اش را در سال 2002 شروع کرد زمانی که جهان کامپیوتری احساس نیاز به وب سایت هایی کرد که بتواند ده ها هزار ارتباط همزمان یا بیشتر را مدیریت کند و به همین دلیل nginx متولد شد.

    تفاوت های زیادی بین این دو سیستم موجود است و از تخصص نویسنده خارج است که به جزییات پیچیده ی این دو سیستم بپردازد. برای مطالعه بیشتر در مورد این سیستم ها به صفحات زیر مراجعه کنید :


    نصب و تنظیم MySQL و PHP
    1. بخش اول در مورد عملکرد دبیان به عنوان سرور MySQL و PHP بحث خواهد کرد. اولین مرحله از سرورLAMP/LEMP با نصب دبیان حل می شود . اگر نیازی به راهنمایی در مورد نصب دبیان داشتید, مقاله زیر را مطالعه کنید :

    آموزش نصب دبیان 9



    بعد از نصب دبیان برای نصب بقیه نرم افزارهای ضروری از دستور زیر استفاده کنید :
    کد:
    # apt-get install mysql-server-5.5 php5-mysql php5
    مدت زمان این پروسه باتوجه به سخت افزار سیستم و ارتباط اینترنت، متغیر خواهد بود. در این مثال نصب دبیان Jessie به همراه تمام آپدیت ها، به MB 70 پکیج از آرشیوهای ریپازیتوری نیاز دارد. در حین نصب، شاید سیستم از شما بخواهد که یک پسورد برای یوزر روت SQL ست کنید. این پسورد با پسورد یوزر روت واقعی متفاوت است، و بنابر مسائل امنیتی بهتر است پسورد متفاوتی انتخاب کنید.
    Click image for larger version  Name:	Set-MYSQL-pass.png Views:	1 Size:	8.1 KB ID:	20356

    2. زمانی که apt نصب نرم افزار ها را تمام کرد، سرویسهای اصلی شروع به اجرا خواهند کرد. بهتر است کمی بیشتر در مورد تنظیمات هر بخش از نرم افزار های نصب شده صحبت کنیم که این کار را با Mysql شروع می کنیم.

    3. بعد از نصب mysql، پیشنهاد می شود یکسری تنطیمات انجام بگیرد. که این کار به آسانی با ابزار mysql_secure_installation انجام می شود. این دستور در کامند لاین اجرا می شود و از یوزر می خواهد که یوزرهای anonymous، دیتابیس test، و همچنین توانایی لاگین یوزر روت به صورت ریموت به دیتابیس sql را حذف کند.
    کد:
    # mysql_secure_installation
    این دستور یک خط فرمان (prompt) تعاملی را در محیط شل شروع خواهد کرد که سوالات بالا را از کاربر خواهد پرسید. وقتی apt پسورد روت mysql را می پرسد، این پسورد برای اعمال هر تغییری نیاز خواهد بود. از آنجایی که پسورد root قبلا ست شده است، به سوال زیر، جواب نه (No) می دهیم.
    آیا می خواهید پسورد روت را در سرور Mysql تغییر بدهید؟

    Click image for larger version  Name:	mysql_secure_installation.png Views:	1 Size:	42.1 KB ID:	20357

    4. سوالات بعدی در مورد یوزرهای anonymous، دیتابیس ‘test‘ و دسترسی روت به دیتابیس به صورت ریموت خواهد بود. بهتر است به سوالات بالا جواب بله (Yes) بدهیم، مگر این که به آپشن خاصی نیاز داشته باشیم.

    نکته : شاید اروری (error) مبنی بر عدم موفقیت حذف دیتابیس test دریافت کنید، نگران این موضوع نباشید اسکریپت کار خودش را انجام خواهد داد.
    Click image for larger version  Name:	mysql_secure_installation2.png Views:	1 Size:	74.2 KB ID:	20358

    تقریبا کار Mysql تمام شد. بدون دانستن این که کدام دیتابیس ها و یوزرها نیاز خواهند بود، نمی توانیم تنظیمات بیشتری انجام بدهیم. البته بیشتر وب سایت ها به صورت اتوماتیک دیتابیس ها و یوزرهای مورد نیاز را هنگام نصب نرم افزار می سازند. این موضوع در هر نرم افزار متغیر است به همین دلیل بهتر است به فایلهای README نرم افزار یا دستورات نصب مراجعه کنید.

    5. حالا که MYSQL تنطیم شده است، بهتر است بعضی از تنظیمات اصلی PHP را برای این سرور انجام دهیم. با اینکه ده ها تنظیمات برای دستکاری php موجود است فقط بخش اندکی می تواند همیشه تغییر کند. فایل تنظیمات php فایل /etc/php5/apache2/php.ini است. این فایل را با یک ادیتور باز کنید.
    کد:
    # nano /etc/php5/apache2/php.ini
    ctrl+w را در ادیتور nano فشار دهید و دنبال عبارت “memory_limit” بگردید. در نصب پیش فرض این مقدار معادل 128M تعریف شده است ولی شما می توانید با توجه به نیازخود آن را تغییر دهید.

    آپشن مهم دیگر “max_execution_time” است که به صورت پیش فرض معادل 30 تعریف شده است. که با توجه به نیاز برنامه می تواند تغییر کند. بعضی افراد دوست دارند مسیر لاگ گیری را روی فایل/پوشه خاصی تنظیم کنند. برای این کار دنبال عبارت“error_log =” بگردید و با حذف (semi-colon) "; " از ابتدای خط ان را از حالت کامنت در بیاورید.

    در این جا می توانید فایل مورد نظر را به انتهای خط اضافه کنید. مطئن شوید که مسیر در سیستم تان موجود است. بعد از اعمال تغییرات در فایل php.ini، تغییرات را ذخیره کنید و از ادیتور خارج شوید. حالا Mysql و PHP5 برای میزبانی سایتها آماده هستند. اکنون نوبت به تنظیم apache2 می رسد.


    نصب و تنظیم Apache2
    6. حالا نوبت به تنظیم apache2 می رسد تا کار تنظیمات سرور LAMP تمام شود. اولین گام برای کانفیگ Apache2 در واقع نصب نرم افزار با استفاده از apt است.
    کد:
    # apt-get install apache2
    این دستور تمام فایلهای ضروری و پیش نیاز(dependency) های apache2 را نصب خواهد کرد. وقتی نصب تمام شد، وب سرور آپاچی صفحه وب پیش فرض را نشان خواهد داد. به چندین شیوه می توان وضعیت آپاچی را بررسی کرد که سرویس آن up و در حال اجرا باشد. آسانترین روش استفاده از ابزارlsofاست :
    کد:
    # lsof -i :80
    روش دیگر وارد شدن به ادرس ip وب سرور است. نصب پیش فرض دبیان را در نظر بگیرید، به احتمال زیاد سیستم به صورت اتوماتیک از dhcp آی پی خواهد گرفت.
    کد:
    # ip show addr            [Shown below in red]
    # ifconfig            [Shown below in green]
    Click image for larger version  Name:	ip-addr.png Views:	1 Size:	71.4 KB ID:	20359

    برای فهمیدن ip سرور از یکی از دستورات زیر استفاده کنید. مهم نیست از کدام دستور استفاده کرده باشید، آدرس ip به دست آمده را در یک مرورگر وب وارد کنید تا چک کنید که آیا صفحه پیش فرض توسط اپاچی قابل نمایش است یا نه.
    Click image for larger version  Name:	Default-Apache.png Views:	1 Size:	39.7 KB ID:	20360

    در این حالت سرویس آپاچی up و در حال اجراست. با این که صفحه پیش فرض دبیان یک وب سایت زرق و برقدار است، بیشتر کاربران صفحه کاستوم را می خواهند. گام های زیر تنطیم کردن آپاچی 2 را برای میزبانی یک وب سایت متفاوت نشان می دهد.

    7. دبیان ابزارهای مفیدی برای مدیریت سایتها و ماژول ها دارد. قبل از این که نحوه استفاده این ابزارها را بدانیم، بهتر است با کارکرد هر یک از انها آشنا شویم.
    • a2ensite : این ابزار بعد از این که فایل کانفیگ مناسب ایجاد شد برای فعال کردن وب سایت استفاده می شود.
    • a2dissite : این ابزار برای غیر فعال کردن یک وب سایت با تعیین فایل تنظیمات وب سایت استفاده می شود.
    • a2enmod : این ابزار برای فعال کردن ماژول های اضافی Apache2 کاربرد دارد.
    • a2dismod : این ابزار برای غیر فعال کردن ماژول های اضافی Apache2 کاربرد دارد.
    • a2query : این ابزار برای جمع اوری اطلاعات درباره سایتهایی که هم اکنون فعال هستند مورد استفاده قرار می گیرد.



    اول از همه با دو ابزار اولی کار می کنیم. از آن جایی که
    Apache2

    صفحه وب پیش فرض را میزبانی می کند با دستور a2dissite ان را غیر فعال می کنیم.
    کد:
    # a2dissite 000-default.conf
    Click image for larger version  Name:	a2dissite.png Views:	1 Size:	38.6 KB ID:	20361

    این دستور وب سایت پیش فرض Apache را که در اسکرین شات بالا دیده می شود، غیر فعال می کند. البته برای اینکه تغییرات اعمال شود , apache2 باید reload شود.
    کد:
    # service apache2 reload
    با این دستور apache 2 سایتهایی که enable/disable شده اند و هم اکنون میزبانی می شوند را آپدیت می کند. برای اثبات این ادعا سعی می کنیم دوباره به آدرس ip وب سرور وصل شویم و می بینیم که چیزی نمایش داده نمی شود( بعضی از کامپیوترها اطلاعات را کش می کنند، اگر ماشین همچنان بعد از اجرای دو دستور قبلی وب سایت پیش فرض را نشان می دهد، کش مرورگر وب را پاک کنید.) راه دیگر برای چک کردن وضعیت فعال بودن یا نبودن سایت استفاده از ابزار a2query است.
    کد:
    # a2query -s
    Click image for larger version  Name:	a2query.png Views:	1 Size:	119.7 KB ID:	20362

    در این اسکرین شات اطلاعات زیادی موجود است. اول از همه، باکس سبز بالا a2query –s از
    Apache2

    می خواهد که سایتهایی که سرویس داده می شوند را نشان دهد.
    باکس زرد که کامند "a2dissite 000-default.conf" ذرا نشان می دهد و بعد آن سرویس آپاچی reload می شود. این دو دستور باعث می شوند که apache2 سایت پیش فرض را disable کند و بعد سایت های active/inactive را reload کند.

    باکس قرمز a2query –s دوباره نشان داده شده است اما توجه کنید که اینبار آپاچی جواب داده است که چیزی سرویس داده نمی شود. حالا یک سایت غیر پیش فرض بسازیم. اول با استفاده از دستور cd به پوشه تنظیمات آپاچی /etc/apache2 سوئیچ کنیم.
    کد:
    # cd /etc/apache2
    چندین فایل و پوشه مهم در این پوشه موجود است، که ما فقط به مهم ترین انها می پردازیم. اولین کار برای استارت یک سایت جدید ایجاد یک فایل تنظیمات جدید در داخل پوشه ‘sites-available‘ است. وارد پوشه ‘sites-available‘ شوید و فایل جدید را ایجاد کنید.
    کد:
    # cd sites-available
    # cp 000-default.conf tecmint-test-site.conf
    صفحه تنظیمات سایت جدید را با یک ادیتور باز کنید :
    کد:
    # nano tecmint-test-site.conf
    در داخل این فایل یک خط بسیار مهم برای مشخص شدن وب سایت میزبانی شده موجود است، که آن خط ‘DocumentRoot‘ است. این خط به apache میگوید که فایلهای ضروری وب کجا قرار دارند که زمانیکه درخواستی برای ریسورس های خاص دریافت می شود از این خط باید استفاده شود. حالا این خط به پوشه ای اشاره می کند که موجود نمی باشد اما به زودی آن را خواهیم ساخت و یک وب سایت ساده را در آن قرار خواهیم داد.
    کد:
    DocumentRoot /var/www/tecmint
    Click image for larger version  Name:	Apache-new-site-conf.png Views:	1 Size:	411.3 KB ID:	20363

    تغییرات را در این فایل ذخیرهکنید و از ادیتور خارج شوید. حالا باید آن پوشه را ایجاد کنیم و فایلها را درون آن قرار دهیم. در این مقاله ما یک مثال ساده با html می سازیم و ساخت وب سایت با امکانات کامل را بر عهده شما قرار می دهیم. پس برویم و پوشه را بسازیم و صفحه وب html به نام ‘index.html‘ را اضافه کنیم.
    کد:
    # mkdir /var/www/tecmint
    # touch /var/www/tecmint/index.html
    # echo “It's ALIVE!” >> /var/www/tecmint/index.html
    دستورات بالا یک پوشه جدید به نام tecmint و یک فایل جدید به نام ‘index.html‘ داخل آن پوشه می سازد.

    دستور echo چند خطی را به فایل اضافه می کند بنابراین وقتی آپاچی وب سایت را میزبانی می کند چیزهایی در مرورگر وب نمایش داده می شود.

    نکته : حالا از کامندهایی که قبلا بحث شده است استفاده کنید، با این دستورات به آپاچی می گوییم که از فایل html جدید را استفاده کند.
    کد:
    # a2ensite tecmint-test-site.conf
    # service apache2 reload
    # a2query -s tecmint-test-site.conf
    آخرین دستور بالا تایید می کند که apache2 از وب سایت جدید ایجاد شده، استفاده می کند. حالا در مرورگر دوباره آدرس ip سرور را وارد کنید و چک کنید که آیا وب سایت جدید ایجاد شده نمایش داده می شود (مجددا امکان دارد کامپیوتر داده ها را کش کرده باشد، به همین دلیل به چند رفرش نیاز دارید تا صفحه وب جدید نمایش داده شود)
    Click image for larger version  Name:	New-apache-site.png Views:	1 Size:	456.3 KB ID:	20364

    اگر سایت جدید در مرورگر نمایش داده شد در نتیجه APACHE2 با موفقیت کانفیگ و راه اندازی شده و در حال نمایش وب سایت می باشد. اگرچه راه اندازی یک سرور Linux Lamp برای میزبانی یک سایت، کار راحتی است اما موارد پیچیده ای هستند که ممکن است با توجه به بزرگی و وسعت کار نیاز به کانفیگ آنها داشته باشید
    {اینها یک تنظیم ساده برای اماده کردن سرور LAMP لینوکس برای میزبانی یک سایت است، با این وجود چیزهای پیشرفته زیادی است که می تواند انجام شود و تنظیمات به نتیجه نهایی وابسته می باشد. بخش بعدی برای کسانی که می خواهند LEMP سرور را نصب کنند مفید خواهد بود.}

    بخش بعدی به کاربرانی که سرور LAMP را راه اندازی میکنند مربوط نمی شود و تنها برای افرادی که به دنبال موارد مربوط به LEMP می باشد مفید است.

    پاراگراف بعدی فرض می کند که Apache 2 بر روی سیستم نصب نیست. در صورتی که آپاچی روی سیستم باشد برای اینکه nginx هم متعاقبا روی سرور نصب کنیم، یکسری تفاوتهایی وجود خواهد داشت.


    نصب و تنظیم Nginx
    8. Nginx یکی دیگر از وب سرورهای بسیار قدرتمند است. در این بخش ما یک صفحه وب برای Nginx راه اندازی خواهیم کرد. اولین قدم برای تنظیم nginx نصب پکیج های ضروری با استفاده از ابزار ‘apt‘ است.
    کد:
    # apt-get install nginx
    فرض کنید تمام dependecyها برآورده شده باشند، در یک مرورگر وب، آدرس ip سرور را وارد کنید، وب سایت پیش فرض nginx بالا خواهد آمد.

    نکته : بعضی مواقع بعد از نصب nginx، سرور به صورت اتوماتیک استارت نمی شود. اگر با وارد کردن آدرس ip سرور در مرورگر صفحه زیر باز نشد، از دستور زیر برای اطمینان از استارت شدن سرویس nginx استفاده کنید.
    کد:
    # service nginx start
    Click image for larger version  Name:	Nginx-default.png Views:	1 Size:	99.5 KB ID:	20365

    حالا nginx صفحه پیش فرض را میزبانی می کند. بیشتر کاربران می خواهند وب سایت مورد نظر شان را میزبانی کنند.

    9. در گام بعدی Nginx را برای میزبانی یک وب سایت متفاوت راه اندازی خواهیم کرد. پوشه تنظیمات Nginx در مسیر /etc/nginx قرار دارد. با دستور cd وارد پوشه شوید.
    کد:
    # cd /etc/nginx
    در این آموزش چندین فایل و پوشه مهم برای راه اندازی یک وب سایت توسط nginx موجود است. دو تا از مهمترین آنها ,پوشه های ‘sites-available‘ و ‘sites-enabled‘ هستند. مانند آپاچی ، nginx فایلهای تنظیمات را برای هر سایت در پوشه sites-available استفاده می کند، که وقتی سایت فعال است به پوشه sites-enabled ، لینک (symbolic link) می شود.

    اولین کار برای خلاص شدن از دست سایت پیش فرض، حذف لینک (symbolic link) از sites-enabled است.
    کد:
    # rm sites-enabled/default
    10. حالا باید یک فایل کانفیگ جدید ایجاد کنیم و آن را لینک بدهیم تا nginx صفحه را میزبانی کند. برای ساختن فایل کانفیگ سایت ساده ترین راه کپی کردن و ایجاد تغییرات در فایل کانفیگ سایت پیش فرض است.
    کد:
    # cp sites-available/default sites-available/tecmint-test
    این فایل را با ادیتور باز کنید تا مسیری که nginx فایلهای موجود در آن را استفاده می کند، تغییر دهیم.
    کد:
    # nano sites-available tecmint-test
    درون این فایل چندین آپشن مهم وجود دارد که باید تغییر دهیم تا nginx بتواند یک سایت را میزبانی کند. اولین تغییر مربوط به خطی است که با ‘root‘ شروع می شود که تعیین می کند برای این سایت خاص nginx باید از کدام مسیر فایلها را مورد استفاده قرار دهد.

    در این آموزش ما مسیر را تغییر نمی دهیم و همان پیش فرض ‘/var/www/html‘ باقی می ماند و فایلهای html را در این پوشه قرار می دهیم. البته اگر چندین سایت وجود دارد یا کانفیگ خاصی بر روی این سرور است، مسیر را تغییر دهید.

    خط مهم بعدی خط ‘index‘ است. از آنجایی که این مقاله درباره نصب LEMP می باشد و سایت به صورت بالقوه می تواند صفحات php را میزبانی کند، باید به nginx اطلاع دهیم که صفحه پیش فرض می تواند یک صفحه php باشد. برای این کار، ‘index.php‘ را به انتهای لیست index فایلها اضافه کنید.
    Click image for larger version  Name:	Nginx-site-conf.png Views:	1 Size:	36.4 KB ID:	20366

    برای این که ثابت کنیم که سایت دیگری در حال کار است، محتویات صفحه پیش فرض را با متن دیگری جایگزین می کنیم.
    کد:
    # echo “It's ALIVE!” > /var/www/html/index.html
    11. گام بعدی فعال کردن سایت جدید توسط لینک کردن فایل کانفیگ ایجاد شده به پوشه sites-enabled است. برای این منظور ابتدا از دستور ln استفاده می کنیم و بعد کانفیگ های nginx را به کمک ابزار service میتوانیم reload می کنیم.
    کد:
    # ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
    # service nginx reload
    حالا با وارد کردن آدرس ip سرور در مرورگر می توانید کارکرد nginx را ارزیابی کنید.

    هر دو این مقالات کانفیگ های ساده از LAMP/LEMP را نشان دادند. هر کدوم از سرورها را برای میزبانی وب سایت انتخاب کردید، آرزوی موفقیت برایتان داریم.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-21-2021, 12:19 PM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X