سؤال كيفية التحقق من وحدات apache التي تم تمكينها / تثبيتها؟


ما هي الطريقة الأكثر أناقة للتحقق من تمكين وحدات apache؟


347
2018-05-17 19:55


الأصل




الأجوبة:


أنت على Ubuntu لذا جرب:

apache2ctl -M

423
2018-05-17 20:01



apache2ctl -M يعمل بشكل رائع - udo
apache2 -M النتائج في هذا الخطأ apache2: bad user name ${APACHE_RUN_USER} - udo
عادل بما فيه الكفاية - يرجع ذلك إلى حقيقة أنك لا تقوم بتشغيل الأمر كمستخدم وقت تشغيل apache (ربما www-data) المعرفة في تكوين apache. هناك طريقة لإصلاح هذا ولكنك قد تلتصق أيضًا بـ apache2ctl. - Linker3000
sudo apache2ctl -M | sort - mmdemirbas
لاحظ أن هناك العديد من الخيارات المفيدة (العلامات) apache2ctl لكنها ليست مدرجة في manpage ولا في apache2ctl --help. هذا لأنه يتم تسليمها إلى httpd. وهي مدرجة في وثائق httpd فقط. - Lutz Prechelt


httpd -M سوف يخبرك الوحدات المدمجة أو المشتركة.


108
2018-05-17 19:56



هم ... أنا الحصول على "باش: httpd: الأمر غير موجود" عند إطلاق httpD -M كجذر - udo
ثم حدد المسار الكامل إلى httpd تنفيذ. - Ignacio Vazquez-Abrams
@ IgnacioVazquez-Abrams: على Ubuntu (والتوزيعات الأخرى القائمة على Debian) ، الاسم apache2و لا httpd، ولهذا السبب لم يتم العثور عليه. - Daniel Andersson
أباتشي هو httpd على redhat. جرب واحدة من الإجابات الأخرى إذا لم يعمل هذا لك. - Jacks_Depression
يستخدم CentOS أيضًا httpd بدلاً من apache2 - pedromanoel


لا شيء من الإجابات أعلاه يعمل إذا لم تتمكن من تشغيل الأوامر على الخادم البعيد. إذا كان لديك امتيازات "المستخدم" فقط أو إذا لم تكن لديك أي امتيازات على الإطلاق ، فحاول إنشاء ذلك test.php النصي:

<pre>
<?php
print_r(apache_get_modules());
?>
</pre>

على الرغم من أنها ستعمل فقط إذا تم تثبيت PHP mod_php.


35
2018-04-11 09:10



أيضًا ، لن تحتاج إلى أن يكون هذا مرئيًا بشكل عام. قد ترغب في تقييد هذه النتيجة إلى العميل مع IP المسؤول. وستحتاج إلى إزالة هذا النص البرمجي بمجرد الانتهاء من استخدامه. لأن الدفاع في العمق ؛ لا تجعل الأمر أسهل مما يجب. - Parthian Shot


ربما يساعد هذا الأمر بعض الأشخاص على المضيفين المشتركين الذين لا يستطيعون الوصول إليه httpd، apachectl أو العمليات:

الوحدات الممكّنة: ls /etc/apache2/mods-enabled/

الوحدات المتاحة: ls /etc/apache2/mods-available/


20
2018-05-04 11:33



هنا قائمة كاملة ، و apache2ctl تصفية لهم - jgpATs2w


تستطيع ايضا استخذام apachectl

apachectl -t -D DUMP_MODULES

17
2018-02-06 07:04





أعتقد أن هناك بالفعل ثلاثة أسئلة هنا. لست متأكدًا مما تطلبه.

  • ما هي الوحدات التي لديك على القرص. ما هي جميع الوحدات التي يمكنك استخدامها.

هذا سيكون (عادة) في دليل الوحدات لتوزيع اباتشي الخاص بك ، عادة / etc / httpd / modules /

  • ما هي الوحدات النمطية أي مثيل معين تم تكوينه للتشغيل.

يمكن التحقق من ذلك مع / usr / sbin / httpd -M ، على الأقل من أجل apache الأساسي للنظام. إذا كنت تريد التحقق من ملف تهيئة محدد / usr / sbin / httpd -M -f / path / إلى / config / file

  • ما في اباتشي قيد التشغيل

للحصول على الكثير من المعلومات ، يمكنك رؤيتها باستخدام HTTP: // MACHINENAME / خادم معلومات / لم يتم تكوين هذا بشكل افتراضي ، يجب عليك تهيئة في. من تسرب المعلومات ، حتى تكوينه بحيث يمكن فقط المحلية رؤيته.

إذا كنت على الجهاز ولديك إمكانية الوصول ليكون المستخدم الذي يعمل بشكل صحيح ، يمكنك أيضًا مشاهدة ما تم تحميله من خلال التحقق من العملية. يمكنك العثور على العملية الرئيسية مع:

ps -ef | gawk '/httpd/ && $3 == 1{print $2}'

ثم تحقق من

cat /proc/PID_FROM_ABOVE/maps

11
2018-05-17 20:57



معلومات مفيدة ولكن لأن OP يستخدم Ubuntu ، تختلف أسماء ومواقع الملفات - على سبيل المثال: / usr / sbin / apache2 بدلاً من httpd ، و ps -ef | gawk '/ apache2 / && $ 3 == 1 {print $ 2}' يتم التعامل مع موقع الوحدات النمطية بشكل مختلف ، مع المجلدات الفرعية المتوفرة Mods-modable و Mods - Linker3000
شكرا @ Linker3000 ... أنت على حق ، وهذا هو ل RedHat / Centos ، سأدع تعليقك يقف على كيفية تحويل إلى أوبونتو - Rich Homolka


إذا كنت في Redhat / CentOS ، httpd يستخدم بدلا من apache2ctl.

هذا يعني أنك بحاجة إلى استخدام

httpd -M

ومع ذلك، httpd يكاد لا يكون في المسار الذي تتوقعه.

أستطيع أن أؤكد على CentOS 5.8 المسار الفعلي /usr/sbin/httpd.

/usr/sbin/httpd -M

ولكن إذا لم يكن هذا هو المسار ، يمكنك اكتشافه. هنا كيف استطعت القيام بذلك.

أولاً ، فحصت البرنامج المستخدم للتحكم فيه.

less /init.d/httpd

حول الخط 40ish

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd

الذي قال لي بالضبط أين يمكن العثور عليه. أتمنى أن يساعدك هذا.


10
2018-03-11 18:41