суббота, 29 декабря 2012 г.

Написание продающих текстов для сайта


Написание продающих текстов (ну или попытки написания )  всегда было моей слабостью.
Вот очень вдохновляющее видео на эту тему

четверг, 27 декабря 2012 г.

Установка Capistrano и Capifony на Windows 7

1. Устанавливаем последнюю версию ruby (если еще не установлено) 
Качаем инсталлер отсюда
(Версию 1.9.3 лучше не использовать пока не решен этот баг)

2. Убеждаемся что путь к Ruby попал в Path
У меня почему то не попал

3. Устанавливаем RubyGems (если еще не установлено)
качаем отсюда, распаковываем, переходим в командной строке в полученную директорию и выполняем:
ruby setup.rb install
gem update --system

4. Устанавливаем  Сapistrano 
gem install capistrano

5. Устанавливаем Capifony (если планируется deploy Symfony проектов)
gem install capifony

6. Дополнительные плюшки
устанавливаем для комфортной работы с scm (subversion, git)
gem install capistrano_rsync_with_remote_cache

И напоследок ссылки на дополнительные материалы по Capistrano и Capifony

неплохой начальный tutorial на Хабре
видео "Capistrano для деплоймента PHP-приложений" с zendconf2012
хорошо структурированный конфиг capifony можно найти здесь

воскресенье, 16 декабря 2012 г.

Какая разница между .gitkeep и .gitignore

Пустой файл .gitkeep необходим в случае если необходимо добавить в git пустую директорию (по другому просто не получится -  git это не позволяет)

Причем подойдет любой файл с любым расширением. Просто .gitkeep это общепринятое соглашение о наименовании, а не git фича.

Файл .gitignore позволяет задать исключения для репозитория.
Его как привило размещают в корне проекта.
Каждая строка этого файла должна содержать путь или маску для файлов и директорий которые следует исключить из репозитория.

Эти правила однако не будут работать для уже добавленных в репозиторий объектов

В этом случае такие объекты необходимо вначале удалить из git:
git rm --cached path/to/file

Если необходимо с одной стороны добавить в git папку, но исключить из нее все содержимое,
то сделать это возможно добавив в нее файл .gitignore со следующим содержимым:

*
!.gitignore

вторник, 11 декабря 2012 г.

Upgrade your intl extension with a newer ICU version для Zend Server

Если такое вот сообщение появляется при запуске config.php в новой установке Symfony 2

Или как следствие возникают такие ошибки
"The locale resource bundle could not be loaded for locale en" 

То для Zend Server под Windows 7 необходимо предпринять следующее:

Идем сюда
http://windows.php.net/download/

Качаем VC9 x86 Non Thread Safe  архив под нужнную нам версию php

копируем все icu* файлы из корня в D:\Zend\ZendServer\bin
а также php_intl.dll в D:\Zend\ZendServer\lib\phpext

Перезапускаем Apache


понедельник, 10 декабря 2012 г.

Генерация самоподписанного ssl сертииката для localhost

Для генерации такого сертификата воспользуемся утилитой openssl входящей в поставку ZendServer

site
cd ../bin
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt -config "D:\Zend\Apache2\conf\openssl.cnf"

полученные в результате файлы
server.crt и server.key
перемещаем из папочки  apache2/bin в папочку apache2/conf/ где им собственно и место

Настройка https для Zend Server на localhost

Так как попытки поключить и заставить работать conf/extra/httpd-ssl.conf
больше похожи на танец с бубном, то делаем следующим образом

 LoadModule ssl_module modules/mod_ssl.so должен быть подключен в  httpd.conf

в  conf/extra/httpd-vhost.conf  прописываем следующее:

NameVirtualHost *:443
Listen 127.0.0.1:443

<VirtualHost *:443>
     SSLEngine on
     SSLCertificateFile "D:\Zend\Apache2/conf/server.crt"
     SSLCertificateKeyFile "D:\Zend\Apache2/conf/server.key"
     ServerName site.dev:443
     DocumentRoot "D:\Zend\Apache2\htdocs\site\web"
</VirtualHost>

где указываем нужные имя сервера и правильные пути к DocumentRoot и соответствующим сертификатам



Быстрый способ проверить производительность сайта

Для этого можно воспользоватся утилитой ab входящей в состав Apache
Пример использования: ab -c10 -n500 http://site.dev/
где:
-с10 - количество конкурентных запросов (по 10 запросов одновременно);
-n500 - общее количество запросов в тесте;
 http://site.dev/ - адрес тестируемого ресурса.