ابتدا باید دستورات 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. اعطای مجوز دسترسی
دسترسیهای لازم را به آپاچی و کاربر مورد نظر برای دسترسی به فولدر /var/html را میدهیم:
sudo chown -R $USER:www-data /var/www
sudo chmod -R 775 /var/www
sudo setfacl -R -m u:$USER:rwx,u:www-data:rwx /var/www
sudo setfacl -R -m d:u:$USER:rwx,d:u:www-data:rwx /var/www
بنا به نیاز خود باید دسترسی را تنظیم کنیم.
5. نصب php روی سرور
php را نصب میکنیم.
sudo apt install php
برای تست فایل test.php با محتوای زیر را ایجاد میکنیم.
<?php
echo 'hello!!';
?>
اکنون اگر دستور php test.php را در ترمینال اجرا کنیم باید نتیجه اجرا فایل php را ببینیم.
php test.php
>> hello!!
همچنین ماژول libapache2-mod-php را نصب میکنیم.
sudo apt install libapache2-mod-php
در صورتی که نسخه خاصی از PHP را لازم دارید میتوانید از این لینک استفاده کنید: نصب نسخه خاص PHP در ابونتو
6. قرار دادن محتوای سایت خود روی apache
وارد پوشه /var/www/html میشویم.
cd /var/www/html
ls
فایل index.html را با index.php جایگزین میکنیم.
فایل index.php :
<?php
echo 'hello !!!'
?>
میتوانیم محتوای و فایلهای سایت خود را در پوشه /var/www/html قرار دهیم. و آنرا در اینترنت روی مرورگر مشاهده کنیم.
باید دقت کرد که به طوری پیشفرض آپاچی فایل index.html را بعنوان فایل index میشناسد.
7. مشخص کردن 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
8. فعال کردن 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
آپاچی کانفیگهای بیشتری دارد، ولی برای راهاندازی اولیه به همین مقدار کفایت میکنیم.
9. نصب 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
همچنین بجای نصب و پیکربندی این موارد میتوانید داکر را نصب کنید و سپس پروژه خود را داکرایز کنید.