среда, 27 декабря 2017 г.

установка golang

1. скачать последнюю версию с https://golang.org/dl/
2. распаковать в /usr/local
3. добавить в /usr/bin ссылки на исполняемые файлы go (/usr/local/go/bin/go, /usr/local/go/bin/go/bin/godoc, /usr/local/go/bin/go/bin/gofmt)
4. создать ~/go (это будет GOPATH)
5. установить переменную GOPATH (export GOPATH=~/go)
6. проверяем версию go version

понедельник, 13 ноября 2017 г.

git Удаление всех веток кроме мастера

Предварительный просмотр команд удаления (вывод в файл)

git branch -a | grep -v master | cut -d "/" -f 3- | sed "s/.*/git push origin :&/" > file

Удаление всех веток на origin кроме мастера

git branch -a | grep -v master | cut -d "/" -f 3- | sed "s/.*/push origin :&/" | xargs -n 3 git

четверг, 9 ноября 2017 г.

Генерация самоподписанных сертификатов ssl

mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout local.key -out local.crt

nginx конфиг дефолтного сайта

server {

set $domain "default";
set $www "/home/user/www";
set $root $www;

access_log /home/user/www/nginx-access.log;
error_log /home/user/www/nginx-error.log;

server_name *.lo;

index index.php;

if ($host ~* ^([_a-z0-9]+)\.lo$) {
set $domain $1;
}

root $www/$domain;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param  PATH_INFO $fastcgi_path_info;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}

location ~* \.(js|css|less|png|jpg|jpeg|gif|ico|woff|ttf|svg|tpl)$ {
expires 24h;
access_log off;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}
}

mint 18.2 установка postgresql 10

echo deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
  sudo apt-key add -

sudo apt-get install postgresql-10

mint 18.2 установка php7.1


sudo apt-get install -y python-software-properties
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update -y

sudo apt-get install php7.1-cli php7.1-gd php7.1-fpm php7.1-cgi php7.1-mcrypt php7.1-curl php7.1-imap php7.1-memcache php7.1-xsl php7.1-json php7.1-mbstring php7.1-zip php7.1-pgsql

вторник, 12 сентября 2017 г.

Установка yii2 + usuario

Предположим, наш сайт будет называться shop, а админка его будет доступна по урлу http://backend.shop.lo


Создаём проект согласно инструкции на оф. сайте


composer.phar global require "fxp/composer-asset-plugin:^1.2.0"
composer.phar create-project yiisoft/yii2-app-advanced shop
cd shop
./init

На вопросы отвечаем:

Your choice [0-1, or "q" to quit] 0
Initialize the application under 'Development' environment? [yes|no] y

Затем создаем базу данных

mysqladmin -uroot create shop

Устанавливаем usuario согласно оф. документации

composer require 2amigos/yii2-usuario

Добавляем пути к миграциям

В console/config/main.php добавляем

'controllerMap' => [
    ...
    'migrate' => [
        'class' => \yii\console\controllers\MigrateController::class,
        'migrationNamespaces' => [
            'Da\User\Migration',
        ],
    ],
],

В backend/config/main.php добавляем

'components' => [
    ...
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],

В common/config/main.php добавляем

'modules' => [
    'user' => [
        'class' => Da\User\Module::class,
        'administratorPermissionName' => 'fullAccess',
    ]
]

Удаляем стартовую миграцию yii

rm console/migrations/m130524_201442_init.php

Запускаем миграции

./yii migrate --migrationPath=@yii/rbac/migrations

Изменяем настройки identityClass в backend/config/main.php

'components' => [
    ...
    'user' => [
        'identityClass' => Da\User\Model\User::class, // здесь раньше было 'common\models\User'

Создаём администратора c почтой admin@shop.lo логином admin и паролем 123456

./yii user/create admin@shop.lo admin 123456

Создаём команду для генерации базового доступа согласно оф. документации

console/controllers/RbacController.php

< ?php
namespace console\controllers;

use Yii;
use yii\console\Controller;

class RbacController extends Controller
{
    public function actionInit()
    {
        $auth = Yii::$app->authManager;

        $fullAccessPerm = $auth->createPermission(Yii::$app->getModule('user')->administratorPermissionName);
        $fullAccessPerm->description = 'Полный доступ';
        $auth->add($fullAccessPerm);

        $admin = $auth->createRole('admin');
        $auth->add($admin);
        $auth->addChild($admin, $fullAccessPerm);

        $auth->assign($admin, 1);
    }
}

Запускаем её

./yii rbac/init

Проверяем

Заходим на http://backend.shop.lo/index.php?r=user%2Fadmin%2Findex
После авторизации должно показать панель управления пользователями и доступами

воскресенье, 13 августа 2017 г.

установка xdebug для sublime + php5 на linux

Установка xdebug


sudo apt install php5-xdebug

Редактируем php.ini

sudo subl /etc/php5/fpm/php.ini

Вставляем строчки

xdebug.remote_enable=On
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_log="/log/var/xdebug.log"
xdebug.remote_mode="req"

Перезапускаем php-fpm

sudo service php5-fpm restart

Проверяем, что все встало как надо

php5-fpm -m -c | grep xdebug

Если видно xdebug то все в порядке

Настраиваем sublime text


Устанавливаем в sublime пакет xdebug client, для этого должен быть установлен package control.
В sublime text нажимаем ctrl + shift + p выбираем Package Control: install Package, немного ждем, пока sublime прочитает репозитории и в появившемся окне ищем Xdebug client.  
Затем создаем проект Project -> Save project as
И в появившемся файле настроек проекта (имяпроекта.sublime-project) пишем  

"settings": {
    "xdebug": {
         "url": "http://public.tonar.lo/",
         "max_depth": 5
    }
}


Узел settings должен быть корневым, т.е. в целом должно получиться что то вроде этого

{
 "folders":
 [
  {
   "follow_symlinks": true,
   "path": "."
  }
 ],
    "settings": {
        "xdebug": {
             "url": "http://public.tonar.lo/",
             "max_depth": 5
        }
    }
}


Проверяем, у нас должна появится вкладка xdebug в контекстном меню и в Tools Теперь настроим горячие клавиши Идем в Preferences -> Key Bindings и редактируем

[
 {"keys": ["ctrl+f8"], "command": "xdebug_breakpoint"},
 {"keys": ["shift+f8"], "command": "xdebug_conditional_breakpoint"},
 {"keys": ["ctrl+shift+f5"], "command": "xdebug_continue", "args": {"command": "run"}},
 {"keys": ["ctrl+shift+f6"], "command": "xdebug_continue", "args": {"command": "step_over"}},
 {"keys": ["ctrl+shift+f7"], "command": "xdebug_continue", "args": {"command": "step_into"}},
 {"keys": ["ctrl+shift+f8"], "command": "xdebug_continue", "args": {"command": "step_out"}},
 {"keys": ["ctrl+shift+f9"], "command": "xdebug_session_start"},
 {"keys": ["ctrl+shift+f10"], "command": "xdebug_session_stop"},
 {"keys": ["ctrl+shift+f11"], "command": "xdebug_layout", "args": {"keymap" : true}}
]

Горячие клавиши по умолчанию можно посмотреть распаковав пакет Xdebug Client в файле Default.sublime-keymap

Страница пакета Xdebug Client


Запуск с гет параметром /?XDEBUG_SESSION_START=sublime.xdebug

среда, 5 июля 2017 г.

Yii включить gii

В config/main.php

В modules надо добавить

'gii' => array(
    'class' => 'system.gii.GiiModule',
    'password' => '1',
),


В urlManager rules

'gii'=>'gii',
'gii/<controller:\w+>'=>'gii/<controller>',
'gii/<controller:\w+>/<action:\w+>'=>'gii/<controller>/<action>',

yii Распечатать конфиг

print_r(Yii::app()->getComponents(false));

git Игнорировать изменения прав доступа

git config core.fileMode false

В конфиге:

core.fileMode
 If false, the executable bit differences between the index and the
 working copy are ignored; useful on broken filesystems like FAT.
 See git-update-index(1). True by default.



-c для установки в одной команде:

git -c core.fileMode=false diff

--global Установит поведение по умолчанию для текущего юзера:

git config --global core.fileMode false


core.fileMode Охватывает только бит исполнения.