راه اندازه وب سرور nginx و php روی لینوکس ابونتو 22.04

در این پست یک وب سرور با استفاده از php و nginx روی سیستم عامل ابونتو 22.04 راه اندازی کردیم و وب سایت خود را روی آن آپلود کردیم

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

 sudo apt update & upgrade clear     

1. نصب وب سرور

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

 sudo apt install nginx     

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

راه اندازی nginx در ابونتو

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

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

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

 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 روی فایروال

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

3. nginx در سرویسهای ابونتو

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

 sudo systemctl stop nginx     

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

 sudo systemctl start nginx     

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

 sudo systemctl restart nginx     

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

ابتدا 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
 cgi.fix_pathinfo=1     

سپس php-fpm را ریاستارت مجدد میکنیم.

 sudo systemctl restart php7.0-fpm     

5. فعال کردن php روی nginx

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

 cd /var/www/html ls     

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

فایل index.php :

  echo 'hello !!!'      

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

صفحه 403 nginx

برای اجرای پردازشهای php نیازمند تغییر در کانفیگهای nginx هستیم. دستور زیر را در ترمینال وارد میکنیم:

 sudo nano /etc/nginx/sites-available/default     

در این فایل index.php را به لیست index ها اضافه میکنیم.

اضافه کردن index.php به index در nginx

همچنین در این فایل باید قیسمت های زیر را از حالت کامنت خارج کنیم. همچنین دقت کنید نسخه php هم درست تنظیم شود. 7.4 پیشفرض را من به 8.1 تغییر دادم.

فعالسازی php در nginx
فعالسازی php در nginx

سپس دستور زیر را در ترمینال وارد کنید تا تغییرات اعمال شود.

 sudo nginx -t sudo systemctl reload nginx     

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

6. نصب 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     

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