Сообщения

Сообщения за 2022

Docker - Bind for 0.0.0.0:4000 failed: port is already allocated

docker container ls docker rm -f <container-name>

.gitignore не работает

Решение git rm -rf --cached . git add .

Увеличение Swap

 mkdir /media/swap/ fallocate -l 128G /media/swap/swapfile.img chmod 600 /media/swap/swapfile.img sudo mkswap /media/swap/swapfile.img /etc/fstab #SWAP128 /media/swap/swapfile.img none swap sw 0 0 swapon /media/swap/swapfile.img

Решение ошибки Laravel /storage/logs permission denied

There is no existing directory at “…/storage/logs” and its not buildable: Permission denied Решение: php artisan route:clear php artisan config:clear php artisan cache:clear Все

Иногда redis-server не запускается, выдавая ошибку: signal-handler Received SIGTERM scheduling shutdown

Иногда redis-server не запускается, выдавая ошибку:signal-handler Received SIGTERM scheduling shutdown... Увидеть её можно в логе, например так:tail -f /var/log/redis/redis.log Простое решение - увеличить лимиты:sysctl vm.overcommit_memory=1 sysctl -w net.core.somaxconn=65535 Если warning'ов нет, а ошибка осталась, то вариантом решения может быть установка увеличенных таймаутов. Для этого в файл - /etc/systemd/system/redis.service.d/limit.conf необходимо добавить следующие строки:[Service] TimeoutStartSec=300s TimeoutStopSec=90s *Время в TimeoutStartSec и TimeoutStopSec указано для примера, вам могут понадобиться другие значения.

5 советов по упрощению кода Laravel

Изображение
  1. Упростите операторы if/else При написании методов или функций, которые используют операторы if/else для проверки условия, мы можем очистить функцию или метод, используя сокращенную версию простого оператора if/else следующим образом: 2. Используйте Laravel  exists() вместо  count() проверки существования экземпляра модели. При запросе к базе данных и попытке доступа к экземпляру модели иногда наши запросы Eloquent возвращаются пустыми или нулевыми.  Первым делом нужно проверить, равно ли количество моделей 0, а если нет, то что-то существует, но Laravel предоставляет готовый метод для проверки существования экземпляра модели. 3. Используйте  modelKeys() для получения первичных ключей вместо pluck() Когда мы обращаемся к модели и пытаемся получить первичные ключи или идентификаторы модели, самый простой способ сделать это — использовать  pluck() для получения определенных полей.  Но если все, к чему вы хотите получить доступ, это ключи модели или первичные ключи и ничего больше (во

Топ-8 плохих практик безопасности в Laravel, о которых вы должны знать

Изображение
Настоящая безопасность заключается в самой практике кода, мы не можем определить, безопасен фреймворк или нет, Laravel настолько безопасен, насколько это возможно, и максимально оптимизирован, это действительно зависит от разработчика. Здесь я перечислю  8 самых плохих методов обеспечения безопасности с советами  , как их избежать. SQL-инъекция через имена столбцов и необработанные запросы. SQL-инъекция через правила проверки. Внедрение правил проверки. Использование GET для не-GET-маршрутов. Использование $request->all(). Забыть режим отладки в продакшене. XSS с использованием неэкранированного оператора данных. XSS с использованием атрибута href. SQL-инъекция через имена столбцов: Очень распространенная практика передачи управляемых пользователем столбцов в Query Builder, думая, что Laravel проверяет их с помощью привязки параметров PDO, но, как упоминается в  документации Laravel  : PDO не поддерживает привязку имен столбцов.  Поэтому вы никогда не должны позволять вводу пользова