Что нужно сделать (минимально) для развертывания проекта на рабочем сервере? Инструкция ниже применима к серверам без автодеплоя, например, для небольших заказов размещаемых на обычных хостингах клиентов.
(далее…)Ремонт apt:
apt download python3-minimal sudo apt install --reinstall ./python3-minimal_*.deb sudo apt install -f
Заметки об Олламе (ollama)
Что такое Оллама (ollama)? Это инструмент для запуска больших языковых моделей (LLM — Large Language Model). С помощью Олламы можно запускать на своём сервере или домашнем компьютере публичные языковые модели. Языковых моделей много, даже очень много, и можно найти подходящую под свои задачи и доступные вычислительные мощности.
(далее…)Удаление ollama из Линукса (Linux) и Виндоуз (Windows)
Что такое ollama описывать сейчас не буду, кто в теме, тот в теме, тут нужно полноценное видео или внушительных размеров статью писать. На это, как обычно, времени не хватает. Теперь к делу. После установки ollama в свою систему вы наверняка обрадуетесь её функционалу, также как и я, но заметите одну странность — отсутствие штатной возможности остановить сервис. Да, вы можете остановить сервис в Линуксе как и любой другой вот так:
systemctl stop ollama.service
Сервис остановится, но при повторном запуске начнёт выдавать ошибки, по крайнём мере в моём случае было так. Да еще при запуске языковых моделей начнёт скачивать их заново, причём, даже тех, которые уже скачаны и настроены. Исходя из всего этого я решил использовать ollama через Докер, а из текущей системы полностью удалить. Скорее всего, к подобным выводам пришли и вы, раз попали на эту страницу.
Удаление в Линуксе:
sudo systemctl stop ollama sudo systemctl disable ollama sudo rm /etc/systemd/system/ollama.service sudo systemctl daemon-reload sudo rm /usr/local/bin/ollama sudo userdel ollama sudo groupdel ollama
Удаление в Виндоуз как обычно проще, оно осуществляется через стандартные «Программы и компоненты». Команд нет, выбираете из списка ollama и нажимаете «Удалить».
Проверка установленных версий .NET на Windows 10 через PowerShell
Краткий вариант:
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match '^(?!S)\p{L}'} | Select PSChildName, version
Изменение hostname в WSL2 (Ubuntu) навсегда
Для изменения имени хоста в терминале достаточно войти в WSL с помощью команды wsl и ввести:
sudo hostname MY_NEW_HOST_NAME
Имя хоста изменится, но после перезагрузки WSL система создаст новое имя и присвоит вашей машине. Это происходит при каждом запуске WSL по умолчанию. Для изменения этого поведения необходимо добавить в конфигурацию WSL (/etc/wsl.conf) следующие настройки:
... hostname = MY_NEW_HOST_NAME generateHosts = false ...
Также необходимо указать новое наименование хоста в /etc/hosts вместо созданного системой:
... 127.0.0.1 MY_NEW_HOST_NAME MY_NEW_HOST_NAME ...
После этих манипуляций новое наименование хоста останется навсегда. Для проверки этого выключите WSL и включите заново:
wsl --shutdown wsl
Настройка прав на файлы и директории в Docker-контейнере для Linux-систем
При использовании стека PHP+DOCKER (+ все остальное) на Linux-системах у вас, скорее всего, возникнут проблемы с правами в контейнере. Нельзя будет записать какой-либо файл в директорию, начнут вылетать ошибки при сохранении логов и всё в таком духе. При использовании фреймворков, например, такого как Laravel, эта проблема уже решена его разработчиком, а во всех других случаях решать коллизию с правами нужно своими руками. Ниже приведён один из простых вариантов решения.
(далее…)Docker + Selenium + PHP
- packagist.org/packages/php-webdriver/webdriver
- github.com/SeleniumHQ/docker-selenium
- github.com/php-webdriver/php-webdriver/blob/HEAD/example.php
- github.com/php-webdriver/php-webdriver/wiki/Example-command-reference
- github.com/SeleniumHQ/docker-selenium/blob/trunk/docker-compose-v3.yml
- registry.hub.docker.com/r/selenium/node-chrome
- habr.com/ru/articles/353612 — управляем браузером с помощью Selenium.
- stackoverflow.com/questions/3422262/how-to-take-a-screenshot-with-selenium-webdriver
- qna.habr.com/q/589333 — дождаться полной загрузки страницы в Selenium на PHP.
- stackoverflow.com/questions/43545388/how-do-i-get-selenium-to-wait-for-a-page-to-load-fully-before-executing-the-clic
Сбор данных о подписчиках группы Вконтакте (VK) через API с помощью execute
В текущем проекте мне понадобилось довольно плотно взаимодействовать с API Вконтакте. Раньше с ним работать не приходилось. Оказалось, он довольно удобный и функциональный, с опрятной документацией и понятными примерами. Через него можно решать огромное количество задач. Простая схема «вопрос-ответ», впрочем, как и для любого другого API, позволяет легко получать статистику, управлять группами, пользователями и т.д.
(далее…)Работа с Redis из командной строки (консоли)
Подключение к серверу Redis:
redis-cli -h <host> -p <port>
Если уже вошли (через redis-cli), но не аутентифицировались, то:
AUTH <password>
Пароль можно задать в файле конфигурации «/etc/redis/redis.conf».
Основные команды:
KEYS * SET key value SETNX key1 value2 MSET key1 "value1" key2 "value2" key3 "value3" GET key MGET key1 key2 key3 key4 EXISTS key INCR MyIntegerValue EXPIRE keyname 100 TTL keyname TYPE key LRANGE 0 -1 [просмотр всего списка] LRANGE 0 5 [просмотр с 0 по 5 элемент списка] HSET hash_name key1 value1 [задать значение] HGETALL hash_name [показать все из хеша] HKEYS hash_name [показать ключи] HVALS hash_name [показать значения] ZRANGE keyname 0 -1 [показать все значения из zset] ZRANGE keyname 0 -1 WITHSCORES [показать все значения с весами из zset] FLUSHALL [удаляет все, будьте осторожны!]
Полезные ссылки
- Официальный сайт — redis.io
- Все команды — redis.io/commands
- Как начать пользоваться — redis.io/docs/getting-started
- Шпаргалка по Redis с Хабра — habr.com/ru/articles/204354