su: incorrect password

Июл 29
2011

Не знаю, что произошло, но в какой то момент при вызове «su -» стала появляться ошибка — su: incorrect password, решение проблемы тривиально:

sudo chmod 4755 /bin/su

Установка Trac на CentOS

Июл 26
2011

Даже для небольших команд разработчиков нужны инструменты для совместной работы, учета выполненных задач, совместного использования и контроля кода и т.д. Сегодня поговорим о такой замечательной штуке как Trac. Возможности данной системы — тема для отдельной статьи, поэтому пока ограничимся how-to по установке.

1. Устанавливаем из репозитория

su -c 'yum install trac trac-git-plugin.noarch trac-iniadmin-plugin.noarch trac-mercurial-plugin.noarch trac-privateticketsplugin.noarch trac-ticketdelete-plugin.noarch trac-webadmin.noarch trac-xmlrpc-plugin.noarch mod_python'

2. Создаем инстанс

trac-admin /usr/local/share/trac/MyProject initenv

3. Создаем администратора

touch /usr/local/share/trac/auth-file
trac-admin /usr/local/share/trac/MyProject permission add <username> TRAC_ADMIN

4. Настраиваем Apache

  • Дописываем в httpd.conf «LoadModule python_module modules/mod_python.so»
  • Создаем CNAME запись в DNS, чтобы разместить trac на поддомене (напр. trac.mysite.com)
  • Настраиваем vhost:

    <VirtualHost *:80>
      ServerName trac.myproject.com
      <Location />
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /usr/local/share/trac/mytrackproject
        PythonOption TracUriRoot /
      </Location>
      <Location "/login">
        AuthType Basic
        AuthName "trac"
        AuthUserFile /usr/local/share/trac/auth-file
        Require valid-user
      </Location>
      ErrorLog logs/trac.myproject.error.log
      CustomLog logs/trac.myproject.access.log common
    </VirtualHost>
    
  • Перезагружаем Apache
  • Профит!

Symfony no_script_name и Apache mod_rewrite

Июл 20
2011

Намедни компания, в которой я работаю, обзавелась новым сервером. Так как нужно было срочно перебросить на него несколько проектов, а поблизости админами не пахло (ночь на дворе, фигли), полез настраивать сам. Как говорится, долго ли умеючи. Перебросил проекты, базы, поднял Apache, Nginx, MySQL, настроил DNS, запускаю. Работает! Но только главная страница проекта, причем каждого. Так как проекты на Symfony, полез сначала ковырять ее настройки, отключив директиву no_script_name, получил полностью работающий проект. Что бы понять в чем причина потребовалось времени больше, чем было потрачено на настройку. Дьявол прячется в мелочах, для нормальной работы mod_rewrite, при использовании директив RewriteRule и RewriteCondition в файлах .htaccess, кагбе не мешает изменить следующие строки в конфиге Apache с:

<Directory />
    ...
    AllowOverride None
    ...
</Directory>

на

<Directory />
    ...
    AllowOverride All
    ...
</Directory>

Epic Fail! За последние несколько лет общения с Apache впервые упустил этот момент. Вывод: на досуге покуривать мануалы, до просветления. И спать по ночам, а не настраивать боевые сервера.

syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

Июл 04
2011

Залил сегодня новый сайт на продакшн-сервер. Открываю. Вижу белый экран. Иду курить логи:

PHP Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

WTF?!!
Погуглив, пришел к выводу, что не понравился интерпретатору статический метод, который я имел наглость вызвать во View, в PHP 5.3.x сей финт ушами сработал на ура, а вот в PHP 5.2.12 — нет. Как оказалось, в переводе с иврита (как подсказывают знатоки, ивритом не владею, так что не ручаюсь), это означает «двойное двоеточие». Так что если где выползет, не пугайтесь :)

MySQL Workbench и Doctrine ORM

Июн 08
2011

Некоторое время назад я рассказывал о том, как настроить CodeIgniter, Doctrine ORM и Swift. Сегодня расскажу о том, как ускорить этап создания прототипа приложения, создаваемого на этой связке, с помощью MySQL Workbench.

Workbench позволяет создавать визуальную схему базы данных, учитывающую как типы хранимых данных, так и связи между таблицами. Из разработанной диаграммы можно напрямую создать новую базу, работает и обратный принцип — для создания диаграммы можно использовать структуру существующей БД, это удобно в том случае, если нужно быстро расширить архитектуру базы.

Закончив проектирование остается сделать совсем немного. Во-первых, закрепляем все изменения в БД. После этого в дело вступает Doctrine:

//Создаем schema.yml на основе структуры БД
php doctrine generate-yaml-db
//Создаем файлы моделей на основе структуры БД
php doctrine generate-models-db

В результате будут сгенерированы файлы моделей, после этого — have fun :)

Real Time Web Analytics
fortnotes