• Настройка Nginx + LAMP сервера в домашних условиях Часть 2: Настройка backend: PHP + MySQL

      Здравствуйте.

      В предыдущей статье, мы познакомились с настройкой связки nginx + apache в режиме хостинга и репозиториями dotdeb.
      В этой статье мы познакомимся с настройкой backend: PHP, MySQL.

      В части PHP мы познакомимся со следующими темами:
      — общая настройка PHP
      — правильная настройка PHP + Postfix для отправки писем через внутренний SMTP сервер посредством функции mail(),
      — настройка кеширования кода и/или данных на основе APC.

      В части MySQL я попробую раскрыть базовые моменты повышения производительности, ибо по умолчанию сервер MySQL настроен очень не эффективно.

      Кто заинтересовался, добро пожаловать под кат
      Читать дальше →
    • Настройка Nginx + LAMP сервера в домашних условиях. Часть 1: Настройка frontend — backend


        Здравствуйте. Недавно я задавал вопрос по поводу создания цикла статей. Вот первая статья.

        В этом цикле статей вы узнаете как грамотно настроить LAMP сервер, аля «хостинг только мощней».
        Мы будем использовать следующий стек: nginx — apache-mpm-itk — mod_php — mysql — linux/debian.

        Буду освещать следующие темы:
        • Настройка frontend — backend
        • Расчет возможностей сервера, настройка mysql и backend
        • Рассказ об опыте на базе intel s3420gp

        Совершенно уверенно могу сказать, что настройка LAMP сервера не ограничивается 6-10 командами установки и раскомментирования определенных строчек в файлах настройки.
        Пример: по умолчанию nginx не дает возможности закачать на сервер тело запроса больше чем 1M. Если не настроить данный параметр, будет возникать ошибка 414 (Request-URI Too Large), при попытке добавления небольшой серии фотографий.
        У apache совершенно противоположное: у него тело запроса по умолчанию не ограничено. Это делает возможным совершать пакости.

        В этой статье мы познакомимся со всей настройкой досконально. В статье вы сможете найти конфигурационные файлы, подготовленные мной. Будучи педантом, мои конфигурационные файлы всегда сгруппированы по типу, например: «производительность», «генерация контента», «страницы ошибок», «сжатие», «другие настройки», «общие настройки». Мне кажется, что читаемость данных файлов становится намного лучше, если они сгруппированы.

        Мы узнаем о том какие бывают простые атаки и как от них защищаться. Сразу скажу, что при базовой конфигурации frontend в лице nginx — backend apache все равно остается уязвим.

        Я практически уверен, что я не смогу уместить все в одну статью. Добро пожаловать под кат.
        Читать дальше →
      • Отладка iframe приложения непосредственно в среде vk.com с использованием php + xdebug


          В этой статье вы узнаете, как можно отлаживать iframe приложение непосредственно внутри среды vk.com, то есть как белый человек. Разработка приложения непосредственно в среде не требует создания песочниц (эмуляции вконтакте), очень удобно работать непосредственно с API вконтакте, видя все переменные, которые передаются туда и обратно непосредственно в трейсе. Не претендую на оригинальность, я просто проверил, что такой статьи нету в тырнете и все, а идея очевидна и проста. Идею придумал за кружкой чая, ибо если бы я успел его допить, то начал бы гуглить.
          Читать дальше →
        • Простой способ узнать, кто добавил твой пост в избранное

            Микропост о сабже

            Автору поста иногда интересно узнать, кто же добавил его пост в избранное или кому он смог помочь в той или иной проблеме. Согласитесь, интересно же, раз не дают узнать кто ставил +1 или -1. Когда я задавал об этом вопросе google в лоб, он не смог ответить внятными сервисами или постами по теме. Пришлось задать вопросы иначе. Самое удивительное, он смог ответить и даже вполне внятно, хоть иногда и не точно.

            Итак, задаем вопрос google

            А тут, задаем вопрос yandex

            ЗЫ: Яндекс лучше или я не умею задавать вопросы?

            Спасибо за внимание.
            Некоторые улучшения под катом.
            Читать дальше →
          • Грамотная настройка сервера отправки почты для скриптов PHP, настройка функции mail()

              В этом топике вы узнаете, как грамотно настроить, сервер исходящей почты и в частности функцию mail() в PHP. Сам являюсь жутким педантом. Люблю, что бы везде было все на своих местах, не терплю халтуры. Увидев один раз полную чушь в заголовках письма со своего сервера я разобрался с этим кардинально и безоговорочно. Под грамотной настройкой я подразумеваю такую, которая удовлетворяет потребности спам фильтров крупных почтовых систем, и просто выглядело красиво и осмысленно.

              Как известно протокол SMTP не подразумевает никаких средств защиты от спама и аутентификации пользователя, поэтому крупными и не очень компаниями были придуманы «фиксы» безопасности протокола.
              Если вы устанавливаете выделенный сервер с доменом размещенным на нем, очень рекомендуется выполнить данные настройки, что бы все было как надо.

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

              Название заголовка выбрал именно такое, так как вначале своего пути я искал что-то вроде этого. Настраивать будем postfix, php, dns (ptr, spf), и другое.

              Эта статья будет интересная людям, настраивающим выделеные сервера, но не менее интересна для обычных программистов.

              Подробности под катом
              Читать дальше →
            • Автодокументация PHP в NetBeans 7.01 с использованием phpDocumentor, рассказываем, настраиваем, исправляем

                В этой статье вы получите новые и старые знания, в частности некоторые из них появились совершенно недавно в рунете, а некоторые вообще введены мной прямо на месте не отходя от кассы.

                Итак вы узнаете:
                • Базовую информацию о том, что такое автодокументация и как она делается в PHP
                • Настройка генератора документации phpDocumentor в NetBeans 7.01
                • Ссылка на исправленную мной библиотеку phpDocumentor со списком внесенных изменений, думаю некоторым может сразу же понадобиться
                • Ссылки на почитать

                На проекте столкнулся с тем, что потребовалось создать нормальную документацию. Писать отдельно документацию не самый лучший способ, базовое описание библиотеки можно выполнить и в стиле автодокументации. Начал разбираться в вопросе и о чудо, в NetBeans 7.01 оказывается поддерживается PHPDoc, вполне достойно и удобно. Был удивлен бедностью информации по этой тематике в русском сегменте сети. Кроме того, я нашел несколько подводных камней, которые создавали проблемы при настройке под Windows.

                Если заинтересовались, то добро пожаловать под кат
                Читать дальше →
              • Обработка критических ошибок в PHP

                  В статье описан функционал, который доступен в PHP (актуально для 5.3.х) для обработки ошибок всех типов, включая ошибки интерпретации кода (E_ERROR, E_PARSE, E_WARNING, etc). Эта обработка поможет вам для управляемого отображения страницы в случае возникновения таких проблем. В статье присутствует множество описаний и рабочих примеров(архитектуры) для того, что бы сразу воспользоваться в своем программном продукте. В конце концов, ну немного сломали сайт, ну надо же, об этом сообщить поисковику с заголовком 4хх или 5хх и повеселить пользователя, вместо возврата белого экрана (или что хуже экрана со священной информацией, для хакеров) с ответом 200 Ok.



                  Идея написать этот топик возникла, когда я на храбре задал 2 вопроса:

                  По моей карме и добавление в избранное я понял, что они оказались интересные для PHP хабрасообщества. По этой причине я решил оформить решения этих вопросов в виде статьи, да бы людям и поисковикам было проще и комплексно находить нужную информацию.

                  Если заинтересовались, то подробности под катом…
                  Читать дальше →