آموزش نصب LAMP در اوبونتو 20.04

  • July 18, 2022 11:23 pm

      برای اجرای برنامه های php نیاز به یک سرور داریم که روی آن php و پایگاه داده روی آن به درستی نصب و پیکربندی شده است. سرور هم همانطور که می دانید مجموعه ای از سخت افزار و نرم افزار شامل سیستم عامل است که وظیفه آن میزبانی سایت ها است.

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

LAMP چیست؟ پشته “LAMP” گروهی از نرم‌افزارهای منبع باز است که معمولاً با هم نصب می‌شوند تا سرور را قادر به میزبانی وب‌سایت‌های پویا و برنامه‌های وب نوشته شده به زبان PHP کند. این پشته شامل برنامه های زیر می باشد:

Linux : نام سیستم عامل متن باز ، رایگان و مورد علاقه برنامه نویسان است.

Apache : یکی از معروف ترین وب سرورهای لینوکس است.

Mysql : یک سیستم مدیریت پایگاه داده می باشد.

PHP : یک زبان برنامه نویسی سمت سرور است. ( ممکن است با زبان Perl یا Python جایگزین شود. )

مراحل نصب LAMP :

۱) ابتدا با دو دستور زیر پکیج های اوبونتو را به روز رسانی می کنیم:

sudo apt update
sudo apt upgrade

۲) سپس با دستور زیر apache را نصب می کنیم. در هنگام نصب از شما تاییدیه نصب سؤال می شود که با Y پاسخ دهید.

sudo apt install apache2

برای اطمینان از درست نصب شدن آپاچی در مرورگر خود تایپ کنید localhost یا http://127.0.0.1 باید صفحه ای مانند این ببینید:

apache

۳) نصب MySQL :

اکنون که یک وب سرور دارید، باید سیستم پایگاه داده را نصب کنید تا بتوانید داده ها را برای سایت خود ذخیره و مدیریت کنید. MySQL یک سیستم مدیریت پایگاه داده محبوب است که در محیط های PHP استفاده می شود.

با دستور زیر MySQL را نصب کنید:

sudo apt install mysql-server
وقتی از شما خواسته شد، نصب را با تایپ Y و سپس ENTER تأیید کنید.
 
در انتها تست کنید که آیا می‌توانید با تایپ کردن به کنسول MySQL وارد شوید:
sudo mysql
شما باید خروجی را مانند این ببینید:
mysql
برای خروج از MySQL :
exit

۴) نصب PHP :

      شما Apache را برای ارائه محتوای خود و MySQL را برای ذخیره و مدیریت داده های خود نصب کرده اید. حالا نوبت به نصب PHP است که کد را برای نمایش محتوای پویا به کاربر نهایی پردازش می کند. علاوه بر بسته php، به php-mysql نیاز دارید، که یک ماژول PHP است که به PHP اجازه می دهد با پایگاه های داده مبتنی بر MySQL ارتباط برقرار کند. شما همچنین به libapache2-mod-php نیاز دارید تا Apache را برای مدیریت فایل های PHP فعال کند. بسته های اصلی PHP به طور خودکار به عنوان وابستگی نصب می شوند.

کدام ورژن PHP را نصب کنیم؟

      هدف از نصب LAMP و PHP آماده سازی یک محیط توسعه برای اجرای لاراول یا وردپرس یا . . . است. از آنجایی که اپلیکیشن هایی که با PHP ساخته شده اند مدتی طول می کشد تا توابع جدید PHP را ساپورت کنند، بهتر است از یک ورژن ماقبل جدید ترین ورژن PHP استفاده کنید تا مشکل عدم شناسایی توابع جدید PHP توسط اپلیکیشن تان به وجود نیاید. در زمان نوشتن این مقاله آخرین ورژن PHP ورژن 8.1 است و ما می توانیم ورژن 8.0 را نصب و استفاده کنیم.

برای نصب PHP ورژن 8 باید ابتدا پکیجهای شخص ثالث زیر را نصب کنیم:

sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

حالا نوبت نصب PHP و ماژول های آن است: ( به ورژن PHP توجه کنید )

sudo apt install php8.0 libapache2-mod-php8.0 php8.0-mysql
پس از اتمام نصب، می توانید دستور زیر را برای تایید نسخه PHP خود اجرا کنید:
php -v
php-v

۵) ایجاد یک هاست مجازی برای وبسایت شما :

      هنگام استفاده از وب سرور آپاچی، می‌توانید یک هاست مجازی ایجاد کنید تا جزئیات پیکربندی را کپسوله کرده و بیش از یک دامنه را از یک سرور واحد میزبانی کنید. در این راهنما، دامنه ای به نام your_domain راه اندازی می کنیم، اما شما باید آن را با نام دامنه خود جایگزین کنید.
 
      آپاچی در اوبونتو 20.04 دارای یک بلوک سرور است که به طور پیش فرض فعال شده است که برای ارائه اسناد از دایرکتوری /var/www/html پیکربندی شده است. ارائه یک سایت از این دایرکتوری خوب کار می کند اما اگر بخواهید چندین سایت را میزبانی کنید ، کار سخت می شود. به جای تغییر /var/www/html، یک ساختار دایرکتوری در /var/www برای سایت your_domain ایجاد می‌کنیم و در صورت عدم درخواست مشتری، /var/www/html را به عنوان دایرکتوری پیش‌فرض باقی می‌گذاریم تا با هر سایت دیگری مطابقت داشته باشد.
 
یک دایرکتوری برای your_domain به صورت زیر ایجاد کنید:
 
sudo mkdir /var/www/your_domain
سپس، مالکیت دایرکتوری را با متغیر محیطی $USER اختصاص دهید، که به کاربر فعلی سیستم شما ارجاع خواهد داد:
sudo chown -R $USER:$USER /var/www/your_domain
      سپس، با استفاده از ویرایشگر خط فرمان دلخواه خود، یک فایل پیکربندی جدید را در دایرکتوری sites-available Apache باز کنید. در اینجا از نانو استفاده خواهیم کرد:
sudo nano /etc/apache2/sites-available/your_domain.conf
با این کار یک فایل خالی جدید ایجاد می شود. کدهای زیر را در آن قرار دهید:
<VirtualHost *:80>
   ServerName your_domain
   ServerAlias www.your_domain 
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/your_domain
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
      پس از اتمام، فایل را ذخیره کرده و ببندید. اگر از نانو استفاده می کنید، می توانید این کار را با فشار دادن CTRL+X، سپس Y و ENTER انجام دهید.
    با این پیکربندی VirtualHost، به آپاچی می‌گوییم که your_domain را با استفاده از /var/www/your_domain به‌عنوان دایرکتوری ریشه وب سرویس دهد. اگر می‌خواهید آپاچی را بدون نام دامنه آزمایش کنید، می‌توانید با اضافه کردن یک کاراکتر # در ابتدای خطوط هر گزینه، گزینه‌های ServerName و ServerAlias ​​را حذف یا کامنت کنید.
 
اکنون می توانید از a2ensite برای فعال کردن میزبان مجازی جدید استفاده کنید:
sudo a2ensite your_domain
      ممکن است بخواهید وب سایت پیش فرض نصب شده با آپاچی را غیرفعال کنید. اگر از نام دامنه سفارشی استفاده نمی کنید، این مورد ضروری است، زیرا در این مورد تنظیمات پیش فرض آپاچی میزبان مجازی شما را بازنویسی می کند. برای غیرفعال کردن وب‌سایت پیش‌فرض آپاچی، تایپ کنید:
sudo a2dissite 000-default
برای اطمینان از اینکه فایل پیکربندی شما حاوی خطاهای نحوی نیست، دستور زیر را اجرا کنید:
sudo apache2ctl configtest
در نهایت، آپاچی را دوباره بارگیری کنید تا این تغییرات اعمال شوند:
sudo systemctl reload apache2
      وب سایت جدید شما اکنون فعال است، اما ریشه وب /var/www/your_domain هنوز خالی است. یک فایل index.html در آن مکان ایجاد کنید تا بتوانیم آزمایش کنیم که میزبان مجازی مطابق انتظار کار می کند:
nano /var/www/your_domain/index.html
کدهای زیر را در این فایل قرار دهید:
<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>
اکنون به مرورگر خود بروید و یک بار دیگر به نام دامنه یا آدرس IP سرور خود دسترسی پیدا کنید:
http://server_domain_or_IP

باید صفحه ای مانند این را ببینید:

helloworld
اگر این صفحه را می بینید، به این معنی است که هاست مجازی آپاچی شما مطابق انتظار کار می کند.
 
      شما می توانید این فایل را به عنوان یک صفحه فرود موقت برای برنامه خود بگذارید تا زمانی که یک فایل index.php برای جایگزینی آن تنظیم کنید. پس از انجام این کار، به یاد داشته باشید که فایل index.html را از ریشه سند خود حذف کرده یا تغییر نام دهید، زیرا به طور پیش فرض بر فایل index.php اولویت دارد.
 
نکته ای درباره DirectoryIndex در آپاچی
      با تنظیمات پیش‌فرض DirectoryIndex در آپاچی، فایلی با نام index.html همیشه بر فایل index.php اولویت دارد. این برای راه‌اندازی صفحات نگهداری در برنامه‌های PHP، با ایجاد یک فایل موقت index.html حاوی یک پیام آموزنده برای بازدیدکنندگان مفید است. از آنجایی که این صفحه بر صفحه index.php اولویت دارد، سپس به صفحه فرود برنامه تبدیل می شود. پس از پایان تعمیر و نگهداری، index.html تغییر نام داده یا از ریشه سند حذف می شود و صفحه برنامه معمولی را باز می گرداند.
اگر می‌خواهید این رفتار را تغییر دهید، باید فایل /etc/apache2/mods-enabled/dir.conf را ویرایش کنید و ترتیب فهرست‌بندی فایل index.php را در دستورالعمل DirectoryIndex تغییر دهید:
sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
پس از ذخیره و بستن فایل، باید Apache را مجدداً بارگیری کنید تا تغییرات اعمال شوند:
sudo systemctl reload apache2
در مرحله بعد، ما یک اسکریپت PHP ایجاد می کنیم تا آزمایش کنیم که PHP به درستی روی سرور شما نصب و پیکربندی شده است.

۶) آزمایش پردازش PHP بر روی وب سرور شما

      اکنون که یک مکان سفارشی برای میزبانی فایل‌ها و پوشه‌های وب‌سایت خود دارید، یک اسکریپت تست PHP ایجاد می‌کنیم تا تأیید کنیم که آپاچی قادر به رسیدگی و پردازش درخواست‌های فایل‌های PHP است.
یک فایل جدید به نام info.php در پوشه ریشه وب سفارشی خود ایجاد کنید:
nano /var/www/your_domain/info.php
با این کار یک فایل خالی باز می شود. متن زیر را که یک کد PHP معتبر است، داخل فایل اضافه کنید:
<?php
phpinfo();
وقتی کارتان تمام شد، فایل را ذخیره کرده و ببندید.
برای آزمایش این اسکریپت، به مرورگر وب خود بروید و به نام دامنه یا آدرس IP سرور خود دسترسی پیدا کنید و به دنبال آن نام اسکریپت که در این مورد info.php است وارد کنید:
http://server_domain_or_IP/info.php
صفحه ای مشابه این را خواهید دید:
php
      این صفحه اطلاعاتی در مورد سرور شما از دیدگاه PHP ارائه می دهد. برای اشکال زدایی و اطمینان از اینکه تنظیمات شما به درستی اعمال می شوند مفید است.
اگر می توانید این صفحه را در مرورگر خود ببینید، نصب PHP شما همانطور که انتظار می رود کار می کند.
      پس از بررسی اطلاعات مربوط به سرور PHP خود از طریق آن صفحه، بهتر است فایلی را که ایجاد کرده اید حذف کنید زیرا حاوی اطلاعات حساسی در مورد محیط PHP و سرور اوبونتو شما است. برای این کار می توانید از rm استفاده کنید:
sudo rm /var/www/your_domain/info.php
در صورت نیاز به دسترسی مجدد به اطلاعات، همیشه می توانید این صفحه را دوباره ایجاد کنید.

نتیجه گیری

      در این راهنما، با استفاده از آپاچی به عنوان وب سرور و MySQL به عنوان سیستم پایگاه داده، پایه ای انعطاف پذیر برای ارائه وب سایت ها و برنامه های کاربردی PHP به بازدیدکنندگان ایجاد کرده ایم.
      اگر می خواهید از آپاچی به عنوان سرور جهت نصب لاراول ، وردپرس یا . . . استفاده کنید گام بعدی می تواند نصب phpmyadmin باشد.
phpmyadmin یک نرم افزار رایگان است که به شما امکان می دهد پایگاه داده mysql خود را به صورت گرافیکی مدیریت کرده و هرنوع عملیات را روی آن اعمال نمایید.