لفصل السجلات لتطبيقات NodeJS و Python و Ruby عند استخدام Passenger مع Apache، ستحتاج إلى تكوين Passenger لاستخدام ملفات سجلات منفصلة لكل تطبيق. يمكن تحقيق ذلك عن طريق إعداد Virtual Hosts لكل تطبيق وتحديد مسارات ملفات السجلات المخصصة.
إليك دليل خطوة بخطوة:
إنشاء Virtual Hosts منفصلة:
افتح ملف تكوين Apache (عادة ما يكون موجودًا في /etc/httpd/conf/httpd.conf
على Linux أو httpd.conf
في Windows). قم بإنشاء كتل VirtualHost
منفصلة لكل تطبيق كما يلي:
<VirtualHost *:80>
ServerName nodejs.example.com
DocumentRoot /path/to/your/nodejs/app
PassengerAppType node
PassengerStartupFile app.js
PassengerLogFile /var/log/nodejs/passenger.log
</VirtualHost>
<VirtualHost *:80>
ServerName python.example.com
DocumentRoot /path/to/your/python/app
PassengerAppType wsgi
PassengerStartupFile your_wsgi_file.py
PassengerLogFile /var/log/python/passenger.log
</VirtualHost>
<VirtualHost *:80>
ServerName ruby.example.com
DocumentRoot /path/to/your/ruby/app
PassengerAppType rack
PassengerStartupFile config.ru
PassengerLogFile /var/log/ruby/passenger.log
</VirtualHost>
استبدل /path/to/your/nodejs/app
و /path/to/your/python/app
و /path/to/your/ruby/app
بالمسارات الفعلية لتطبيقاتك.
إنشاء دلائل السجلات:
أنشئ دلائل للسجلات:
sudo mkdir /var/log/nodejs
sudo mkdir /var/log/python
sudo mkdir /var/log/ruby
تأكد من أن الدلائل لديها الأذونات اللازمة لعملية Apache الكتابة فيها.
إعادة تشغيل Apache:
بعد إجراء هذه التغييرات، قم بإعادة تشغيل Apache لتطبيق التغييرات:
sudo systemctl restart apache2 # لأنظمة تعتمد على systemd
أو
sudo service httpd restart # لأنظمة لا تعتمد على systemd
الآن، سيقوم Passenger بإنشاء ملفات سجلات منفصلة لكل تطبيق. ستكون ملفات السجلات في المواقع التالية:
/var/log/nodejs/passenger.log
/var/log/python/passenger.log
/var/log/ruby/passenger.log
ستحتوي هذه السجلات على المخرجات الخاصة بنوع التطبيق المعني (Node.js أو Python أو Ruby). ستظل ملف error.log
في Apache يحتوي على الأخطاء والسجلات العامة الخاصة بـ Apache.