در این پست وب سرور با استفاده از آپاچی راه اندازی میکنیم و وب سایت php و mysql خود را روی آن در اینترنت منتشر میکنیم.
ابتدا باید دستورات update و upgrade را در ترمینال اجرا کرد. ما برای راه اندازی وب سرور از ابونتو 22.04 استفاده کردیم.
sudo apt update
sudo apt upgrade
clear
ما میتوانیم از وب سرورهای مختلفی همچون آپاچی، nginx و ... استفاده کنیم. ما آپاچی را انتخاب کردیم. برای نصب آپاچی کافیست دستورات زیر را در ترمینال وارد کنیم.
sudo apt install apache2
اکنون با وارد کردن ip سرور خود در مرورگر باید صفحه زیر به شما نمایش داده شود.
البته حالتی هم جود دارد که فایروال مجوز دسترسی آپاچی به بیرون را ندهد. برای حل این موضوع باید فایروال را تنظیم کنید.
ابتدا فایروال را فعال میکنیم.
sudo ufw enable
ممکن است بعد از فعال کردن فایروال نتوانیم از طریق ip صفحه apache را مشاهده کنیم.
توجه کنید: ممکن است بعد از وارد کردن این دستور ارتباط ssh شما با سرور قطع شود. یا در دفعات بعد نتوانید با putty به سرور متصل شوید. برای این امر در ترمینال دستور زیر را وارد کنید .
sudo ufw allow 22/tcp
برای دسترسی آپاچی به بیرون از سرور ممکن است نیازمند باز کردن پورت توسط فایروال باشیم. برای مشاهده لیست برنامه هایی که نیازمند مجوز فایروال هستند دستور زیر را وارد میکنیم.
sudo ufw app list
قاعدتا باید با چنین لیستی روبرو شویم.
با دستور زیر به آپاچی روی پورت 80 مجوز دسترسی میدهیم.
sudo ufw allow 'Apache Full'
اکنون اگر دستور زیر را در ترمینال وارد کنید، باید با چنین صحنه ای مواجه شوید که آپاچی به پورت 80 مجوز دسترسی دارد. همچنین دوباره قادر خواهید بود صفحه آپاچی در مرورگر را مشاهده کنید.
برای غیر فعال کردن آپاچی روی سرور از دستور زیر استفاده میکنیم.
sudo systemctl stop apache2
همچنین برای فعال کردن آپاچی از دستور زیر استفاده میکنیم.
sudo systemctl start apache2
برای ری استارت یا راه اندازی مجدد آپاچی هم از دستور زیر استفاده میکنیم.
sudo systemctl restart apache2
ابتدا 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
وارد پوشه /var/www/html میشویم.
cd /var/www/html
ls
فایل index.html را با index.php جایگزین میکنیم.
فایل index.php :
echo 'hello !!!'
میتوانیم محتوای و فایلهای سایت خود را در پوشه /var/www/html قرار دهیم. و آنرا در اینترنت روی مرورگر مشاهده کنیم.
باید دقت کرد که به طوری پیشفرض آپاچی فایل index.html را بعنوان فایل index میشناسد.
برای اینکه به آپاچی بفهمانیم که فایل index.php را به عنوان فایل index در نظر بگیرد باید فایل apache2.conf را ویرایش کنیم.
cd /etc/apache2
sudo nano apache2.conf
کد زیر را به این فایل اضافه میکنیم :
DirectoryIndex index.php index.html
با این کد به آپاچی میفهمانیم که ابتدا باید index.php را بعنوان فایل index در نظر بگیرد.
برای اعمال تنظیمات باید آپاچی را راهاندازی مجدد کنیم.
sudo systemctl restart apache2
برای استفاده از ویژگی 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
آپاچی کانفیگهای بیشتری دارد، ولی برای راهاندازی اولیه به همین مقدار کفایت میکنیم.
برای وب سایت خود قاعدتا نیاز به پایگاه داده خواهیم داشت. در 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
همچنین بجای نصب و پیکربندی این موارد میتوانید داکر را نصب کنید و سپس پروژه خود را داکرایز کنید.