четверг, 17 июля 2014 г.

аналог skype для веба

У меня на работе возникло задание сделать аналог skype для redmine.
и я было совсем упал духом но выход нашелся
http://peerjs.com/
понятно что технология еще очень сырая Stable (0.3.9)
и качество связи остовляет желать лучшего
но если всех пользователей crm пересадить на адекватные браузеры то все ок
http://cdn.peerjs.com/demo/videochat/

четверг, 10 июля 2014 г.

заменить title на h1

Из уст оптимизаторов часто звучит "Сгенерировать теги Title из h1". как это сделать тем более для очередного говно движка не понятно. А сделать нужно обязательно и быстро. Это значит пришло время костылей вот мой
function get_h1($base_url, $end_url, $param_name = "get_h1"){
 if (false !== strstr($end_url, "?")){
  $end_url .= "&".$param_name."=Y";
 }else{
  $end_url .= "?".$param_name."=Y";
 }
 if ("Y" == $_GET[$param_name]){
   return ;
 }
 $url = "http://".$base_url.$end_url;
 
 $c = file_get_contents($url);
 preg_match_all("/<[Hh]1.*>(.*)<\/[Hh]1/", $c, $m);
 if (!empty($m)){
   $title = "";
   foreach($m[1] as $k => $v){
  $title .= trim(strip_tags($v));
   }
   return $title;
 }
}
а в шаблоне
<?php echo  get_h1($_SERVER["HTTP_HOST"], $_SERVER["REQUEST_URI"]); ?>

вторник, 17 июня 2014 г.

локализация ubuntuserver

locale-gen ru_RU.UTF-8
dpkg-reconfigure locales
сразу замечу что под bash в vim у меня так и остались кракозябры. вылечил установкой zsh с настройками из oh my zsh

Инструкция по правильной Установке/Переносу redmine на ubuntu

сначала материалы по теме
http://redminecrm.com/boards/4/topics/448
http://www.redmine.org/projects/redmine/wiki/RusRedmineUpgrade
http://habrahabr.ru/post/120504/

если вы не root то
sudo su
затем ставим
apt-get install mysql-server libmysqlclient-dev git-core subversion imagemagick libmagickwand-dev libcurl4-openssl-dev curl
curl -L https://get.rvm.io | bash -s stable —ruby=2.0.0
выполняем
source /usr/local/rvm/scripts/rvm
и дописываем в конец файла .bashrc
source /usr/local/rvm/scripts/rvm
устанавливаем apache php5 phpmyadmin
и перенатраиваем на другой порт
по той простой причине что им просто удобней пользоватся

sudo apt-get install apache2 php5 phpmyadmin
правим порты
vim /etc/apache2/ports.conf
NameVirtualHost *:80
Listen 80
заменяем на
NameVirtualHost *:8880
Listen 8880
и правим дефолтную настройку
vim /etc/apache2/sites-available/default
<VirtualHost *:80>
заменяем на
<VirtualHost *:8880>
перезапускаем apache
sudo /etc/init.d/apache2 restart 
заходим в phpmyadmin
http://xxx.xxx.xxx.xxx:8880/phpmyadmin/
создаем базу для redmine
если вы переносите redmine то распакуйте базу из бекапа
и перенесите файлы вложений в католог /var/data/redmine/files
если до этого у вас например был поставлен redmain из репозитория
то ваши файлы ищите здесь
/var/lib/redmine/default/files/
mkdir /var/data
cd /var/data/
svn co http://svn.redmine.org/redmine/branches/2.5-stable redmine
хотя я предпочитаю брать не из svn а из git
git clone https://github.com/redmine/redmine.git redmine
cd /var/data/redmine
cp config/database.yml.example config/database.yml 
vim config/database.yml
правим доступы
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: root
  password: "pass"
  encoding: utf8

development:
  adapter: mysql2
  database: redmine
  host: localhost
  username: root
  password: "pass"
  encoding: utf8
Внимание: логин без кавычек пароль в кавычках
настраеваем отправку почты
cp config/configuration.yml.example config/configuration.yml
vim config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: smtp.{server}.ru
      port: 25
      domain: {server}.ru
      authentication: :login
      user_name: {login}@{server}.ru
      password: {pass}
выполняем bundle (не спутайте bundle c bundler)
bundle install  
иногда редко но по какойто причине не проходит обычно лечится установкой apt-get install {что-то}-dev здесь google в помощь
если увидите чтото типа Could not find gem 'mysql2 (~> 0.3.11) ruby' in the gems available on this machine. (например если выполнете bundle install до конфигурирования базы) то выполните bundle install еще раз
bundle exec rake db:migrate
bundle exec rake generate_secret_token
можно попробовать запустить из под webrick
ruby script/rails s
если напишет что - то типа
[2014-06-17 07:34:08] INFO  WEBrick 1.3.1
[2014-06-17 07:34:08] INFO  ruby 2.0.0 (2014-05-08) [x86_64-linux]
[2014-06-17 07:34:08] INFO  WEBrick::HTTPServer#start: pid=17023 port=3000
пробуем зайти на
http://xxx.xxx.xxx.xxx:3000/
если открылся редмайн то все ок можем продолжать

ctrl+c гасим remine ставим passenger через gem
gem install passenger --no-ri --no-rdoc
запускаем установку (если у вас стоит уже nginx сносите)
passenger-install-nginx-module
Welcome to the Phusion Passenger Nginx module installer, v4.0.45.
выбираем 1 вариант
1. This installer will compile and install Nginx with Passenger support.
Which languages are you interested in?
{enter}
Automatically download and install Nginx?
1. Yes: download, compile and install Nginx for me. (recommended)
Please specify a prefix directory [/opt/nginx]:
{enter}
Nginx with Passenger support was successfully installed.
{enter}
конфигурируем nginx
cd ~ 
git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git
mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx
правим конфигурацию
vim /opt/nginx/conf/nginx.conf
комментим все от server { до его закрывающей скобки } у меня так
#    server {
#        listen       80;
#        server_name  localhost;
#
#        #charset koi8-r;
#
#        #access_log  logs/host.access.log  main;
#
#        location / {
#            root   html;
#            index  index.html index.htm;
#        }
#
#        #error_page  404              /404.html;
#
#        # redirect server error pages to the static page /50x.html
#        #
#        error_page   500 502 503 504  /50x.html;
#        location = /50x.html {
#            root   html;
#        }
#
#        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#        #
#        #location ~ \.php$ {
#        #    proxy_pass   http://127.0.0.1;
#        #}
#
#        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#        #
#        #location ~ \.php$ {
#        #    root           html;
#        #    fastcgi_pass   127.0.0.1:9000;
#        #    fastcgi_index  index.php;
#        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#        #    include        fastcgi_params;
#        #}
#
#        # deny access to .htaccess files, if Apache's document root
#        # concurs with nginx's one
#        #
#        #location ~ /\.ht {
#        #    deny  all;
#        #}
#    }
и вставляем
server {
  listen  80;
  server_name {ваш сервер};
  root /var/data/redmine/public;
  passenger_enabled on;
  client_max_body_size      10m; # Max attachemnt size
}
sudo /etc/init.d/nginx start
заходим проверяем если нужно перенести redmine
удаляем или переименовываем папку redmine
создаем папку redmine копируем в нее наш редмайн
переносим базу данных
правим доступы к базе vim config/database.yml
правим конфигурацию vim config/configuration.yml
bundle install 
bundle exec rake db:migrate
bundle exec rake redmine:plugins
bundle exec rake generate_secret_token

p.s.
когда я только начинал с этим разбираться я сказал жене что наверно проще родить чем правильно поставить или перенести Redmine она не поверила

суббота, 7 июня 2014 г.

ubutu удаление настроек прокси из системы

один раз мне приходилось выходить в инет через ssh тунель. В системе я естествено прописал прокси через gui. Каково было мое удивление когда потом все программы начиная для apt-get заканчивая curl и браузером не захотели работать требуя уже не существующий прокси
выличил так

смотрим наличее прокси
env | grep proxy
выведет что то типа
http_proxy=http://127.0.0.1:8080
ftp_proxy=ftp://127.0.0.1:8080
socks_proxy=socks://127.0.0.1:8080
https_proxy=https://127.0.0.1:8080
удаляем
unset http_proxy
unset ftp_proxy
unset socks_proxy
unset https_proxy
PHP: The Right Way блог програмышки
Яндекс.Метрика