استک LAMP رایجترین مجموعه نرمافزاری برای راهاندازی وبسایتها و اپلیکیشنهای پویا است. LAMP سرواژه چهار فناوری متنباز و رایگان است: لینوکس به عنوان سیستم عامل، آپاچی به عنوان وبسرور، MariaDB/MySQL به عنوان پایگاه داده و PHP به عنوان زبان برنامهنویسی سمت سرور. در این آموزش، به صورت گام به گام با مراحل نصب LAMP روی اوبونتو 24.04 به همراه نسخه 8.3 زبان PHP آشنا خواهید شد.
فهرست مطالب:
سه بخش اصلی آموزش نصب استک LAMP روی اوبونتو عبارتند از:
- نصب وبسرور آپاچی به همراه تنظیمات فایروال
- نصب پایگاه داده MariaDB و تنظیمات امنیتی آن
- نصب PHP نسخه 8.3 به همراه ماژولهای موردنیاز
استک LAMP چیست؟
LAMP سرواژه چهار فناوری است که در کنار هم، بستری کامل برای اجرای انواع برنامههای نوشته شده با PHP از جمله وردپرس را فراهم میکنند:
- Linux — سیستم عامل سرور (در اینجا اوبونتو).
- Apache — وبسروری که درخواستهای مرورگر را پاسخ میدهد.
- MariaDB/MySQL — پایگاه دادهای که اطلاعات سایت و کاربران در آن ذخیره میشود.
- PHP — زبان برنامهنویسی سمت سرور که هسته وردپرس نیز با آن نوشته شده است.
پیشنیازهای نصب LAMP روی اوبونتو
- یک سرور با اوبونتو (نسخه 24.04 یا جدیدتر) و دسترسی SSH به آن
- یک کاربر غیر از root با دسترسی sudo
- فعال بودن فایروال روی سرور
توجه داشته باشید که به جای سرور، میتوانید همین آموزش را روی کامپیوتر شخصی خودتان نیز پیادهسازی کنید. برای این کار یا میتوانید اوبونتو را به صورت جداگانه روی سیستم خودتان نصب کنید یا برای راحتی بیشتر میتوانید با استفاده از قابلیت WSL که در ویندوز ۱۰ و ۱۱ وجود دارد، به سادگی اوبونتو را به ویندوز خود اضافه کنید.
آشنایی با قابلیت WSL در ویندوز ۱۰ و ۱۱
قابلیت WSL در ویندوز به شما اجازه میدهد بدون نیاز به ماشین مجازی یا بوت دوگانه، یک محیط لینوکس واقعی را مستقیماً داخل ویندوز خود اجرا کنید: راهنمای جامع WSL در ویندوز
مرحله ۱) لاگین و بهروزرسانی
قبل از هر کاری، ابتدا با استفاده از مشخصات سرور و دستور زیر در ترمینال سیستم خودتان، یک اتصال SSH با سرور برقرار کنید:
ssh root@192.168.100.101
در این مثال فرض شده است که شما با نام کاربری root به سروری با IP معادل 192.168.100.101 دسترسی دارید و پورت اتصال SSH شما همان پورت پیشفرض یعنی 22 است. در صورتی که نام کاربری، آدرس IP سرور یا پورت اتصال شما متفاوت از این مقادیر است، میبایست از الگوی زیر استفاده کنید:
ssh -p <port> <username>@<IP-address>
ssh -p 2222 reza@192.168.100.200
در ادامه مراحل، چنانچه شما کاربر root این سرور نیستید، قبل از دستورات کلمه sudo را تایپ کنید تا با دسترسی root اجرا شوند. بدیهی است که باید نام کاربری شما در گروه sudo تعریف شده باشد.
ابتدا فهرست پکیجهای سیستم عامل را بهروزرسانی کنید تا جدیدترین نسخهها نصب شوند:
sudo apt update && sudo apt upgrade -y
مرحله ۲) نصب وبسرور آپاچی
برای نصب وبسرور آپاچی روی سرور اوبونتو کافیست دستور زیر را درون ترمینال سرور وارد کنید:
sudo apt install -y apache2 apache2-utils
پس از نصب، آپاچی به صورت خودکار اجرا میشود. برای اطمینان از اجرای صحیح آن، وضعیت سرویس را بررسی کنید:
sudo systemctl status apache2
خروجی این دستور باید مشابه تصویر زیر باشد (وضعیت active و running):

اگر آپاچی اجرا نشده بود، ابتدا آن را استارت کنید:
sudo systemctl start apache2
همچنین با استفاده از دستور زیر تنظیم کنید که با هر بار ریاستارت شدن سرور، آپاچی به صورت خودکار اجرا شود:
sudo systemctl enable apache2
حالا اگر آدرس IP سرور خود را درون نوار آدرس مرورگر وارد کنید، باید صفحه پیشفرض آپاچی به شما نمایش داده شود.

توجه داشته باشید در صورتی که روی سرور شما فایروال نصب شده است، باید پورتهای موردنیاز آپاچی را در فایروال سرور خود مجاز کنید. مثلاً در فایروال UFW میتوانید از دستور زیر استفاده کنید:
sudo ufw allow "Apache Full"
مرحله ۳) نصب پایگاه داده MariaDB
در این مرحله، سراغ نصب MariaDB میرویم. MariaDB یک نسخه متنباز از MySQL است که اکثر شرکتهای ارائه خدمات هاستینگ نیز از همین موتور دیتابیس برای میزبانی پایگاه داده شما استفاده میکنند.
sudo apt install mariadb-server mariadb-client
پس از نصب MariaDB در اولین قدم و با اجرای دستور زیر، اسکریپت امنیتی را اجرا کنید تا تنظیمات ناامن پیشفرض حذف شوند (حذف کاربران ناشناس، غیرفعالکردن ورود از راه دور برای root و حذف دیتابیس تستی):
sudo mariadb-secure-installation
با اجرای این دستور، چند مرحله سوالاتی از شما پرسیده میشود که عبارتند از:
- تنظیم رمز عبور کاربر root دیتابیس
- حذف دسترسی کاربران ناشناس (anonymous) دیتابیس
- حذف دسترسی ریموت به دیتابیس
- حذف دیتابیس test
- بارگذاری مجدد جداول دسترسی
پاسخهای زیر میتوانند برای حالت پایه استفاده شوند:
Switch to unix_socket authentication? Y
Change root password? Y
Remove anonymous users? Y
Disallow remote root login? Y
Remove test database? Y
Reload privilege tables? Y
برای اطمینان از اجرای صحیح MariaDB، وضعیت سرویس را بررسی کنید:
sudo systemctl status mariadb
در خروجی این دستور، باید وضعیت سرویس در حالت active (running) باشد.
مرحله ۴) نصب PHP و ماژولهای لازم
در آخرین مرحله از نصب استک LAMP به سراغ زبان برنامهنویسی PHP میرویم. نسخه PHP در اوبونتو 24.04 به صورت پیشفرض 8.3 است. برای نصب نسخههای دیگر باید پسوند عددی نسخه مدنظر را به دستورات نصب، اضافه کنید.
ابتدا هسته PHP به همراه ماژول آپاچی و پکیج ارتباط با MySQL را با استفاده از دستور زیر نصب کنید:
sudo apt install php libapache2-mod-php php-mysql
لاراول، وردپرس و بسیاری از افزونههای آن به اکستنشنهای جانبی PHP نیاز دارند. این بستههای پرکاربرد را هم نصب کنید:
sudo apt install php-cli php-common php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-bcmath php-imagick php-zip unzip
سپس آپاچی را ریاستارت کنید تا تغییرات جدید بارگذاری شوند:
sudo systemctl restart apache2
برای اطمینان از نصب موفق PHP میتوانید در مسیر پیشفرض آپاچی یک فایل PHP ایجاد کنید:
sudo nano /var/www/html/info.php
حال در ادیتور متنی نانو، کد PHP زیر را بگذارید:
<?php phpinfo(); ?>
با زدن کلیدهای ترکیبی Ctrl + X فایل را ذخیره کرده و آدرس زیر را در مرورگر خود باز کنید:
http://192.168.100.101/info.php
در صورتی که مراحل نصب PHP و افزونههای آن را به درستی انجام داده باشید، باید مشخصات PHP به شما نمایش داده شود.
پس از اتمام تست، حتماً فایل info.php را حذف کنید؛ زیرا اطلاعات حساسی از پیکربندی سرور را افشا میکند:
sudo rm /var/www/html/info.php
تبریک! شما با موفقیت استک LAMP (شامل Apache و MariaDB و PHP 8.3) را روی اوبونتو 24.04 نصب کردید. حالا بستر کاملی برای اجرای اپلیکیشنهای PHP و سیستمهای مدیریت محتوا مانند وردپرس دارید. در نوشته بعدی، نصب وردپرس روی همین استک توضیح داده میشود.
سوالات متداول
-
تفاوت MariaDB و MySQL چیست؟
MariaDB یک نسخه متنباز و کاملاً سازگار با MySQL است که توسط اعضای سابق تیم MySQL توسعه داده میشود. روی اوبونتو، بسته MariaDB بهصورت پیشفرض از احراز هویت unix_socket استفاده میکند، یعنی با کاربر سیستم وارد کنسول میشوید.
-
چرا هنگام تست PHP فقط کد فایل نمایش داده میشود؟
این یعنی ماژول PHP آپاچی فعال نیست یا آپاچی پس از نصب PHP ریاستارت نشده است.
-
پورت ۸۰ بسته است و صفحه آپاچی باز نمیشود، چه کار کنم؟
فایروال را بررسی کنید. با UFW دستور
sudo ufw allow httpپورت ۸۰ را باز میکند تا درخواستهای HTTP به سرور برسند. -
ماژول PHP بهتر است یا PHP-FPM؟
برای سایتهای ساده، ماژول PHP آپاچی کافی و راحت است. PHP-FPM برای سایتهای پرترافیک یا زمانی که نیاز به مدیریت بهتر منابع و کارایی بالاتر دارید، گزینه مناسبتری است.