استفاده از اپاچی هم زمان برای phpو django

python

#1

سلام خدمت همه عزیزان
وب سرور من اپاچی هستش و وب سایت من که با php نوشته شده روی آن قرار دارد و من الان با جنگو یه پروژه درست کردم و میخواستم توی یکی از زیر دامنه های وب سایتم قرارش بدم خوب الان چکار کنم که کنفینگ جنگو درست بشه در صورتی که php خراب نشه
با سپاس از عزیزان


#2

خوب آیا نیازی به apache هست؟
میتونید کلا apache رو پاک کنید و به جاش nginx نصب کنید و با استفاده از nginx هم فایلهای php پروژه‌ی قبلی رو پردازش کنید و هم از nginx استفاده کنید برای پراکسی پروژه‌ی جدید.


#3

یا باید از mod-proxy استفاده کنین یا از mod-python به مستندات apache که سر بزنید در مورد هر دو کلی اطلاعات هست


#4

میشه بیشتر توضیح بدین


#5

خوب قبل از هر چیزی بگم که اگر روی سرور شما، سیستمی مثل direct admin نصب هست، کلا بیخیال این مساله بشید و یه سرور دیگه بگیرید برای این کار.
چون دایرکت ادمین نسخه‌ی آپاچی مخصوص خودش رو داره و هر مدل دست‌کاری کردن نرم‌افزارها میتونه باعث خرابی کلی سیستم بشه.

ولی اگر سیستم مدیریت نرم‌افزار خاصی ندارید:
یه بخشی از کار که مربوط میشه به پاک کردن apache و نصب nginx میشه. توی اینترنت آموزشهای خیلی خوبی هست برای نصب و کانفیگ nginx+php-fpm. پیشنهاد میکنم با آموزشهای digital ocean پیش برید. اصولا بهتر هستن.
بعد از اینکه nginx نصب کردید و سایتی که با php نوشتید رو روش کانفیگ کردید و همه چیز شبیه روز اول بود و خیالتون راحت شد که همه‌چیز درست کار میکنه، اون زمان کانفیگ سایت پایتون شروع میشه.
یه بخشی از deploy کردن پروژه‌ی پایتون، مربوط به فریموورکی که استفاده میکنید و داکیومنت خودش میشه. مثلا اینکه با استفاده از uwsgi پروژه رو راه بندازید و براش daemon بسازید (یه فایل کانفیگ توی /etc/systemd/system/myproject.service) که این هم بهتره از داکیومنت جنگو استفاده کنید.
تا حالا با جنگو پروژه‌ی دنیای واقعی نزدم ولی مسلما یه جایی توی داکیومنت‌هاش باید توضیحات کامل برای deploy کردن سایت روی nginx داده باشه.

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


برای روشن سازی مراحل کار:

  • نصب و کانفیگ nginx+php-fpm+php7 و کانفیگ کردنش برای هندل کردن urlهایی که مربوط به پروژه‌ی php هستن
  • ساختن یک یوزر و کپی کردن پروژه‌ی جنگو به دایرکتوری
/home/<username>/<project_name>
  • ساخت virtualenv و نصب پکیجها و تست کار کردن وبسایت به صورت لوکال (همونطوری که توی کامپیوتر خودتون پروژه رو ران میکنید)
  • ساخت فایل کانفیگ uwsgi و فایل کانفیگ daemon که قراره به وسیله‌ی uwsgi پروژه رو روشن نگه داره
  • کانفیگ کردن nginx برای هندل کردن urlهای سایت جنگو و انتقال ترافیک به پورتی که توی فایل کانفیگ uwsgi ست شده (پورت سوکت uwsgi)

البته به جای پورت، میشه سوکت رو به شکل فایل ایجاد کرد. در کل با توجه به داکیومنتهای جنگو پیش برید بهتره.
توی این بخش از کار، ممکنه فایروال سرور (selinux یا apparmor) به nginx اجازه‌ی دسترسی به اون پورت یا فایل رو نده. در این صورت باید یه مقدار کانفیگ انجام بشه. اگه توی این بخش گیر کردید، بپرسید راهنمایی میکنیم.


#6

اگه هم زمان از هر دوتا وب سرور استفاده کنم مشکلی پیش نمیاد


#7

هر دو وب‌سرور، دارن به پورت ۸۰ و احتمالا ۴۴۳ گوش میکنن (listen) و هیچوقت دوتا نرم‌افزار نمیتونن به یه پورت متصل باشن.
پس امکانش نیست.

البته میتونید nginx رو کانفیگ کنید که به جای پورت 80 به یه پورت دیگه مثلا 8080 وصل باشه.
که در این صورت کاربرهای شما باید دامنه‌ی شما رو اینطور وارد کنن:

site.com:8080

مسلما نمیخواید این اتفاق بیفته.


پ.ن:
پورت پیشفرض http روی 80 هست و https روی 443
یه سری پورت هم هست که برای تست استفاده میشه مثل 8000، 8080 و 8888 که صرفا برای تست هست و کسی برای نگهداری سایت از این پورتها استفاده نمیکنه.


#8

خوب الان قرار بر این گذاشتم که وب سرور سایتم رو از اپاچی به nginx تغییر بدم ممنون میشم کمک کنین


#9

گفتم که. اینطوری نمیشه کمک کرد.
شما باید توی اینترنت سرچ کنید درمورد نصب nginx روی لینوکسی که دارید. مثلا:

how to install lemp server on ubuntu 18.10

و با آموزشها پیش برید. هرجا که به مشکل خوردید بپرسید کمک میکنیم.


#10

https://parspack.com/news/tutorial/366-آموزش-نصب-وب-سرور-nginx-بر-روی-سیستم-عامل-centos-و-دایرکت-ادمین


#11

من طبق این مقاله پیش رفتم ولی وقتی فایل ها رو باز میکنم میگه وجود ندارن یا چیزه های که اینجا گفته داخلشون نیست
مثلا توی فایل vim /etc/nginx/nginx.conf
این ها وجود نداشتن

worker_processes  2;

gzip on;


#12

من همیشه آموزشهای digital ocean رو پیشنهاد میکنم.

اگه لینوکس شما centos نیست یا ورژنش ۷ نیست، دنبال یه آموزشی بگردید که مطابق با توضیع و ورژن شما باشه.


#13

من nginx رو نصب کردم ولی الان این فایل وجود نداره
vim /etc/nginx/conf.d/default.conf


#14

پس احتمالا تمام کانفیگهایی که باید توی اون دایرکتوری باشه، توی فایل /etc/nginx/nginx.conf هست.


#15

دوستان من با موفقیت تغییرش دادم ولی الان یه مشکل دارم این که فقط صفحه اول سایتم بالا میاپ و صفحه ها دیگه رو پیدا نمیکنه
سایتم
mahekan.com


#16

خوب این که الآن به apache وصله.
صفحه‌های دیگه رو هم تست کردم بالا میومدن.


#17

نه اولش تغییر دادم بعد که خراب شده بود به پشتیبانی سرور گفتم باز ببرن به اپاچی و بعدش درست شد
گفتم باید به اپاچی برگردونی


#18

الان هم میخوام از اپاچی استفاده کنم
و پروژه جنگو خودمو روی یکی از ساب دامین های سایتم بزارم ایا امکانش هست
چون خود سایت با phpهستش


#19

من تجربش رو ندارم ولی باید از mod-proxy یا mod-python استفاده کنید. همونطور که سمیر عزیز اشاره کردن.