Arvan Docs

مستندات فنی

دسترسی به تمامی مستندات محصولات ابر آروان

دسته‌بندی‌های سایت مشاهده دسته‌بندی‌ها بستن دسته‌بندی‌ها

مشاهده همه دسته‌ها

رفع ایراد خطاهای Apache برای Jenkins

Time To Read ۲ دقیقه
Date ۲۴ فروردین ۱۴۰۰

زمانی که Apache شروع به کار می‌کند، دو فایل log به ترتیب در /opt/bitnami/apache2/logs/access_log و /opt/bitnami/apache2/logs/error_log ایجاد می‌شوند.

  • از access_log برای ره‌گیری درخواست‌های client استفاده می‌شود. زمانی که client درخواست فایلی را به سمت سرور ارسال می‌کند، آپاچی چند مشخصه‌ی مرتبط با آن درخواست چون آدرس IP آن client، فایل درخواست شده، کد وضعیت HTTP و زمان درخواست را در این فایل ذخیره می‌کند.
  • از error_log برای ثبت اتفاقات مهم استفاده می‌شود. این فایل شامل پیام‌های خطا، پیام‌های راه‌اندازی و هر اتفاق قابل‌توجه دیگری است که در چرخه‌ی حیات سرور اتفاق می‌افتد. هنگام استفاده از آپاچی و زمان مواجه شدن با یک مشکل، این فایل اولین فایلی است که باید بررسی شود.

اگر هیچ خطایی وجود نداشته باشد با چنین پیامی مواجه خواهید شد:

Syntax OK

خطاهای راه‌اندازی

  • بررسی فایل error_log آپاچی

برای این کار فایل error_log را از مسیر /opt/bitnami/apache2/logs/error_log باز کنید تا اطلاعاتی درباره‌ی دلیل خطای اتفاق افتاده به دست بیاورید.

  • بررسی کنید که پورت موردنظر مشغول نباشد

اگر فرآیند دیگری در حال استفاده از پورت موردنظر شما باشد، چنین پیامی دریافت می‌کنید:

(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:port_number
no listening sockets available, shutting down

برای پی بردن به این‌که چه فرآیندی در حال استفاده از پورت موردنظر است، می‌توانید از دستور cmd زیر استفاده کنید:

sudo netstat -ltnp | grep :port_number

در ستون انتهایی می‌توانید ID یا نام فرآیند مذکور را مشاهده کنید. سپس از دستور زیر استفاده کنید:

ps aux | grep process_name

در ستون دوم دنبال pid بگردید تا اطلاعات بیش‌تری درباره‌ی آن فرآیند به دست بیاورید.

اگر فرآیند دیگری در حال استفاده از پورت موردنظر بود یا پورت را تغییر داده و از پورت دیگری استفاده کنید، یا آن فرآیند را متوقف کنید.

  • بررسی مجوزها و مالکیت

بررسی کنید که آیا Apache مجوز اتصال به پورت درخواست‌ شده را دارد یا خیر. برای اتصال Apache  به پورت‌های خاص، آن را در حالت کاربر root اجرا کنید. اگر مجوز اتصال Apache به برخی پورت‌ها را نداشته باشید با چنین پیامی مواجه خواهید شد:

(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:port_number
no listening sockets available, shutting down

اگر Apache قادر به باز کردن فایل log یا پیکربندی نیست، بررسی کنید که آیا مالک این فایل‌ها همان کاربری‌ است که Apache را نصب کرده و اگر جواب مثبت بود، آیا مجوز نوشتن در فایل‌های log و مجوز خواندن فایل پیکربندی را دارد یا نه. اگر ایراد از این بخش باشد چنین پیام‌های خطایی دریافت می‌کنید:

(13)Permission denied: AH00649: could not open transfer log file .../access_log.
AH00015: Unable to open logs

(13)Permission denied: AH00091: httpd: could not open error log file .../error_log.
AH00015: Unable to open logs

httpd: Could not open configuration file .../httpd.conf: Permission denied
apache config test fails, aborting

خطاهای SSL

پیام «Your connection to this site is only partially encrypte» زمانی نمایش داده می‌شود که شما SSL را برای سایت‌ خود فعال کرده‌اید، اما در صفحه‌ی وب‌‌سایت شما آدرس‌های HTTP رمزنگاری نشده‌ای وجود دارد.

برای اطلاع از این‌که آیا ایراد از این موضوع است یا خیر، صفحه‌ی موردنظر را باز کنید و دنبال هر لینکی بگردید که با http:// شروع می‌شود. برای حل این مشکل theme یا قالب‌های خود را به‌شکل دستی به‌روزرسانی کنید و تمام آدرس‌های http:// را با //: جایگزین کنید. برای نمونه:

<img src='//example.com/img.png'/>

نکته: بنا به دلایل امنیتی هرگز کلید محرمانه‌ی سرور SSL خود را در فروم‌های عمومی فاش نکنید!