Skip to content

Instantly share code, notes, and snippets.

@1234ru
1234ru / symbolic-links-vs-direct-assignment-in-cycle.php
Last active March 28, 2024 21:44
Memory usage is unaffected by using a symbolic link instead of cyclic direct assignment
# This script should be run from one of .git/hooks files.
# Current directory will be .git
# git commands don't need directory be changed to
# project root.
# composer command does need.
export composer_exec="php ~/composer"
export command="git diff --name-only $oldrev $newrev -- composer.lock"
read oldrev newrev refname
export was_changed=$($command)
@1234ru
1234ru / index.md
Last active February 14, 2024 11:14
Оглавление
@1234ru
1234ru / misc.md
Last active September 13, 2023 23:42
Разное

mysqldump: записать только структуру БД

mysqldump some_db --no-data --compact > some_file.sql
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `some_table` (
@1234ru
1234ru / mysqlsh.md
Last active September 13, 2023 23:47
Заметки о MySQL Shell

Улучшенная по сравнению с mysql оболочка командной строки - mysqlsh.

https://dev.mysql.com/doc/mysql-shell/8.0/en/

В стандартный пакет сервера MySQL не входит, нужно загружать отдельно. Можно просто распаковать ZIP-архив и, при желании, прописать в PATH.

Соединение с сервером

@1234ru
1234ru / nginx-site-config-example.conf
Last active April 22, 2023 01:47
Пример директив конфигурации nginx для сайта
# $php_upstream должна быть определена в вышестоящей конфигурации
set $router /router.php;
location = /nginx.conf { return 404; }
location ^~ /.git { return 404; }
location ^~ /vendor { return 404; } # для Composer
location = /composer.json { return 404; }
location @router {
// IE11 friendly syntax
var _Local = _Local || {};
_Local.FIAS = function() {};
/**
* @typedef {Object} FIAS~fieldsConfigItem
* @property {string} type - $.fias.types.city|street|etc.
* @property {string|void} selector - input[name="street"]
@1234ru
1234ru / https-ssl.md
Last active January 12, 2023 10:16
Настройка работы сайта по протоколу HTTPS, получение и установка SSL-сертификата

Получение сертификата

Есть множество центров сертификации, которые ищутся по запросу "купить ssl сертификат".

Существует три уровня сертификатов, которые отличаются скрупулезностью проверки запросившей сертификат организации и, соответственно, стоимостью (в несколько раз). При этом технически степень защиты на всех уровнях одинаковая.

Самый простой сертификат - уровня DV - стоит в пределах 2000 руб. на год (январь 2023 г.). Такой сертификат обычно действует и на домен с www, помимо корневого. (Например, GlobalSign AlphaSSL на firstssl.ru - 1872 руб.)

Срок действия сертификата не включает день "до". Например, если срок - до 2023-01-13, то сертификат действителен до 12-го числа включительно.

@1234ru
1234ru / mysql.md
Last active June 8, 2020 12:52
Разное про СУБД MySQL

Точечная замена элементов в JSON-полях

INSERT INTO some_table 
  (id, json_column)
VALUES
  (1, '{"x": 1000}')
ON DUPLICATE KEY UPDATE
  json_column = JSON_SET(json_column, "$.x", 1000)

Предположим, у нас есть скрипт givefile.php. Допустим, мы откуда-то уже взяли содержимое файла и хотим отдать его под именем somefile.txt:

<?php
$body = 'Это содержимое файла';

header("Content-type: application/octet-stream"); // этот заголовок нужен, 
                                                  // чтобы браузер сразу предложил сохранить файл на диск
header("Content-disposition: filename=somefile.txt"); // а в этом заголовке передается имя файла