#apache #cpanel #centos7 #cloudflare #easyapache-4
#apache #cpanel #centos7 #cloudflare #easyapache-4
Вопрос:
Я пытаюсь установить mod_cloudflare для Apache с помощью easyapache 4 на сервере cPanel. Я использую CentOS 7.2.
Я установил mod_cloudflare для EasyApache4, следуя инструкциям в разделе Вариант 2 здесь. После запуска установщика он сказал «Готово. Пожалуйста, перезапустите EasyApache 4 «. Затем я зашел в WHM -> EasyApache 4 и попытался найти серверный модуль, но его не удалось найти. Я нажал кнопку «запустить обновление системы» и попробовал еще раз, но безрезультатно. Существует ли служба easyapache, которую необходимо перезапустить через командную строку?
Я не хостинг-провайдер, поэтому я не пробовал плагин Cloudflare для cPanel.
* Редактировать 4/9/2019 * Изменение принятого ответа на EasyCo, поскольку исходное решение больше не работает.
Ответ №1:
Решил добавить свое решение в микс, используя Centos 6.9 с WHM / cPanel.
bash <(curl -s https://raw.githubusercontent.com/cloudflare/mod_cloudflare/master/EasyApache/installer.sh)
wget https://raw.githubusercontent.com/cloudflare/mod_cloudflare/master/mod_cloudflare.c
yum install ea-apache24-devel
apxs -a -i -c mod_cloudflare.c
rm /etc/apache2/conf.modules.d/mod_cloudflare.conf
service httpd restart
Что происходит?
- Мы используем cPanel
installer.sh
, как предложено Cloudflare, ноmod_cloudflare.so
при последующем запуске скомпилированный выдает ошибкуservice httpd restart
. Давайте исправим это. - Загрузите исходный
mod_cloudflare
файл. - Убедитесь, что у нас есть правильные инструменты разработчика EasyApache4 для сборки
mod_cloudflare
модуля. - Создайте и установите модуль расширения.
- Удалите новый
mod_cloudfare.conf
файл, поскольку мы предпочитаем тот, который был сгенерирован и установлен на шаге 1. - Перезапустите apache.
Примечание: mod_cloudflare
Модуль не будет отображаться в EasyApache4. Вы можете видеть, что он включен при запуске httpd -M | grep cloudflare
, и вы должны увидеть что-то вроде cloudflare_module (shared)
.
Ссылки:
Комментарии:
1. Результатом, который я получаю от этой
httpd ...
команды, является неприятная ошибка,httpd: Syntax error on line 259 of /etc/apache2/conf/httpd.conf: Syntax error on line 1 of /etc/apache2/conf.d/cloudflare.conf: Cannot load /usr/lib64/apache2/modules/mod_cloudflare.so into server: /usr/lib64/apache2/modules/mod_cloudflare.so: undefined symbol: ap_log_rerror
. Есть предложения? (Это после использования официального метода установки, как указано в OP)2. Итак, я просмотрел ваши инструкции, и это ЕДИНСТВЕННЫЙ метод, который я нашел, который действительно работает. Принятое решение и все другие, которые я нашел, не сработали. Спасибо за публикацию этого.
3. @inspirednz Нет проблем. Что вызвало проблему в вашем первом комментарии?
4. Официальный метод установки устанавливает
mod-cloudflare.so
то, что apache не нравится. Я удалил этот файл, а затем пошел с вашим методом. Проблема решена.5. это может быть очевидно для некоторых или, возможно, просто ситуативно, но httpd разбился после шага 3, вам нужно будет продолжить выполнение остальных шагов и запустить httpd, и все будет хорошо. Добавляю этот комментарий, потому что, если бы я знал, что этого ожидать, у меня не было бы сердечного приступа!
Ответ №2:
Я нашел решение, которое отлично работало.
Этот проект github устанавливает модуль и добавляет его в EasyApache, чтобы при будущих перестроениях модуль оставался активным. Это было единственное решение, которое я нашел, которое действительно работает для EasyApache 4. Все остальное, похоже, для EasyApache 3.
CloudFlare также не сильно помог с этим, поскольку они предложили мне обратиться за помощью к моему хостинг-провайдеру.
Комментарии:
1. Спасибо. Это сработало для меня. Возможно, он был установлен по инструкциям cloudflare, но пока я не следовал инструкциям на странице GitHub, он не отображался в модулях Easy Apache 4. И поддержка cloudflare в этом ужасна. Сильно устаревшие инструкции, и сотрудники службы поддержки понятия не имеют.
2. Это больше не работает. Этот проект на GitHub, по-видимому, давно не поддерживается, и репозиторий, из которого он указывает установить модуль, не работает. Уже довольно давно. См. Эту проблему ( github.com/JPerkster/ea-apache24-mod_cloudflare/issues/10 ). Единственное решение, которое я нашел, которое работает, — это ответ, опубликованный EasyCo. На мой взгляд, этот ответ должен быть отмечен как правильный ответ на данный момент.
Ответ №3:
Я знаю, что это немного устарело, но это первый ответ, который появляется в Google.
Официальный ответ cloudflare действительно работает, он просто не отображается в списке модулей EA4. Однако он установлен и работает.
Комментарии:
1. См. Комментарий Джеймса А. Ниже.
Ответ №4:
Только для таких, как я, которые недавно добрались сюда, модуль mod_cloudflare устарел, и для apache есть собственный модуль [mod_remoteip]. Я вижу это в EasyApache (раздел модуля apache). Также здесь есть руководство по установке и настройке :
https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs
с помощью этого модуля вы можете видеть IP-адрес клиента через
$_SERVER['REMOTE_ADDR']
И нет необходимости
$_SERVER['HTTP_CF_CONNECTING_IP']
Ответ №5:
Инструкции по установке mod_cloudflare на cPanel с EasyApache4 можно найти здесь: https://support.cloudflare.com/hc/en-us/articles/206175737-How-do-I-restore-original-visitor-IP-with-EasyApache-cPanel-
bash <(curl -s https://raw.githubusercontent.com/cloudflare/mod_cloudflare/master/EasyApache/installer.sh)
Комментарии:
1. То, как вы предложили, уже упоминалось в ссылке, предоставленной OP. Когда вы это сделаете, вывод будет «Готово. Пожалуйста, перезапустите EasyApache 4 «. Это именно его проблема, потому что даже после того, как вы установили его с помощью этой команды, опция включения mod_clouodflare в EasyApache4 не появляется.