Краткая памятка по MySql

Запуск выполнения команд через terminal:

mysql -u root -p

Создание индекса:

alter table [table_name] add index ([column_name]) constraint ([fk_id]) foreign key ([key_name]) references [ref_table](ref_table_key_id)

Добавление колонки:

alter table [table_name] add [column_name] bit default 0 after [column_name]

Вызов процедуры:
CALL [proc_name] ();

Просмотр колонок у таблицы:

describe table_name;

Просмотреть код у таблицы:

show create table table_name;

 

Установка и настройка PostgreSQL

sudo apt-get install postgresql

Дальше настраиваем безопасность:

1. переходим в папку /etc/postgresql/{version}/main

2. открываем папку postgresql.conf

listen_addresses = ‘*’

3. открываем файл pg_hba.conf

Находим строку

host  all  all 127.0.0.1/32 md5

и меняем её на

host  all  all 0.0.0.0/0 md5

 

Дополнение для windows

Скачиваем приложение managment tools и создаем подключение к БД

Статьи:

Руководство по postgresql  — http://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server/%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85/postgresql

Права доступа — http://dba.stackexchange.com/questions/83984/connect-to-postgresql-server-fatal-no-pg-hba-conf-entry-for-host

Managment Tools — https://www.postgresql.org/ftp/pgadmin3/pgadmin4/v1.2/windows/

Установка wordpress

Скачиваем CMS

wget https://ru.wordpress.org/wordpress-4.7.2-ru_RU.tar.gz

tar -xvzf wordpress-4.7.2-ru_RU.tar.gz

sudo mkdir -p /var/www/wordpress

sudo cp -r ~/wordpress/* /var/www/wordpress/

Настраиваем SQL

mysql -u root -p

create database wordpress;

CREATE USER ‘wordpress’@’localhost’ IDENTIFIED BY ‘12345’;

GRANT ALL PRIVILEGES ON wordpress.* TO ‘wordpress’@’localhost’ IDENTIFIED BY ‘12345’;

exit

Настраиваем CMS

sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php

Устанавливаем права

Дать права доступа к chown -R www-data:www-data /var/www/wordpress

В файле wp-config.php добавить в конце

if ( is_admin() ) {
add_filter ( ‘filesystem_method’, create_function(‘$a’, ‘return «direct»;’ ) );
define ( ‘FS_CHMOD_DIR’, 0751 );
}

Для ubuntu 14.04 и php 5 последняя поддерживаемая версия
https://ru.wordpress.org/wordpress-5.1.1-ru_RU.tar.gz

Установка Joomla

Установка не сложная все делаем по инструкции которая указана в стать выше. Просто для установки русской версии переходим на сайт http://joomla.ru/downloads и скачиваем там файл при помощи команды

wget https://downloads.joomla.org/cms/joomla3/3-6-5/Joomla_3.6.5-Stable-Full_Package.zip

затем распаковываем при помощи unzip

если приложение не установлено, то выполняем вначале sudo apt-get install unzip

unzip file.zip -d destination_folder

Реализация потоков данных

Платформа Node подходит для программирования потоков данных и организации

их передачи. Потоки данных можно представлять как массивы, но вместо

распределения данных в области (в массиве) выполняется распределение данных во

времени. Благодаря передаче данных фрагмент за фрагментом разработчик

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

пока будут переданы все данные, а потом выполнять какие-либо действия.

Обратите внимание на организацию передачи потоков данных для файла ресурсов

resource.json:

var stream = fs.createReadStream(‘./resource.json’)

// Событие Data вызывается после появления нового фрагмента данных

stream.on(‘data’, function (chunk) {

console.log(chunk)

})

stream.on(‘end’, function () {

console.log(‘finished’)

})

Событие data вызывается после появления нового фрагмента данных, а событие

end — после загрузки всех фрагментов кода. Фрагменты данных могут иметь

разные размеры (в зависимости от типа данных). Благодаря чтению потока данных

на низком уровне обеспечивается более эффективная обработка данных, чем

ожидание передачи всех данных в буфер памяти.

В Node также поддерживаются записываемые потоки данных, позволяющие

записывать фрагменты данных. Один из подобных потоков — объект ответа (res),

генерируемый в ответ на запрос к HTTP-серверу.

Считываемые и записываемые потоки могут соединяться, образуя каналы, как в

случае использования оператора | в языке написания сценариев оболочки. При этом

обеспечивается эффективный способ записи только что считанных данных без

ожидания считывания и сохранения всего ресурса.

Рассмотрим пример H TTP-сервера, взятый из предыдущего раздела. В данном

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

var http = require(‘http’);

var fs = require(‘fs’);

http.createServer(function (req, res) {

res.writeHead(200, {‘Content-Type’: ‘image/png’});

// Передача по каналам из считываемого потока в записываемый

fs.createReadStream(‘./image.png’).pipe(res);

}).listen(3000);

console.log(‘Server running at http://localhost:3000/’);

При выполнении этого примера кода данные считываются из файла

(fs.createReadStream) и отсылаются (.pipe) клиенту (res) по мере считывания. Цикл

событий может обрабатывать другие события, пока данные передаются в потоке.

Node поддерживает описанный подход (когда механизм DIRTy предлагается по

умолчанию) на различных платформах, включая разные версии UN IX и Windows.

Базовая библиотека асинхронного ввода-вывода (libuv) была создана для того,

чтобы поддерживать универсальную методику обработки независимо от

родительской операционной системы. В результате обеспечивается упрощенный

перенос программ на другие устройства, на которых они могут выполняться.

Работа с процессами

Чтобы просмотреть процессы запущенные в linux нужно выполнить команду

ps aux

Если нужно фильтрация. то можно воспользоваться

ps aux | grep node

где node имя фильтруемого процесса

Чтобы остановить процесс выполнить команду

kill -9 123

где 123 идентификатор процесса (второй слева при выполнении команды ps aux)

Просмотр локальный сайтов на windows

Чтобы просматривать свои сайты на локальной машине (windows) нужно:

1. на windows перейти в каталог C:\Windows\System32\drivers\etc

  • открыть файл hosts
  • добавляем строку 0.0.0.0        host   # 0.0.0.0 — адрес сервера, host — имя хоста в локальной сети

2. на linux машине нужно в файле хоста *.conf прописать ServerName host

Теперь сайты расположенные на виртуальной машине локально из под windows

Запускаем nodejs через nginx

  • Думаю, кому-нибудь будет полезно знать, как запустить проект на Node.js.

     

    Первым делом необходимо установить саму ноду, но об этом я писать не буду, это размусоленно на триллионах сайтов. А вот как поднять проект на русскоязычных сайтах, инфы маловато. Сам я искал инфу на ру сайтах, но в итоге все равно пришлось питаться инфой из-за бугра.

     

    Задача состоит в следующем:

     

    Запустить ноду.

    Писать лог по ошибкам.

    Если сайт падает, надо его поднять.

    Ставим upstart

    sudo apt-get install upstart
    

    Предположим, у вас есть проект site.ru, и расположен он в каталоге

     

    /var/www/nodejs/site/

    Создаем файл /etc/init/site.conf

    #site.conf
    
    description "node.js bin/www"
    
    author      "username"
    
     
    
    start on startup
    
    stop on shutdown
    
     
    
    script
    
    export HOME="/root"
    
     
    
    echo $$ > /var/run/site.pid
    
    exec sudo -u username /usr/local/bin/node /var/www/nodejs/site/bin/www >> /var/log/site.sys.log 2>&1
    
    end script
    
     
    
    pre-start script
    
    # Date format same as (new Date()).toISOString() for consistency
    
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/site.sys.log
    
    end script
    
     
    
    pre-stop script
    
    rm /var/run/site.pid
    
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/site.sys.log
    
    end script
    
    Далее открываем /ect/monit/monitrc
    
     
    
    check process site with pidfile "/var/run/site.pid"
    
    start program = "/sbin/start site"
    
    stop program = "/sbin/stop site"
    
    if failed port 3000 protocol HTTP
    
    request /
    
    with timeout 10 seconds
    
    then restart
    

    Где порт 3000, впишите свой, по умолчанию нода запускается с портом 3000.

     

    Чтобы избавиться от порта в site.ru:3000, правим конфиг nginx /etc/nginx/nginx.conf

     

    server {
    
    server_name site.ru www.site.ru;
    
    listen 37.143.15.183;
    
    charset UTF-8;
    
    set $root_path /var/www/nodejs/site;
    
    location / {
    
    proxy_read_timeout 120s;
    
    proxy_pass http://127.0.0.1:3000;
    
    proxy_set_header Host $host;
    
    proxy_http_version 1.1;
    
    proxy_set_header Upgrade $http_upgrade;
    
    proxy_set_header Connection "upgrade";
    
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_set_header X-Real-IP $remote_addr;
    
    }
    
    location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
    
    proxy_pass http://37.143.15.183:81;
    
    proxy_redirect http://37.143.15.183:81/ /;
    
    proxy_set_header Host $host;
    
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_set_header X-Forwarded-Proto $scheme;
    
    proxy_set_header X-Real-IP $remote_addr;
    
    }
    
    location @fallback {
    
    proxy_pass http://37.143.15.183:81;
    
    proxy_set_header Host $host;
    
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
    proxy_set_header X-Forwarded-Proto $scheme;
    
    proxy_set_header X-Real-IP $remote_addr;
    
    }
    
    include /usr/local/ispmgr/etc/nginx.inc;
    
    }
    

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

     

    service nginx restart
    

    Запускаем проект

     

    start site
    
    monit -d 60 -c /etc/monit/monitrc
    

    Открываем site.ru, и если все в порядке, увидите приветствие от Express.

     

    ПС. более подробно можно почитать на забугорном сайте

     

    http://howtonode.org/deploying-node-upstart-monit