LINUX.ORG.RU
ФорумAdmin

На Debian 7 при запущенном Apache2 не работает сайт

 , , ,


0

1

Здравствуйте, я в линукс новичок, есть сайт и apache2 гуглил как это настраивать, настроил, в логах ошибок нет (ну или я не разобрался) /var/log/apache2/error.log:

... 

[***] [notice] caught SIGTERM, shutting down

[***] [notice] Apache/2.2.22 (Debian) mod_gnutls/0.5.10 PHP/5.4.45-0+deb7u14 configured -- resuming normal operations

...

В консоли всё ОК, ошибок нет. Nginx остановлен. Порт apache /etc/apache2/ports.conf:

NameVirtualHost *:443
Listen 443

В sites-enabled только 1 файл:

<IfModule mod_gnutls.c>

<VirtualHost _default_:443>

	ServerAdmin webmaster@localhost

	DocumentRoot /var/www

	<Directory /var/www/>

		Options FollowSymLinks

		AllowOverride None

	</Directory>

	<Directory /var/www/>

		Options Indexes FollowSymLinks MultiViews

		AllowOverride None

		Order allow,deny

		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all

	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,

	# alert, emerg.

	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

	#   SSL Engine Switch:

	#   Enable/Disable SSL for this virtual host.

	<FilesMatch "\.(cgi|shtml|phtml|php)$">

	</FilesMatch>

	<Directory /usr/lib/cgi-bin>

	</Directory>

	BrowserMatch "MSIE [2-6]" \

		nokeepalive ssl-unclean-shutdown \

		downgrade-1.0 force-response-1.0

	# MSIE 7 and newer should be able to use keepalive

	BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown


</VirtualHost>

</IfModule>

Что не так? Если надо что-то ещё показать - покажу. И да у меня SSL.



Последнее исправление: TimurSh (всего исправлений: 2)

Ответ на: комментарий от TimurSh

Что именно завернуть?

Сначала прочитай правила. Потом редактируешь тему: перед NameVirtualHost *:443 Listen 443 ставишь [code], после </IfModule> ставишь [/code].

Deleted
()

А что конкретно означает «не работает»? Приведенная настройка, конечно, не для рабочего варианта, а так... чисто потестировать-поиграться - даже доменного имени не указано.

Попробуй для начала не мучить SSL, а настроить обычный http-доступ. Ну и покажи, что у тебя в access.log выводится при попытках обращения к сайту.

vinvlad ★★
()
Ответ на: комментарий от Deleted

Ещё один вопрос, что стоит прояснить — а почему используется древняя и уже неподдерживаемая версия Debian? Там же вагон старых уязвимостей. Нужно переходить как минимум на 8, а то и 9 версию. Если пугает systemd, есть Devuan.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

а почему используется древняя и уже неподдерживаемая версия Debian?

Стабильность? Как вариант?

Deleted
()
Ответ на: комментарий от Deleted

А что, 8 или 9 версия не является стабильной? 7 версия уж точно является дырявой — столько лет прошло.

А если сервер нельзя обновлять с релиза на релиз раз в 5 лет, то нужно было CentOS ставить — у него 10 лет поддержки.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от vinvlad

Пояснение 'Не работает' - 'Не удается получить доступ к сайту ...'. Пробовал, но не особо выходило как-то, результат тот же.

access.log, а скорее ssl_access.log:

*** - - [*** +0300] "\x16\x03\x01\x02" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01\x02" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01\x02" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01\x02" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01\x02" 400 510 "-" "-"
*** - - [*** +0300] "\x16\x03\x01\x02" 400 510 "-" "-"
*** - - [***] "\x16\x03\x01" 400 510 "-" "-"

TimurSh
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

А что, 8 или 9 версия не является стабильной? 7 версия уж точно является дырявой — столько лет прошло.

Дык я почём знаю? У ТС спроси.

Deleted
()
Ответ на: комментарий от TimurSh

Может поможете?

Главный помощник - ты сам. Я в apache не шарю. Воспользуйся ЛОРовским поиском по слову apache. Быстрее ответ найдешь, чем ждать будешь.

Deleted
()
Ответ на: комментарий от TimurSh

Я и так ищу

Если найдёшь, обязательно выложи решение. Интересно всё-таки. Не поленись. Для меня ЛОР своего рода напоминалка. Ещё бы локал версию удобную придумать бы.

Deleted
()
Ответ на: комментарий от TimurSh

Пояснение 'Не работает' - 'Не удается получить доступ к сайту ...'.

Ну ё-моё ))) Мы ж тут не телепаты ) Ты URL-ку какую набираешь? И полностью дословно скопируй весь текст, который тебе веб-обозреватель возвращает.

«\x16\x03\x01\x02»

Ты ж понимаешь, что вот это не имеет никакого отношения к URL. Останови Apache, потри логи, запусти заново, набери URL-ку и покажи, что в логе появляется. И сделай это для начала для обычного 80-го порта. Не пытайся все проблемы разом решить )

vinvlad ★★
()
Ответ на: комментарий от vinvlad

Ну если вам интересна полная версия, вот:

Не удается получить доступ к сайту
Сайт 185.231.153.116 неожиданно разорвал соединение.

Попробуйте сделать следующее:
Проверьте подключение к Интернету.
Проверьте настройки прокси-сервера и брандмауэра.
Выполните диагностику сети в Windows
ERR_CONNECTION_CLOSED
Проверьте интернет-соединение.
Проверьте подключение кабелей и перезапустите все маршрутизаторы и прочие используемые сетевые устройства.

Разрешите Opera доступ к сети с настройками брандмауэра или антивируса.
Если программа входит в список тех, которым разрешен доступ к сети, удалите ее из списка и добавьте туда снова.

Если вы используете прокси-сервер…
Проверьте настройки соединения или свяжитесь с вашим сетевым администратором, чтобы убедиться, что прокси-сервер работает. Если вы уверены, что прокси-сервер вам не нужен: Перейдите в главное меню > Настройки > Изменить настройки прокси-сервера… > Настройки локальной сети и снимите флажок «Использовать прокси-сервер для локальной сети».

URL: http://1.2.3.4/ (ip сайта, если просто ip, то будет перекидывать на ftp://...)

141.8.142.126 - - [08/Mar/2019:13:01:17 +0300] "\x16\x03\x01\x01C\x01" 400 510 "-" "-"
141.8.142.126 - - [08/Mar/2019:13:01:17 +0300] "\x16\x03\x01\x01C\x01" 400 510 "-" "-"
141.8.142.126 - - [08/Mar/2019:13:01:17 +0300] "\x16\x03\x01" 400 510 "-" "-"
141.8.142.126 - - [08/Mar/2019:13:01:17 +0300] "\x16\x03\x01" 400 510 "-" "-"
141.8.142.126 - - [08/Mar/2019:13:01:17 +0300] "\x16\x03" 400 510 "-" "-"
TimurSh
() автор топика
Ответ на: комментарий от TimurSh

и еще...
если ты используешь SSL на реально работающем сайте, то у тебя в настройках должен быть указан сертификат. Сертификат, вообще-то, оформляется не просто от балды (типа, самоподписной), а для конкретного домена. У тебя всего этого (домена, ссылки на сертификат) в настройках чего-то не видать. То, что ты показал - это, похоже на обычную, дефолтную заглушку Apache.

Соответственно вопрос: а чего ты вообще пытаешься настроить?

vinvlad ★★
()
Ответ на: комментарий от vinvlad

Когда я указывал там рассположение сертификатов, apache ругался, он не знает что это. Стоит вернуть, попробую.

TimurSh
() автор топика
Ответ на: комментарий от TimurSh

Ну если вам интересна полная версия, вот: ...

У тебя в настройках только 443-й порт (https), а набираешь ты url-ку http://1.2.3.4/ - т.е. пытаешься подключиться по 80-му порту. Соответственно, происходит облом.

vinvlad ★★
()
Ответ на: комментарий от TimurSh

Судя по твоим постам, ты действуешь абсолютно неосознанно - методом тыка. Так работать нельзя - или почитай документацию по Apache (вводные странички) или вводную главу какой-нибудь книжки по Apache - их в инете полно. А так - это пустая трата времени и бесполезное общение.

vinvlad ★★
()
Ответ на: комментарий от TimurSh

Я учусь на своих ошибках - по мне так лучший метод.

Попробуй для начала не мучить SSL...

Ты не ответил на главный вопрос. Откуда ты начал юзать SSL? Ты же не сам это придумал? Кто или что тебя надоумило? Первоисточник?

Deleted
()
Ответ на: комментарий от TimurSh

SSL - LEt's Encrypt.

Неправильный ответ. Ни я, ни кто другой «источника» не увидел. Ссылку в студию.

Deleted
()
Ответ на: комментарий от TimurSh

Самый лучший и единственно правильный метод по части настройки софта - это читать документацию. Других методов нет. Ну и предварительно поиметь какие-то базовые знания по части работы веб-серверов.

141.8.142.126 - - [08/Mar/2019:13:01:17 +0300] «\x16\x03\x01\x01C\x01» 400 510 "-" "-"

Вот это, вообще говоря, означает, что у тебя на стороне сервера не настроен SSL. Ну, т.е. веб-обзреватель пытался установить https-соединение используя TLS-протокол, а веб-сервер обрабатывал входящий трафик, как обычный нешифрованный запрос - отсюда абракадабра вместо «GET ... »

vinvlad ★★
()

https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html

Basic Configuration Example
Your SSL configuration will need to contain, at minimum, the following directives.

LoadModule ssl_module modules/mod_ssl.so

Listen 443
<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    SSLCertificateFile "/path/to/www.example.com.cert"
    SSLCertificateKeyFile "/path/to/www.example.com.key"
</VirtualHost>

Сюда еще DocumentRoot добавить нужно. Ну и учти, что в Debian (да и в других дистрибутивах) конфигурация Apache разбита на несколько файлов. Так что, директивы LoadModule ... и Listen 443, как правило лежат отдельно от конфигурации виртуального хоста (нужно проверить их наличие).

vinvlad ★★
()
Ответ на: комментарий от symon2014

\x16\x03\x01\x01C\x01
А иногда эта фигня с обратными слешами означает киррилицу

Здрасте, мордасти. Где \x16, а где «кириллица»?

PS: Charmap в консоли

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от symon2014

А иногда эта фигня с обратными слешами означает киррилицу (изредка).(имхо)

При корректном http-запросе «эта фигня» должна начинаться с типа запроса (GET, POST, ...), за которым через пробел следует URL-ка. Так что, здесь веб-серверу просто разрешили слушать 443-й порт, но не сказали, что это для SSL.
В реальных логах правильно настроенного веб-сервера такие вещи появляются, когда туда тыкается какой-нибудь сканер.

vinvlad ★★
()

Прям весеннее обострение. У одного «круглокуб письма не отправляет» по факту при не настроенном постфиксе и о настройке он явно представления не имеет. У другого «сайт не открывается» при не настроенном апаче... с «настройкой» у него так же как и у тс из темы с круглокубом. Эпидемия однако.

anc ★★★★★
()
Ответ на: комментарий от skyman
tcp6 0 0 :::80 :::* LISTEN
20848/apache2
tcp6 0 0 :::22 :::* LISTEN
2693/sshd
tcp6 0 0 :::443 :::* LISTEN
20848/apache2
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
1670/rcpbind
tcp6 0 0 :::111 :::* LISTEN
1670/rcpbind
tcp6 0 0 :::34618 :::* LISTEN
1701/rcp.statd
TimurSh
() автор топика
Ответ на: комментарий от Deleted

Вроде нашёл: https://codex.so/ssl. И да у меня начали появляться ошибки при запуске\установки ssl certbot'а:

...

Creating virtual environment...
Installing Python packages...
/opy/eff.org/certbot/venv/bin/python: No module named pip__main__; 'pip' is a p
ackage and cannot be directly executed
Traceback (most recent call last):
  File "/tmp/tmp.74P33046v6/pipstrap.py", line 177 in <module>
    sys.exit(main())
  File "/tmp/tmp.74P33046v6/pipstrap.py", line 149 in main
    pip_version = StrictVersion(check_output([python, '-m', 'pip', '--version'])
  File "/usr/lib/python2.7/subprocess.py", line 544 in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: command '['/opt/eff.org/certbot/venv/bin/python',
 '-m', 'pip', '--version']' returned non-zero exit status 1

TimurSh
() автор топика
Ответ на: комментарий от TimurSh

... И да у меня начали появляться ошибки при запуске\установке ssl certbot'а

Если вы хотите учиться «на собственных ошибках», то не пользуйтесь всякими «certbot-auto», а попытайтесь проделать ту же процедуру «ручками». Ну, т.е. получите холявный сертификат, разместите его правильно в системе, а потом подумайте, где бы вам его прописать в конфигурации Apache - ну не в конфигурации же дефолтной заглушки! Дефолтная заглушка, по хорошему, должна указывать на пустой сайт с одним только файлом robots.txt, в котором должны лежать директивы:

User-agent: *
Disallow: /

Вам для вашего сайта нужно создать отдельный конфигурационный файл (см. выше), содержащий соответствующую директиву ServerName, в которой должно быть указано имя вашего домена - причем зарегистрированного, если вы хотите получить для него сертификат. Более того, как вам уже было сказано, сначала вам нужно наладить обычную http-конфигурацию с использованием 80-го порта. Иначе вы просто сертификат не получите - там же выполняется проверка того, что вы являетесь обладателем соответствующего домена, для чего сайт уже должен работать.

У вас домен-то хоть есть? А то как-то странно выглядит - вы пытаетесь конфигурить свой сайт в Apache без указания его доменного имени.

vinvlad ★★
()
Ответ на: комментарий от TimurSh

И какие источники по вашему мнению хорошие ?

Если вам нужен бесплатный сертификат, вы можете использовать тот же «Let’s Encrypt» - просто выберите клиент получения-обновления сертификата (или подходящий режим работы клиента), который не меняет самостоятельно конфигурацию вашего веб-сервера. Дело клиента - получить сертификат. Настройки веб-сервера вы должны контролировать-менять самостоятельно.

Ну и если вы решили использовать «Let’s Encrypt» и соответствующие клиенты, то почитайте сначала:
https://letsencrypt.org/how-it-works/
(особо раздел «Domain Validation»)

vinvlad ★★
()
Ответ на: комментарий от vinvlad

Прочёл. Вот я избавился от ssl временно. В acess.log уже вот это:

109.174.113.203 - - [10/Mar/2019:05:17:42 +0300] "GET / HTTP/1.1" 500 411 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0.3135.79"
Браузер пишет, при попытке зайти на сайт это:
Страница недоступна
Сайт 1234.56 пока не может обработать этот запрос.

HTTP ERROR 500
В error.log:
Sun Mar 10 05:17:41 2019] [notice] Apache/2.2.22 (Debian) PHP/5.4.45-0+deb7u14 configured -- resuming normal operations
Содержание файла в sites-enabled:
<VirtualHost *:80>
        ServerName 1234.56
	ServerAdmin webroot@localhost
	DocumentRoot /var/www
	ErrorLog ${APACHE_LOG_DIR}/error.log
	LogLevel warn
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> 
Содержание ports.conf:
NameVirtualHost *:80
Listen 80
Подсоединиться пытаюсь так: http://1234.56/ .

TimurSh
() автор топика
Ответ на: комментарий от TimurSh

Вот я избавился от ssl временно ...

Ну, вообще-то 500-я ошибка на пустом месте не должна была выскакивать, да еще и без диагностики в error.log. Есть повод «пообучаться» - погуглить, отчего могут выскакивать такие ошибки при начальной конфигурации сайта.

Заведи для своего сайта папочку в /var/www - пустую. Дай ей правильные права, чтобы веб-сервер мог её читать. Пропиши эту папочку в директиве DocumentRoot своего сайта. Положи в эту папку какой-нибудь txt-файл - тоже с правильными правами. Ну и добейся того, чтобы этот файл можно было прочитать через веб-сервер. Это первая ступенька, на которую нужно взобраться.

Для дефолтной заглушки тоже создай отдельную пустую папку и пропиши её в соответствующем конфигурационном файле - чтобы папки не перехлестывались.

И лучше перед всем этим снести Apache, затереть его конфигурацию в /etc и переустановить всё с нуля.

vinvlad ★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Если пугает systemd, есть Devuan

Тебе человек в первом же предложении написал, что линуксы в глаза первый раз видит, а ты к нему со своим сектантством пристал.

WitcherGeralt ★★
()
Ответ на: комментарий от TimurSh

В error.log: ...

И еще, в конфигурации своего сайта задай отдельные логи - чтобы было понятно, что эта конфигурация задействована.

vinvlad ★★
()
Ответ на: комментарий от TimurSh

зачем отдельные?

У вас имеются две конфигурации: одна - вашего сайта, другая - дефолтная. Обе используют одни и те же логи. Соответственно, нет однозначной информации о том, какая из них реально использовалась при обработке запроса http://1234.56/.

Apache так устроен, что если к нему прилетает запрос с доменом, для которого он по каким-то причинам не может найти конкретную конфигурацию, то он использует дефолтную конфигурацию.

Я удалял старое.

Удалять можно по-разному...
Удаляли до или после запуска бота? Удаляли «ручками» отдельные файлы или полностью переустанавливали Apache? Какую команду использовали для удаления Apache? После удаления проверяли отсутствие старых файлов в /etc/apache2?

vinvlad ★★
()
Ответ на: комментарий от vinvlad

Выдаётся много чего. Что именно вас интересует? Если всё скажите, как скопировать то, что в консоли.

TimurSh
() автор топика
Ответ на: комментарий от TimurSh

Выдаётся много чего...

У вас там какой-то сайт уже лежит? Если это так и он лежит непосредственно в /var/www, то перенесите его в какую-нибудь внутреннюю поддиректорию - естественно, не в ту, с которой сейчас экспериментируете. В директории тестового сайта пока должен лежать только один тестовый файлик.

Ну а непосредственно в /var/www должны лежать только поддиректории отдельных сайтов и больше ничего.

vinvlad ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.