ورود / عضویت 021-91015555
منو

نصب مجموعه LAMP روی Debian 9

تاریخ انتشار:14-05-1399

آموزش نصب مجموعه‌ی LAMP روی لینوکس Debian9

 

مجموعه  “LAMP” گروهی از نرم‌افزارهای منبع باز یا همان اوپن سورس است که معمولا به صورت یکجا نصب می‌شود تا سرور لینوکسی شما را برای میزبانی سایت و اپلیکیشن مورد نظر شما آماده کند.در حقیقت شما با نصب و راه اندازی LAMP یک سرور میزبانی وب برای سایت فروشگاهی و یا هر نوع سایت و برنامه دیگری راه اندازی می نمایید و دیگر نیازی برای خرید هاست از شرکت های ارایه دهنده خدمات میزبانی وب ندارید.

“LAMP” درواقع حروف اول این کلمات می‌باشد: Linux که سیستم عامل ماست، Apache که به عنوان web server ایفای نقش می‌کند، MySQL که پایگاه داده وبسایت ما خواهد بود و PHP که محتوای داینامیک یا پویا را پردازش می‌کند.در حقیقت کلیه صفحاتی از سایت که با کدهای php نوشته شده اند توسط مفسر php اجرا خواهند شد.به راحتی با نصب این سرویس ها می توانید سرور خود را تبدیل به یک سرور میزبانی وب نمایید.

در این راهنمای نصب قرار است پکیج  “LAMP”را بر روی سرور Debian 9 نصب کنیم.

 

پیش‌نیاز:

پیشنهاد می گردد که از کاربر root که بالاترین سطح دسترسی را در سیستم عامل لینوکس دارد برای راه اندازی LAMP استفاده نمایید در غیر این صورت می توانید یک کاربر معمولی ایجاد کرده و کلیه دستورات زیر را با استفاده از دستور sudo اجرا کنید.این مورد مستلزم این است که از سوی مدیر سرور کاربر عادی ایجاد شده عضو گروه sudoers شود.

 

قدم اول – نصب Apache و به روز رسانی فایروال

 

Apache جزء بهترین و محبوب­ترین سرورهای وب در جهان است. Apache بسیار معتبر است و در ابعاد گسترده­ای در تاریخ وب از آن استفاده شده است که آن را به یک انتخاب پیش­فرض بسیار مناسب برای هاست یک وبسایت تبدیل کرده است.

Apache را با دستور apt که مدیر بسته قدرتمند Debian است نصب کنید:

 


$ sudo apt update

$ sudo apt install apache2


 

چون از دستور sudo استفاده می‌کنید از شما می‌خواهد رمز عبور کاربری‌تان را وارد کنید تا اعتبار شما را تایید کند.

به محض وارد کردن رمز عبور apt به شما نشان می­دهد که قرار است کدام پکیج­ها را نصب کند. همچنین به شما می­گوید که چقدر فضا برای نصب آن­ها نیاز است. Y را وارد کرده و کلید enter را فشار دهید. اکنون فرآیند نصب آغاز می­شود.

 

در ادامه، باید مراحل تنظیمات اولیه سرور را همراه با نصب و راه‌اندازی فایروال UFW دنبال کرده باشید، و اکنون از باز بودن دسترسی HTTP و HTTPS اطمینان حاصل کنید.

بعد از نصب Apache بر روی Debian 9، پروفایل اپلیکیشن­هایی که با استفاده از آن­ها می­توانید تنظیمات فایروال خود را دستخوش تغییرات کنید، توسط UFW لود می­شود.

لیست کامل این پروفایل­ها را با اجرای دستور زیر مشاهده کنید:

 


$ sudo ufw app list


 

پروفایل­های WWW برای مدیریت درگاه­های مورد استفاده توسط سرورهای وبسایت استفاده می شود:

 


Output

Available applications:

. . .

WWW

WWW Cache

WWW Full

WWW Secure

. . .


 

اگر شما پروفایل WWW Full را ملاحظه کنید، متوجه خواهید شد که ترافیک روی درگاه­های ۸۰ و ۴۴۳ برقرار است:

 


$ sudo ufw app info “WWW Full”



Output

Profile: WWW Full

Title: Web Server (HTTP,HTTPS)

Description: Web Server (HTTP,HTTPS)

Ports:

۸۰, ۴۴۳/tcp


 

برای این پروفایل دسترسی برای سرویس­های HTTP و HTTPS را باز کنید:

 


$ sudo ufw allow in “WWW Full”


 

روش دیگر برای بازکردن پرت های ۸۰ و ۴۴۳ که برای بازدید سایت شما الزامی است و می بایست حتما این پرت ها از سمت فایروال باز باشند دستورات زیر است اگر از روش گفته شده در بالا استفاده نکردید می توانید با دو خط دستور زیر پرت های اعلام شده را از سمت فایروال باز کنید:

 


$ sudo ufw allow 80

$ sudo ufw allow 443


 

حال می‌توانید با مشاهده کردن public IP خود در مرورگر، همه چیز را واکاوی و بررسی کنید تا از درست کار کردن هر آنچه برنامه‌ریزی شده اطمینان حاصل کنید:

 


http://your_server_ip


 

با ورود به IP صفحه پیش­فرض Debian 9 Apache را مشاهده خواهید کرد که به منظور تست و بررسی اطلاعات طراحی شده است. این صفحه شبیه به تصویر زیر است:

 

نصب lamp روی debian 9

 

اگر این صفحه را مشاهده کردید یعنی web server شما به درستی نصب شده است و از طریق فایروال قابل دسترسی است.

اگر public IP سرور خود را نمی­دانید، راه­های زیادی برای پیدا کردن آن وجود دارد. معمولا این آدرس همان آدرسی است که شما برای اتصال به سرورتان از طریق SSH استفاده می‌کنید.

 

روش اول برای به دست آوردن Public ID:

 

 


$ sudo apt install curl

$ curl http://icanhazip.com


 

روش دوم برای به دست آوردن Public ID:

 

دستور زیر را وارد کنید:

 


ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’


 

این دستور برای شما دو یا سه خروجی به همراه دارد که همه ی آن ها صحیح می‌باشند. اما کامپیوتر شما ممکن است تنها یکی از آن‌ها را ساپورت کند؛ در نتیجه هر دو روش را امتحان کنید.

فرقی نمی‌کند که از کدام روش برای پیدا کردن آدرس IP استفاده می‌کنید. شما می‌توانید با وارد کردن آن در آدرس بار مرورگر صفحه پیش­فرض Apache را مشاهده کنید.

 

قدم دوم – نصب MySQL) MariaDB)

حال که web server خود را نصب کردید و از عملکرد آن مطمئن شدید، زمان آن رسیده است که MariaDB را نصب کنید. MariaDB سیستم مدیریت پایگاه داده است. اساسا کار آن این است که پایگاه داده را، یعنی محل ذخیره­سازی اطلاعات وبسایت، سازمان­دهی کند و دسترسی به آن را ممکن سازد.

برای نصب دیتابیس Mariadb از دستور زیر استفاده کنید:

 


$ sudo apt install mariadb-server


 

همچنین این دستور لیستی از پکیج­هایی که باید install کنید به همراه اطلاعاتی راجع به حجم مورد نیازشان به شما ارائه می­دهد. برای ادامه کلید Y را فشار دهید.

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

 


$ sudo mysql_secure_installation


 

با اجرای این اسکریپت، تعدادی Prompt بالا می­آید که با کمک آن می­توانید تغییراتی در گزینه­های امنیتی نصب MariaDB اعمال کنید. اولین prompt از شما می­خواهد تا کلمه عبور کاربر root پایگاه داده خود را وارد نمایید. این اکانت در MariaDB یک اکانت مدیریتی شناخته می­شود که دسترسی­ها و امکانات آن را افزایش می­دهد. به این فکر کنید که حسابی شبیه به کاربر root خود سرور است (هرچند اکانتی که الان می­سازید یک اکانت ویژه MariaDB به حساب می­آید). چون به تازگی MariaDB را نصب کردید و هنوز تغییراتی در تنظیمات آن ایجاد نکرده­اید، پسورد را خالی بگذارید و فقط کلید enter را در محیط prompt بفشارید.

 

Prompt بعدی که ظاهر می­شود، از شما می­خواهد اگر مایلید برای root پایگاه داده خود یک رمز عبور تعیین کنید. کلید  N را وارد کنید و enter را فشار دهید. در Debian حساب root MariaD شدیدا به نگهداری خودکار سیستم وابسته است. بنابراین نباید تنظیمات روش­های احراز هویت اکانت را تغییر دهید.

با چنین دستکاری­ها و ایجاد تغییراتی پکیج به روزرسانی می­تواند database سیستم را با حذف کردن دسترسی اکانت ادمین دچار اخلال و خرابی کند. جلوتر نحوه ایجاد یک حساب اضافی برای دستیابی به رمزعبور را به هنگام ایجاد اخلال در احرازهویت بررسی می­کنیم.

از اینجا به بعد می­توانید کلید Y را وارد و سپس enter را فشار دهید تا پیش­فرض­ها را برای مابقی سؤالات بپذیرید. این کار باعث می­شود برخی از اکانت­های ناشناس و تست پایگاه داده حذف شوند، ورودهای غیر مجاز و خارج از محیط را به سیستم غیرفعال می­کند و تغییرات جدید را با توجه به تغییرات دلخواه شما اعمال می­کند.پیشنهاد می شود تا برای مدیریت دیتابیس خود یک اکانت مدیریتی جدید ایجاد کنید.

برای انجام این کار، یک اکانت جدید می­سازید و آن را برای مثال admin می­نامید، درست با قابلیت­های اکانت root، با این تفاوت که این اکانت به منظور احراز هویت از طریق کلمه عبور ساخته می­شود. برای ساخت این اکانت prompt مربوط به MariaDB را از پایانه­ی خود باز کنید:

 


$ sudo mariadb


 

حال، می­توانیم یک یوزر جدید با دسترسی­های اکانت root و امکان دسترسی از طریق پسورد را ایجاد کنیم. username و پسورد خود را مطابق سلیقه خود تغییر دهید:

 


MariaDB [(none)]> GRANT ALL ON *.* TO ‘admin’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;


 

دسترسی­ ها را محک بزنید تا از فعال بودن و ذخیره بودن آن­ها در اکانت حاضر اطمینان حاصل کنید:

 


MariaDB [(none)]> FLUSH PRIVILEGES;


 

دستور زیر را دنبال کنید تا از MariaDB خارج شوید:

 


MariaDB [(none)]> exit       


 

از این پس هر موقع که می­خواستید با اکانت جدید مدیریتی خود به پایگاه داده خود دسترسی داشته باشید، کافی است با همان یوزر با پسورد از طریق درستور زیر اعبار سنجی شوید:

 


$ mariadb -u admin -p


 

در این هنگام، سیستم دیتابیس شما تماما آماده است و می­توانید به سراغ نصب PHP، آخرین ماژول مجموعه «LAMP» بروید.

 

قدم سوم – نصب PHP

PHP یک مفسر است که کدها را به منظور نمایش محتوای داینامیک یا پویا پردازش می­کند. همچنین می­تواند اسکریپت­ها را اجرا کند، به پایگاه داده MariaDB متصل شود تا اطلاعات را دریافت کند و محتوای پردازش شده را به web server شما انتقال دهد تا به نمایش درآیند.

یک بار دیگر می‌توانید از مدیر بسته  apt برای نصب PHP استفاده کنید. همچنین این بار پکیج­های Helper را اضافه کنید تا کد PHP تحت سرور Apache اجرا شود و بتواند با دیتابیس MariaDB ارتباط برقرار کند:

 


$ sudo apt install php libapache2-mod-php php-mysql


 

این دستور باید بدون هیچ مشکلی PHP را نصب نماید و قرار است برای اطمینان آن را تست کنیم.

به صورت پیش فرض در صورتی که درخواستی به وب سرور برسد در ابتدا Apache دنبال فایلی به اسم index.html میگردد. هدف ما این است که به web server بگوییم که فایل­های PHP را نسبت به بقیه فایل­ها اولویت قرار دهد تا Apache در ابتدا به جای فایل index.html فایل index.php را جستجو کند.

برای این منظور دستور زیر را وارد کنید تا فایل dir.conf را در یک ویرایشگر متن، که دارای دسترسی‌های root می‌باشد، باز نماید:

 


$ sudo nano /etc/apache2/mods-enabled/dir.conf


 

پس از وارد کردن دستوربالا ویرایشگر این پیغام را نمایش می‌دهد:

 


/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

</IfModule>


 

فایل PHP index (در بالا هایلایت شده است) را درست بعد از DirectoryIndex انتقال دهید، به این شکل:

 


/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>


 

وقتی که این عملیات به اتمام رسید، ذخیره کنید و با فشردن کلیدهای CTRL+X خارج شوید. با وارد کردن Y ذخیره سازی را تایید کنید و سپس با فشردن دکمه ENTER محل ذخیره سازی فایل را تایید نمایید.

 

بعد از این مرحله، وب سرور Apache را restart کنید تا تغییرات ایجاد شده را تشخیص دهد. برای restart کردن دستور زیر را تایپ کنید:

 


$ sudo systemctl restart apache2


 

همچنین می­توانید وضعیت سرویس apache2 را با استفاده از systemctl بررسی کنید:

 


$ sudo systemctl status apache2


 

نمونه نتیجه ظاهر شده:

 


Sample Output

apache2.service – The Apache HTTP Server

Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)

Active: active (running) since Tue 2018-09-04 18:23:03 UTC; 9s ago

Process: 22209 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)

Process: 22216 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)

Main PID: 22221 (apache2)

Tasks: 6 (limit: 4915)

CGroup: /system.slice/apache2.service

├─۲۲۲۲۱ /usr/sbin/apache2 -k start

├─۲۲۲۲۲ /usr/sbin/apache2 -k start

├─۲۲۲۲۳ /usr/sbin/apache2 -k start

├─۲۲۲۲۴ /usr/sbin/apache2 -k start

├─۲۲۲۲۵ /usr/sbin/apache2 -k start

└─۲۲۲۲۶ /usr/sbin/apache2 -k start


 

برای افزایش کارایی PHP، می­توانید ماژول­های دیگری را نصب کنید. برای مشاهده ماژول­ها و کتابخانه­های موجود برای PHP، نتایج جستجوی apt search را با دستور less  ترکیب کنید، صفحه­ای که به شما اجازه می­دهد از طریق نتایج دستورات دیگر را بازخوانی و بررسی کنید:

 


$ apt search php- | less


 

از کلیدهای جهت برای بالا پایین کردن نتایج استفاده کنید، سپس برای خروج کلید Q را بفشارید.

 

نتایج ظاهر شده تمام گزینه­های اختیاری است که می­توانید نصب کنید. همچنین به شما توضیح مختصری از هرکدام ارائه می­دهد:

 


Output

Sorting…

Full Text Search…

bandwidthd-pgsql/stable 2.0.1+cvs20090917-10 amd64

Tracks usage of TCP/IP and builds html files with graphs

bluefish/stable 2.2.9-1+b1 amd64

advanced Gtk+ text editor for web and software development

cacti/stable 0.8.8h+ds1-10 all

web interface for graphing of monitoring systems

cakephp-scripts/stable 2.8.5-1 all

rapid application development framework for PHP (scripts)

ganglia-webfrontend/stable 3.6.1-3 all

cluster monitoring toolkit – web front-end

haserl/stable 0.9.35-2+b1 amd64

CGI scripting program for embedded environments

kdevelop-php-docs/stable 5.0.3-1 all

transitional package for kdevelop-php

kdevelop-php-docs-l10n/stable 5.0.3-1 all

transitional package for kdevelop-php-l10n

:


 

برای اینکه دقیق­تر هر ماژول و کارایی آن را بشناسید، می­توانید در اینترنت آن را جستجو کنید. به جای آن نیز می­توانید توضیحات مفصل­تری راجع به هر یک بخوانید و برای این کار کافی است دستور زیر را وارد کنید:

 


$ apt show package_name


 

در اینجا به شما نتایج زیادی همراه با توضیحات جامع­تری Description در اختیار شما قرار می­دهد.

 

برای مثال، برای اینکه ماژول php-cli را بهتر درک کنید و بشناسید، باید دستور زیر را وارد نمایید:

 


$ apt show php-cli


 

با وارد کردن دستور بالا، علاوه بر اطلاعات بسیار زیاد دیگری که دریافت می­کنید، نتیجه­ای شبیه به این را مشاهده خواهید کرد:

 


Output

Description: command-line interpreter for the PHP scripting language (default)

This package provides the /usr/bin/php command interpreter, useful for

testing PHP scripts from a shell or performing general shell scripting tasks.

.

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used

open source general-purpose scripting language that is especially suited

for web development and can be embedded into HTML.

.

This package is a dependency package, which depends on Debian’s default

PHP version (currently 7.0).


 

اگر بعد از بررسی های انجام شده تصمیم به نصب پکیجی داشتید، می­توانید این کار را با استفاده از دستور apt install انجام دهید.

 

مثلا اگر خواستید php-cli را نصب کنید، دستور زیر را وارد کنید:

 


$ sudo apt install php-cli


 

اگر میخواستید بیش از یک ماژول را نصب کنید، باید تک تک ماژول ها را با استفاده از یک فاصله (space) در یک لیست از هم جدا نمایید و دستور apt install را دنبال کنید، مانند زیر:

 


$ sudo apt install package1 package2 …


 

اکنون دیگر تمام مجموعه “LAMP” نصب و تنظیم شده است. در نهایت پیش از اعمال تغییرات بیشتر، به تست PHP میرسیم تا اگر مشکلی وجود داشت آن را نیز رفع نماییم.

 

قدم چهارم – تست پردازش PHP بر روی web server

برای آزمایش اینکه آیا سرور به درستی برای PHP پیکربندی شده است یا خیر، یک اسکریپت خیلی ساده PHP به نام info.php را ایجاد نمایید. برای اینکه Apache این فایل را پیدا کند و به آن دسترسی داشته باشد، باید آن فایل را در یک مسیر خاص ذخیره کنید

در Debian 9، این مسیر در /var/www/html/ قرار دارد. با اجرای دستور زیر، فایل را ایجاد کرده و در مسیر مورد نظر ذخیره کنید:

 


$ sudo nano /var/www/html/info.php


 

این دستور یک فایل خالی را باز می­کند. متن زیر که یک کد PHP معتبر است را در فایل وارد نمایید:

 


<?php

phpinfo();

?>


 

هنگامی که تمام شد، ذخیره کنید و فایل را ببندید.

اکنون می‌توانید آزمایش کنید و ببینید که آیا web server شما می‌تواند محتوای ایجاد شده را با این اسکریپت PHP نمایش دهد یا خیر. برای اینکه این موضوع را امتحان کنید، فقط کافی است صفحه زیر را در مرورگر خود مشاهده کنید. در اینجا شما مجددا به آدرس public IP خود احتیاج دارید.

 

آدرسی که باید مشاهده کنید لینک زیر است:

 


http://your_server_IP_address/info.php


 

صفحه‌ای که با آن مواجه خواهید شد شبیه به عکس زیر است:

 

نصب lamp روی debian 9

 

این صفحه به شما اطلاعات بسیاری در مورد تنظیمات php می دهد. این صفحه برای عیب یابی کردن و رفع ایرادات احتمالی مفید است و خیال شما را از بابت اعمال صحیح تنظیمات راحت می‌کند.

اگر این مرحله موفقیت آمیز بود PHP درست مطابق انتظارات کار خواهد کرد.

بعد از این آزمایش باید فایل را حذف کنید چون می‌تواند اطلاعات مهمی از سرور را در اختیار اشخاص بیگانه قرار دهد. برای این منظور دستور زیر را اجرا کنید:

 


sudo rm /var/www/html/info.php


 

اگر مجددا به این اطلاعات احتیاج داشتید، بارها می‌توانید این صفحه را ایجاد کنید.

اکنون که مجموعه “LAMP” را نصب نمودید، بستری دارید که به شما اجازه می‌دهد هرگونه وبسایت یا نرم‌افزاری را که می‌خواهید روی سرور خود نصب و اجرا کنید و گزینه‌های زیادی را پیش روی شما قرار خواهد داد.

خدمات ابری زیرساخت (laaS)
فقط با چند کلیک سرور ابری خود را بسازید!
شروع کنید