09 Март, 2017

Полезности по MySQL

Пишу сюда некоторые запросы чтобы быстро скопипастить их в случае чего:

Получить 10 таблиц из всех БД на сервере с самым большим количеством записей

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS FROM information_schema.TABLES ORDER BY TABLE_ROWS DESC LIMIT 10;

Получить 10 самых объемных таблиц из всех БД на сервере в мегабайтах

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC LIMIT 10;

Получить 10 таблиц из БД dbname с самым большим количеством записей

SELECT TABLE_NAME, TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname' ORDER BY TABLE_ROWS DESC LIMIT 10;

Получить 10 самых объемных таблиц из БД dbname в мегабайтах

SELECT TABLE_NAME, TABLE_ROWS, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname' ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC LIMIT 10;
17 Февраль, 2017

Авторизуемся без пароля в Cocpit CMS

Всем привет!

Нередко возникает такая ситуация когда пароль от админки сайта забыт, но при этом есть FTP/SSH или еще какой-либо другой доступ к файлам CMS.

Итак, тут все очень просто

Открываем файл cockpit/modules/core/Auth/bootstrap.php и закомменчиваем 20 строчку:

Cocpit CMS Authorize without password

И авторизуемся под необходимым пользователем с ЛЮБЫМ паролем. После того как войдете не забудьте расскомментировать строчку обратно иначе на сайт сможет зайти кто угодно.

03 Август, 2016

Добавляем страницы ошибок в Cockpit CMS

Привет! Как ни странно в официальной документации данной CMS, а также в документации роутера Lime который по умолчанию идет в комплекте с ней отсутствуют упоминания о том как добавить корректные обработчики страниц 404 и 500. Ответ нашелся в одном из issue на гитхабе посвященном вообще другому вопросу =)

Итак, чтобы все заработало перед маршрутами добавляем вот этот обработчик:

$app = new Lime\App();

$app->on("after", function() {
        switch($this->response->status){
            case "404":
                $this->response->body = $this->render(__DIR__."/views/404.php");
                break;
            case "500":
                $this->response->body = $this->render(__DIR__."/views/500.php");
                break;
        }
    });

$app->bind('/', function () use ($app) {

Как вы видите тут тоже кроется небольшой баг который мы обходим прописыванием абсолютного пути к вьюшкам. Вот и все, теперь все работает =)

19 Июль, 2016

Чиним роутер Cockpit CMS под FastCGI

Привет! Не факт что это кому то еще понадобится кроме меня, но записать решение стоит. Итак, есть CockpitCMS в которой из коробки есть микрофреймворк Lime используюийся для роутинга и рендера вьюх. Так вот, если у вас PHP работает через FastCGI вся эта балалайка работать не будет.

Проблема в том что в роутере используется $_SERVER['PATH_INFO'] которая в данном случае будет пуста. Я починил вот так:

index.php

...

include_once('cockpit/bootstrap.php');

$_SERVER["PATH_INFO"] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); //чиним этой строкой

$app = new Lime\App();

$app->bind('/', function () use ($app) {
...

Заодно также добавил фикс в .htaccess убираюший лишние слеши:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
02 Май, 2016

Ускоряем Soft RAID1 ext3

На одном из серверов возникла проблема после установки Proxmox 4 - катастрофически низкая скорость записи данных. Узнали вообще из монитора производительности 1С-Битрикс. Потом проблема подтвердилась утилитой pveperf.

pveperf /var/lib/vz/
CPU BOGOMIPS:      57602.48
REGEX/SECOND:      1789869
HD SIZE:           1809.50 GB (/dev/mapper/pve-data)
BUFFERED READS:    61.37 MB/sec
AVERAGE SEEK TIME: 22.60 ms
FSYNCS/SECOND:     17.53
DNS EXT:           25.42 ms
DNS INT:           53.82 ms (ru)

Параметр FSYNCS должен быть как минимум выше 200. Починилось добавлением опций монтирования в fstab (data=writeback,barrier=0):

/dev/pve/data   /var/lib/vz     ext3    defaults,data=writeback,barrier=0       1       2

Стало как-минимум вот так, как максимум доходило до 2500.

pveperf /var/lib/vz/
CPU BOGOMIPS:      57602.48
REGEX/SECOND:      1732888
HD SIZE:           1809.50 GB (/dev/mapper/pve-data)
BUFFERED READS:    75.74 MB/sec
AVERAGE SEEK TIME: 17.72 ms
FSYNCS/SECOND:     689.35
DNS EXT:           20.51 ms
DNS INT:           32.89 ms (ru)
26 Ноябрь, 2015

CentOS 6 - обновить git

В репозиториях CentOS 6 лежит уже довольно старая версия пакета git-1.7.1-3 Все бы с ним хорошо, да есть один баг из-за которого в нем не работает хук из вот этой заметки: http://mrdeveloper.ru/post-36/git-deploy-hooks

Он ругается вот так:

remote: fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree.

Ну что же, настало время исправить эту ополошность. Обновим git из репозитория GitLab.

wget -O /etc/yum.repos.d/PUIAS_6_computational.repo https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/install/centos/PUIAS_6_computational.repo

wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias

rpm -qa gpg*

yum repolist

yum --enablerepo=PUIAS_6_computational install git

git --version

В итоге получаем вполне рабочий git 1.8.3.1

Home← Старые записи