Manuals
RU EN

Старт · 22

Требования PHP и MySQL для скрипта

Старт 5 мин чтения

Требования — это то, на чём скрипт либо встаёт, либо сыпется Fatal Error на первом же файле. «Хостинг с PHP» без версии и расширений не считается. На shared часто в панели красуется PHP 7.4 по умолчанию, а вы уже льёте релиз под 8.1 — потом удивляетесь белому экрану.

Ниже минимум, с которым мы ставим продукты Microscript. Конкретный архив может требовать чуть больше (например, intl или zip) — смотрите readme в комплекте. Но базу из этого списка игнорировать нельзя.

Версия PHP

Нужен PHP 8.x. Не 5.6 «потому что на старом Денвере работало». Не 7.0 без поддержки. Рабочие ветки, с которыми живём: 8.1–8.3. Если хостер предлагает только 7.4 и «скоро обновим» — либо меняйте тариф/хостинг, либо берите VDS, где версию ставите сами.

Проверка на сервере:

php -v
php -m

В панели Beget/Timeweb/ISPmanager обычно есть селектор версии для домена. Выставили 8.2 для сайта — убедитесь, что CLI для cron тоже 8.2, а не системный 7.x из /usr/bin/php. Иначе веб живой, а крон-задачи падают на синтаксисе.

Локально MicroServer уже с PHP 8. Альтернатива старого Денвера описана отдельно: Денвер PHP 8.

Расширения

Без этого установщик или админка отвалятся некрасиво:

  • mysqli — основное подключение к MySQL/MariaDB. PDO иногда есть рядом, но наши скрипты опираются на mysqli.
  • mbstring — строки, поиск, письма. Без него часть функций режет кириллицу.
  • json — почти всегда собран в ядро, но на кастомных сборках проверяйте.
  • gd или imagick — превью, ресайз загрузок. На shared чаще gd.
  • curl — внешние API, платежи, вебхуки.
  • openssl — HTTPS-запросы наружу, часть авторизаций.

Реже, но встречается: zip, xml, intl, fileinfo. Если в логе Call to undefined function ... — смотрите имя функции и доставляйте модуль, а не «переустанавливайте скрипт».

В php.ini ещё смотрите лимиты:

  • upload_max_filesize и post_max_size — иначе фото в объявлении не влезет.
  • memory_limit — 128M часто мало на тяжёлых импортах; 256M спокойнее.
  • max_execution_time — долгие операции в админке.

MySQL / MariaDB

Подойдёт MySQL 5.7+/8.x или MariaDB 10.3+. Кодировка базы и таблиц — utf8mb4. Если создали базу в latin1 «потому что так панель предложила» — потом будете чинить дампы и кракозябры.

Пользователь БД должен уметь SELECT/INSERT/UPDATE/DELETE/CREATE/ALTER/INDEX на своей базе. На установке скрипт поднимает таблицы — без CREATE не взлетит. На shared панель обычно выдаёт нужный набор галочками.

Хост подключения:

  • локально — 127.0.0.1 (иногда localhost идёт через сокет — оба варианта ок, если служба слушает);
  • на shared — значение из карточки БД, не всегда localhost;
  • снаружи VDS MySQL лучше не открывать — см. firewall.

Права на файлы и каталоги

Веб-пользователь (www-data, apache, nobody — как у хостера) должен писать в upload, cache, tmp и похожие каталоги из комплекта. Каталоги 755, файлы 644 — базовая норма. Подробный разбор: chmod для скрипта.

Конфиг с паролем БД держите вне лишнего доступа. Если скрипт кладёт конфиг в публичный корень — не выставляйте world-writable.

Веб-сервер

Apache с mod_rewrite или Nginx + PHP-FPM. На Nginx правила из .htaccess сами не подхватятся — их надо перенести в конфиг сервера. Каркас: Nginx + PHP-FPM.

Для ЧПУ и админки нужен работающий rewrite. Если открывается только главная, а внутренние URL дают 404 — проблема чаще в rewrite, чем в «сломанном PHP».

Cron и почта

Многим продуктам нужен cron: очереди, снятие VIP, очистка. На shared смотрите, есть ли cron в тарифе и какой путь к php-cli. Мануал: cron-задачи.

Почта: mail() на shared то работает, то уходит в спам. Для боевого — SMTP. Это не «требование PHP», но без почты формы регистрации выглядят мёртвыми.

Быстрый чеклист перед заливкой

  1. PHP 8.x на домене и в CLI.
  2. php -m показывает mysqli, mbstring, gd/imagick, curl.
  3. Пустая база utf8mb4, пользователь привязан.
  4. Document root смотрит в корень скрипта.
  5. Каталоги загрузок writable.

Если база не коннектится уже на установке — ошибка подключения MySQL. Общий порядок заливки — установка скрипта. Сомневаетесь в тарифе — какой хостинг брать.

phpinfo() временно. На shared удобно один раз выложить phpinfo, сверить модули и удалить файл. Не оставляйте его в корне навсегда — лишняя карта сервера для посторонних.

Как снять phpinfo безопасно

Файл info.php с <?php phpinfo();, открыли, сверили, удалили. Не называйте его очевидно надолго. На VDS можно смотреть модули через CLI без веб-файла — предпочтительнее.

Разница PHP веб и CLI

В панели для сайта выбран 8.2, а php -v по SSH показывает 7.4. Веб-установка пройдёт, cron на CLI — нет. Укажите полный путь к php82 в cron: cron. На локалке Windows та же история с несколькими php.exe: Composer, MicroServer.

short_open_tag и устаревшие опции

Современные скрипты не должны требовать short_open_tag. Если где-то в старых кастомах встретите — лучше переписать теги, чем включать короткие на всём сервере. magic_quotes давно нет — гайды, где их «настраивают», выкидывайте.

Таймауты и сессии

Кроме memory_limit смотрите session.gc_maxlifetime, если жалобы на быстрый разлогин. Это не всегда «баг скрипта». На балансерах с несколькими нодами без sticky session тоже будут чудеса — для одного VDS не актуально.

Чеклист для хостера / админа

Можно переслать списком:

  • PHP 8.1+ для домена;
  • mysqli, mbstring, curl, gd, openssl, json;
  • MySQL/MariaDB, возможность создать БД utf8mb4;
  • возможность cron с CLI той же версии PHP;
  • запись в каталоги upload/cache;
  • лимит upload не ниже 16–32M для фото.

Если на всё «нет» — другой тариф или VDS / root. Сравнение: хостинг.

Связанные поломки

Не коннектится БД: ошибка MySQL. 500 после установки: ошибка 500. Права: chmod. Установка: установка. Локальная замена Денвера: Денвер PHP 8. Боевой веб на Nginx: Nginx + PHP-FPM.

Частые вопросы

Требования php mysql для скрипта?

Перед установкой сверьте PHP 8, mysqli и права на запись. Иначе установщик остановится на первом шаге.

Сколько времени занимает «Требования PHP и MySQL для скрипта»?

Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.

Нужен ли отдельный сервер?

Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.

Установка готового скрипта php mysql?

Разбор рядом в мануале по этому запросу. установка готового скрипта php mysql

Ошибка подключения к базе при установке скрипта?

Разбор рядом в мануале по этому запросу. ошибка подключения к базе при установке скрипта

Раздел
Установка PHP-скрипта

От требований к серверу до SSL и cron — все мануалы по запуску готового PHP-скрипта.