Лимиты на загрузку файлов в php.ini
Лимиты на загрузку файлов в php.ini
Лимиты на загрузку файлов PHP необходимо искать в настройках php.ini и менять по требованию:
post_max_size = 50M
Показывает возможный объем загрузки файлов за один POST запрос.
upload_max_filesize = 50M
Показывает максимальный объем одного файла при загрузке на сервер.
memory_limit = 256M
Максимально возможное выделение памяти на выполнение работы скрипта.
Translation component для Yii
Translation component для Yii
Чтобы не упустить перевести все метки в Yii первой версии имеется соответсвующие событие OnMissingTranslation.
Оно позволяет задавать нужный handler для обработки пропущенных переводов.
Достаточно написать компонент для этого:
class Translation extends CApplicationComponent
{
public static function handler($messageEvent)
{
Yii::log("'" . $messageEvent->message . "' => '',", 'info', $messageEvent->category . '.' . $messageEvent->language);
}
}
OpenPGP и режим PHP-CLI
OpenPGP и режим PHP-CLI
При установке расширения OpenPGP скорее всего записи об установке и конфигурационные файлы будут обновлены только для настроек интерпретатора при работе через nginx, apache и тд
Расширение не ставится по умолчанию для консольной работы PHP.
Чтобы прописать пусти и настройки OpenPGP необходимо открыть php-cli / php.ini и там вручную прописать расширение и указать путь до so файла:
The partition with /var/lib/mysql is too full! — решение Ubuntu
The partition with /var/lib/mysql is too full! — решение Ubuntu
Проблема возникает когда места на диске кончается и запустить MySQL невозможно.
Нужно почистить диск, удалив старые логи, архивы и тд.
Мне помогла команда:
sudo apt-get clean
Функция получения баланса любого адреса Bitcoin
Функция получения баланса любого адреса Bitcoin
При помощи сервиса Blockchain.info можно узнавать финальный баланс запрашиваемого bitcoin адреса просто обратившись через GET запрос к серверу блокчейна.
Для этого мы просто напишем функцию, которая будет отправлять запрос и выдавать json данные по финальному балансу адреса:
function getAddressInfo($address)
{
$data = @file_get_contents('https://blockchain.info/ru/rawaddr/'.$address);
$data = json_decode($data);
return $data;
}
Теперь чтобы получить баланс нужно дать на вход адрес и вытащить final_balance:
Записи от которых прошло 5 минут — MySQL
Записи от которых прошло 5 минут — MySQL
SQL запрос получения выборки данных, от которых прошло 5 минут после создания:
SELECT * FROM `table` WHERE (`date` + INTERVAL 5 MINUTE) < NOW()
Leave a Comment
Vagrant power off — все машины одной командой
Vagrant power off — все машины одной командой
Отключить все vagrant машины одной командой:
for VM in `VBoxManage list runningvms | awk '{ print $2; }'`; do VBoxManage controlvm $VM poweroff; done
Leave a Comment
Access Control Yii2 + анонимная функция
Access Control Yii2 + анонимная функция
В Yii2 появилась возможность повесить свою бизнес логику в виде анонимной функции для контроля доступа к странице.
Теперь вы можете делать какие-то действия и возвращать либо true либо false для доступа к странице.
Сделать это можно следующим образом:
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions'=>['index','view','create','update','delete'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action) {
return (Yii::$app->user->identity->login=="superuser");
}
],
],
],
];
}
В данном коде мы добавляем в список поведение AccessControl, прописываем actions и ставим анонимную функцию на matchCallback.
Шаблоны ActiveForm в Yii2
Шаблоны ActiveForm в Yii2
Шаблон формы ActiveForm в Yii2 с возможностью задания шаблона вывода полей, списков из базы данных, списков из готового массива значений.
<?php
$form = \yii\widgets\ActiveForm::begin([
'fieldConfig' => [
'template' => "<div> {label} </div> <div>{input} {error}</div>\n",
'labelOptions'=>['class' => 'control-label'],
],
]);
?>
<?= $form->field($model, 'name')->textInput(['class'=>'field class']) ?>
<?= $form->field($model, 'hiddenname')->hiddenInput(['value'=>'some value'])?>
<?= $form->field($model, 'user_id')->dropDownList(\yii\helpers\ArrayHelper::map(\app\models\User::find()->all(), 'id', 'login')) ?>
<?= $form->field($model, 'type')->dropDownList(['0'=>'Ноль','1'=>'Один']) ?>
<?= $form->field($model, 'agree')->checkbox(['class'=>'example','template'=>'<tr><td class="fr">{label} </td><td>{input} {error}</td>'])->label('Согласен с правилами сервиса') ?>
<?= Html::submitButton($model->isNewRecord ? 'Создать' : 'Обновить', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
<?php ActiveForm::end(); ?>
Для каждого field можно определить свой template вывода как в примере с checkbox.
SSH ключи + DigitalOcean доступ
SSH ключи + DigitalOcean доступ
1. Создаем SSH ключ:
ssh-keygen -t rsa
2. Получаем SSH публичный ключ:
cat ~/.ssh/id_rsa.pub
3. Теперь для настройки аутентификации по SSH на вашем сервере делаем команду (не забываем написать IP адрес сервера):
cat ~/.ssh/id_rsa.pub | ssh root@[your.ip.address.here] "cat ~/.ssh/authorized_keys"