Console tool for Kohana unit-test module

суббота, 19 апреля, 2008

Мой текущий похапэ-фреймворк Kohanaphp для тестирования предоставляет модуль, работающий через веб-интерфейс…

Мне это несколько дико, поэтому нацарапал консольную приблуду на ruby, которая парсит этот самый веб-интерфейс.

Скриншот прилагается.

Скрин

Для использования поправить SITE_URL в 17й строке и chmod a+x
run_tests.rb

Хакерская локаль 13_37 K0h4n4

вторник, 18 марта, 2008

В транке мого коханого фреймворку обнаружилась прикольная хакерская локаль 13_37

пример прилагается )))



$lang = array
(
        'there_can_be_only_one' => '7h3r3 c4n b3 0n|y 0n3 1n574nc3 0f K0h4n4 p3r p463 r3qu357.',
        'uncaught_exception'    => 'Unc4u6h7 %s: %s 1n f1|3 %s 0n |1n3 %s',
        'invalid_method'        => '1nv4|1d m37h0d <tt>%s</tt> c4||3d 1n <tt>%s</tt>.',
        'cannot_write_log'      => 'Y0ur |06.d1r3c70ry c0nf16 53771n6 d035 n07 p01n7 70 4 wr174b|3 d1r3c70ry.',
        'resource_not_found'    => '7h3 r3qu3573d %s, <tt>%s</tt>, c0u|d n07 b3 f0und.',
        'no_default_route'      => 'P|3453 537 4 d3f4u|7 r0u73 1n <tt>c0nf16/r0u735.php</tt>.',
        'no_controller'         => 'K0h4n4 w45 n07 4b|3 70 d373rm1n3 4 c0n7r0||3r 70 pr0c355 7h15 r3qu357: %s',
        'page_not_found'        => '7h3 p463 y0u r3qu3573d, <tt>%s</tt>, c0u|d n07 b3 f0und.',
        'stats_footer'          => '|04d3d 1n {execution_time}  53c0nd5, u51n6 {memory_usage} 0f m3m0ry. 63n3r473d by K0h4n4 v{kohana_version}.',
        'error_message'         => '3rr0r 0ccurr3d 47 <57r0n6>|1n3 %s</57r0n6> 0f <strong>%s</strong>.'
);

Рецепты Капистрано

вторник, 11 марта, 2008

проблема:
не получается выполнять команды на удаленном хосте

no such file or directory: /usr/bin/env (php, mysql, etc.)

решение: установка $PATH


default_environment["PATH"] = '/opt/csw/php5/bin:/opt/csw/mysql5/bin:/opt/csw/bin:/usr/sbin:/usr/local/bin:$PATH'

проблема: аяяй, чекаут кода (таски setup, update_code, rollback_code, and symlink) пытается выполняться во всех ролях!! (на мейл сервере, на MySQL сервере и т.д. )

решение: прописываем у таких ролей :no_release => true


role :mail, config_production[:mail][:host], :no_release => true
role :solr, config_production[:solr][:host], :no_release => true
role :db, config_production[:db][:host], :no_release => true

проблема: не можем выполнить удаленную команду, т.к. не можем даже влогиниться (начиная от версии Capistrano 2.1)

** [err] Permission denied, please try again.
** [err] Permission denied, please try again.
** [err] Permission denied (publickey,gssapi-with-mic,password).
svn: Connection closed unexpectedly

решение: Начиная с версии 2.1, капистрано больше не запрашивает pty в каждой команде. Проблема в том, что на некоторых системах (на Соляре точно, проверено) некоторые команды (svn, passwd) автоматически впадают в неинтерактивный режим.


# по умолчанию оно false
default_run_options[:pty] = true

проблема: я хочу получить данные коннекта к базе от пхпшного приложения в руби, и юзать для сетапа чего-нибудь, и пусть мне дадут готовый хеш
решение: (для Symfony)
php кусок


// гдето тут берется DSN
// mysql://root:pwd@localhost/mydb
$data =  preg_split('(://|@|/|:)', $link);
list($conf_arr[':dbtype'], $conf_arr[':user'], $conf_arr[':pass'], $conf_arr[':host'], $conf_arr[':dbname']) = $data;
echo base64_encode(sfYaml::dump($conf_arr));

руби кусок (получаем настоящий юзабельный тру-хеш с символами в кач. ключей)


  # Get DB conf
  desc "Get DB connection hash"
  task :db_get_conf, :roles => :web do
    enc = ""
    run "cd #{app} && php deploy-db-sendconf.php" do |channel, stream, data|
      enc = data
      raise data if stream == :err
    end
    # base64decode & convert to hash from YAML
    YAML.load enc.unpack("m")[0]
  end

авторизация (ручками)


  # restart apache webserver
  desc "Restart the web server"
  task :restart, :roles => :web do
    sudo "svcadm restart svc:/network/http:cswapache2" do |ch, stream, out|
      ch.send_data "#{sudo_password}\n" if out =~ /^Password:/
      raise out if stream == :err
    end
  end

вроде бы хватит сегодня

Сайт на пхп ?

пятница, 29 февраля, 2008

Если сайт прячет заголовки сервера

Date: Fri, 29 Feb 2008 10:22:08 GMT
Server: Apache/2.2.3 (CentOS) DAV/2 SVN/1.4.2 mod_ssl/2.2.3 OpenSSL/0.9.8b PHP/5.2.4 mod_fastcgi/2.4.6

или заменяет расширения *.php файлов на скажем, *.zoo, *.asp (чтобы ввести в заблуждение и затруднить взлом)

у php есть странные способы сказать всем, что да, я написан на пхп :)

к урлу добавляем

и отбрасываем всякие сомнения прочь