Undefined index: HTTP_HOST

php

Представьте себе. Ваш сайт работает. Работает давно и стабильно. Но вот в логах начинаете видеть ошибки:
Undefined index: HTTP_HOST

Речь идёт о глобальном массиве $_SERVER. Чтобы объяснить феномен, надо прочитать документацию:

‘HTTP_HOST’
Содержимое заголовка Host: из текущего запроса, если он есть.

Другими словами, если клиент использует нестандартный браузер (бот??), который нестандартно формирует заголовок запроса, то вы можете получить любую ерунду вместо адреса своего сайта. Или возможно даже пустой заголовок.

Если же вам в скрипте нужно получить название сервера лучше используйте индекс SERVER_NAME.


‘SERVER_NAME’

Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.

В нормальной ситуации эти величины совпадают

<?php
echo "HOST -". $_SERVER['HTTP_HOST'];
echo "HOST -". $_SERVER['SERVER_NAME'];
?>

Резюме
=====================
Я тут подумал, и пришёл к выводу, что нет никакого смысла использовать $_SERVER['HTTP_HOST'] вообще. На самом деле, это очень экзотический интерес, что там клиент написал в заголовках своего запроса.

AWS. Как я поднимал сервер Ubuntu

aws_logo_105x39
Сколько себя помню, я ставил на AWS EC2 готовые сборки AMI. В последнее время это были сборки от Bitnami. Но Bitnami стала меня напрягать подбором компонентов. А хотелось в общем-то простого линукса, с простым апачем/mysql/php. Без вот этих вот php-fpm и прочего.

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

В общем есть у нас установленный EC2 инстанс с голым Ubuntu на борту
Читать далее

SSL. Делаем защищённый сайт HTTPS

ssl
Если где-то вам придётся покупать SSL сертификат, то там скорее всего будет инструкция по использованию, но даже с инструкцией это головная боль, если не делаешь это каждый день.

Поэтому вот ещё одна шпаргалка.
Читать далее

Laravel. Начало. Как его надо ставить.

screenshot-laravel com 2016-03-28 10-36-38
Всем здравствуйте. Долго я сидел на старой доброй Kohana. Но что-то с ней не так. Развитие остановилось, сообщество разбегается, а по количеству использований фреймворк скатывается в статистическую погрешность. А значит и мне надо двигаться вперёд.

Laravel — я пока не буду говорить о его достоинствах, ибо не знаю. Но он чрезвычайно модный и чертовски распространённый. А раз так, то он точно будет надолго определять тренды в программировании сайтов. Можно с уверенностью сказать, что PHP-фрейморки будущего много возьмут от Laravel. И именно поэтому его надо(!) изучить.

Итак начинаем ставить.
Читать далее

SSH: Too many authentication failures for $username

ssh Тема для тех кто использует Linux в качестве рабочей машины.

Кто много работает с разными заказчиками, подключается к разным серверам, у того скорее всего набирается много ключей. Ну и понятное дело, все эти ключи складываются в папке

/home/USER/.ssh/

И однажды вам надо будет подключиться к новому серверу по SSH, вы имеете логин/пароль и ничего не подозревая набиваете команду
$ ssh your_server_ip_address

И вдруг получаете ответ:

"Too many Authentication Failures for user root"

Что это значит? Читать далее