در این پست یک وب سرور با استفاده از php و nginx روی سیستم عامل ابونتو 22.04 راه اندازی کردیم و وب سایت خود را روی آن آپلود کردیم
ابتدا باید دستورات update و upgrade را در ترمینال اجرا کرد. ما برای راه اندازی وب سرور از ابونتو 22.04 استفاده کردیم.
sudo apt update & upgrade clear
ما میتوانیم از وب سرورهای مختلفی همچون آپاچی، nginx و ... استفاده کنیم. ما nginx را انتخاب کردیم. برای نصب nginx کافیست دستورات زیر را در ترمینال وارد کنیم.
sudo apt install nginx
اکنون با وارد کردن ip سرور خود در مرورگر باید صفحه زیر به شما نمایش داده شود.
البته حالتی هم جود دارد که فایروال مجوز دسترسی nginx به بیرون را ندهد. برای حل این موضوع باید فایروال را تنظیم کنید.
ابتدا فایروال را فعال میکنیم.
sudo ufw enable
ممکن است بعد از فعال کردن فایروال نتوانیم از طریق ip صفحه apache را مشاهده کنیم.
توجه کنید: ممکن است بعد از وارد کردن این دستور ارتباط ssh شما با سرور قطع شود. یا در دفعات بعد نتوانید با putty به سرور متصل شوید. برای این امر در ترمینال دستور زیر را وارد کنید .
sudo ufw allow 22/tcp
برای دسترسی nginx به بیرون از سرور ممکن است نیازمند باز کردن پورت توسط فایروال باشیم. برای مشاهده لیست برنامه هایی که نیازمند مجوز فایروال هستند دستور زیر را وارد میکنیم.
sudo ufw app list
قاعدتا باید با چنین لیستی روبرو شویم.
با دستور زیر به nginx روی پورت 80 مجوز دسترسی میدهیم.
sudo ufw allow 'Nginx Full'
اکنون اگر دستور زیر را در ترمینال وارد کنید، باید با چنین صحنه ای مواجه شوید که nginx به پورت 80 مجوز دسترسی دارد. همچنین دوباره قادر خواهید بود صفحه nginx در مرورگر را مشاهده کنید.
برای غیر فعال کردن nginx روی سرور از دستور زیر استفاده میکنیم.
sudo systemctl stop nginx
همچنین برای فعال کردن nginx از دستور زیر استفاده میکنیم.
sudo systemctl start nginx
برای ری استارت یا راه اندازی مجدد nginx هم از دستور زیر استفاده میکنیم.
sudo systemctl restart nginx
ابتدا php-fpm را نصب میکنیم.
sudo apt install php-fpm
باید مقدار cgi.fix_pathinfo را در فایل php.ini پیدا کنیم. دقت کنید که در حال حاضر نسخه 8.1 پی اچ پی روی سرور من نصب شده است.
sudo nano /etc/php/8.1/fpm/php.ini
cgi.fix_pathinfo را در این فایل پیدا میکنیم. با حذف علامت ; قبل از آن از حالت کامنت خارج میکنیم. همیچین مقدار آنرا برابر با 1 قرار میدهیم.
cgi.fix_pathinfo=1
سپس php-fpm را ریاستارت مجدد میکنیم.
sudo systemctl restart php7.0-fpm
وارد پوشه /var/www/html میشویم.
cd /var/www/html ls
فایل index.nginx-debian.html را با index.php جایگزین میکنیم.
فایل index.php :
echo 'hello !!!'
اکنون اگر دامنه یا ip سرور خود را در مرورگر وارد کنیم با تصویر زیر روبرو میشویم.
برای اجرای پردازشهای php نیازمند تغییر در کانفیگهای nginx هستیم. دستور زیر را در ترمینال وارد میکنیم:
sudo nano /etc/nginx/sites-available/default
در این فایل index.php را به لیست index ها اضافه میکنیم.
همچنین در این فایل باید قیسمت های زیر را از حالت کامنت خارج کنیم. همچنین دقت کنید نسخه php هم درست تنظیم شود. 7.4 پیشفرض را من به 8.1 تغییر دادم.
سپس دستور زیر را در ترمینال وارد کنید تا تغییرات اعمال شود.
sudo nginx -t sudo systemctl reload nginx
میتوانیم محتوای و فایلهای سایت خود را در پوشه /var/www/html قرار دهیم. و آنرا در اینترنت روی مرورگر مشاهده کنیم.
برای وب سایت خود قاعدتا نیاز به پایگاه داده خواهیم داشت. در 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