PHP. Allowed memory size of XXXXX bytes exhausted

phpИногда мы пишем на PHP долгие скрипты, которые потребляют много-много памяти. В таких случаях мы можем столкнуться с ошибкой нехватки памяти:

Allowed memory size of XXXXX bytes exhausted

Что можно предпринять?
Читать далее

Не работает .htaccess? Дык он у вас отключен!

apache_http_server Я как-то привык, что .htaccess всегда работает из коробки, но иногда он реально отключен.
(Да, я замечаю, что в конец из программиста превращаюсь в сисадмина )

Как это лечится?

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

	AllowOverride All

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

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 сертификат, то там скорее всего будет инструкция по использованию, но даже с инструкцией это головная боль, если не делаешь это каждый день.

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