راه اندازی وب سرور آپاچی، php ، mysql روی ابونتو 22.04

در این پست وب سرور با استفاده از آپاچی راه اندازی میکنیم و وب سایت php و mysql خود را روی آن در اینترنت منتشر میکنیم.

ابتدا باید دستورات update و upgrade را در ترمینال اجرا کرد. ما برای راه اندازی وب سرور از ابونتو 22.04 استفاده کردیم.


sudo apt update
sudo apt upgrade
clear
    

1. نصب وب سرور

ما میتوانیم از وب سرورهای مختلفی همچون آپاچی، nginx و ... استفاده کنیم. ما آپاچی را انتخاب کردیم. برای نصب آپاچی کافیست دستورات زیر را در ترمینال وارد کنیم.


sudo apt install apache2
    

اکنون با وارد کردن ip سرور خود در مرورگر باید صفحه زیر به شما نمایش داده شود.

راه اندازی آپاچی در ابونتو

البته حالتی هم جود دارد که فایروال مجوز دسترسی آپاچی به بیرون را ندهد. برای حل این موضوع باید فایروال را تنظیم کنید.

2. تنظیم فایروال

ابتدا فایروال را فعال میکنیم.


sudo ufw enable
    
فعال کردن فایروال در ابونتو

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

توجه کنید: ممکن است بعد از وارد کردن این دستور ارتباط ssh شما با سرور قطع شود. یا در دفعات بعد نتوانید با putty به سرور متصل شوید. برای این امر در ترمینال دستور زیر را وارد کنید .


sudo ufw allow 22/tcp
    

برای دسترسی آپاچی به بیرون از سرور ممکن است نیازمند باز کردن پورت توسط فایروال باشیم. برای مشاهده لیست برنامه هایی که نیازمند مجوز فایروال هستند دستور زیر را وارد میکنیم.


sudo ufw app list
    

قاعدتا باید با چنین لیستی روبرو شویم.

لیست برنامه های منتظر تایید فایروال در ابونتو

با دستور زیر به آپاچی روی پورت 80 مجوز دسترسی میدهیم.


sudo ufw allow 'Apache Full'
   
فعال کردن آپاچی روی فایروال

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

3. آپاچی در سرویسهای ابونتو

برای غیر فعال کردن آپاچی روی سرور از دستور زیر استفاده میکنیم.


sudo systemctl stop apache2
    

همچنین برای فعال کردن آپاچی از دستور زیر استفاده میکنیم.


sudo systemctl start apache2
    

برای ری استارت یا راه اندازی مجدد آپاچی هم از دستور زیر استفاده میکنیم.


sudo systemctl restart apache2
    

4. نصب php روی سرور

ابتدا php را نصب میکنیم.


sudo apt install php
    

برای تست فایل test.php با محتوای زیر را ایجاد میکنیم.



echo 'hello!!';

    

اکنون اگر دستور php test.php را در ترمینال اجرا کنیم باید نتیجه اجرا فایل php را ببینیم.


php test.php
>> hello!!
    

همچنین ماژول libapache2-mod-php را نصب میکنیم.


sudo apt install libapache2-mod-php  
    

5. قرار دادن محتوای سایت خود روی apache

وارد پوشه /var/www/html میشویم.


cd /var/www/html
ls
    

فایل index.html را با index.php جایگزین میکنیم.

فایل index.php :



echo 'hello !!!'

    

میتوانیم محتوای و فایلهای سایت خود را در پوشه /var/www/html قرار دهیم. و آنرا در اینترنت روی مرورگر مشاهده کنیم.

باید دقت کرد که به طوری پیشفرض آپاچی فایل index.html را بعنوان فایل index می‌شناسد.

6. مشخص کردن DirectoryIndex در آپاچی

برای اینکه به آپاچی بفهمانیم که فایل index.php را به عنوان فایل index در نظر بگیرد باید فایل apache2.conf را ویرایش کنیم.


cd /etc/apache2
sudo nano apache2.conf
    

کد زیر را به این فایل اضافه میکنیم :


DirectoryIndex index.php index.html
    

با این کد به آپاچی میفهمانیم که ابتدا باید index.php را بعنوان فایل index در نظر بگیرد.

فعال کردن آپاچی روی فایروال

برای اعمال تنظیمات باید آپاچی را راه‌اندازی مجدد کنیم.


sudo systemctl restart apache2
    

7. فعال کردن RewriteMode در آپاچی

برای استفاده از ویژگی rewrite در آپاچی باید این خاصیت را فعال نمود، برای اینکار دوکار میتوانیم انجام دهیم. دوباره به سراغ apache2.conf می‌رویم:


cd /etc/apache2
sudo nano apache2.conf
    

خط مشخص شده در تصویر را پیدا میکنیم.

فعال کردن آپاچی روی فایروال

و به صورت زیر تغییر می‌دهیم :


AllowOverride All
    
فعال کردن آپاچی روی فایروال

سپس آپاچی را restart میکنیم :


sudo systemctl restart apache2
    

همچنین میتوانیم از دستور زیر هم برای فعال کردن rewrite_mode استفاده کنیم :


sudo a2enmod rewrite
sudo systemctl restart apache2
    
آپاچی کانفیگهای بیشتری دارد، ولی برای راه‌اندازی اولیه به همین مقدار کفایت میکنیم.

8. نصب mysql

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


sudo apt install mysql-server -y
    

بعد از نصب mysql نیاز به تعیین یک رمز عبور برای کاربر root داریم که از دستورات زیر استفاده میکنیم.


sudo mysql
>> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
    

رمز عبور خود را بجای mynewpassword قرار دهید که باید شامل حروف بزرگ و کوچک ، اعداد و کاراکترهایی مثل @ باشد.

برای اتصال به دیتابیس mysql در php پکیج php-mysql را نصب میکنیم.


sudo apt install php-mysql
    

همچنین بجای نصب و پیکربندی این موارد میتوانید داکر را نصب کنید و سپس پروژه خود را داکرایز کنید.