вторник, 8 октября 2019 г.

mcrypt for php7.3

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install libmcrypt-dev
sudo pecl install mcrypt-1.0.2

четверг, 3 октября 2019 г.

Установка xhprof php7.3

Установка:

sudo apt-get install git php7.3-dev
cd /usr/share/
git clone https://github.com/longxinH/xhprof/
cd xhprof/extension
phpize
./configure --with-php-config=/usr/bin/php-config
sudo make && sudo make install


Добавить в php.ini:

[xhprof]
extension = xhprof.so
xhprof.output_dir = /tmp/xhprof (директорию надо создать самому)


Проверка установки:

php -i | grep xhprof



Использование:

xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);

//php код

$xhprof_data = xhprof_disable();



Сохранение данных для просмотра в графическом режиме:

sudo apt install graphviz

добавить в код, в конце:

require_once '/usr/share/xhprof/xhprof_lib/utils/xhprof_lib.php';
require_once '/usr/share/xhprof/xhprof_lib/utils/xhprof_runs.php';
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "test");


Для просмотра надо настроить nginx на папку /usr/share/xhprof/xhprof_html

вторник, 23 июля 2019 г.

Установка nodejs

curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
sudo ln -s /usr/bin/npm /usr/local/bin/npm


Проверяем:

nodejs -v
npm -v

среда, 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 Охватывает только бит исполнения.

вторник, 20 октября 2015 г.

mint Слетает разрешение второго монитора

sudo apt-get install nvidia-current
sudo nvidia-xconfig
sudo gedit /etc/X11/xorg.conf
добавить в Monitor
HorizSync 31.0 - 81.0
VertRefresh 56.0 - 76.0
sudo reboot
Открыть nvidia-settings (меню - администрирование - NVIDIA X Server settings) и выставить нужное разрешение (Save to X Configuration file)
Применить разрешение в настройках монитора

http://forundex.ru/unix%20linux/Mint-171-nepraviljno-opredelyaet-maksimaljnoe-razreshenie-v-monitore-28276

понедельник, 31 августа 2015 г.