Server Environment Setup for 1C-Bitrix
After a PHP update, your site often breaks. A typical scenario for 1C-Bitrix project owners: updating a module, switching PHP versions, or migrating to a new server often brings environment compatibility errors. The server environment setup is the key factor for stable operation. Incorrect php.ini parameters, missing extensions, wrong permissions lead to a white screen, 500 responses, or performance degradation. Our experience shows: a proper environment yields a 2–3x performance boost without changes in business logic.
White screen after PHP update is typical. Or the error mysql_* functions are deprecated when installing a new module. In 9 out of 10 cases, the problem is not in the code but in the environment: wrong versions, missing extensions, incorrect permissions. Proper setup not only eliminates errors but also significantly speeds up your site.
We are a team of certified 1C-Bitrix specialists. We'll set up your server environment turnkey so you can forget about compatibility. We've already configured over 50 projects — from simple VPS to high-load clusters.
What server requirements does 1C-Bitrix have?
Current recommendations for Bitrix (check the system requirements for your version):
| Component | Recommended | Minimum |
|---|---|---|
| PHP | 8.1–8.2 | 7.4 |
| MySQL/MariaDB | 8.0 / MariaDB 10.6 | MySQL 5.7 |
| Nginx | 1.20+ | 1.18 |
| PHP-FPM | paired with PHP | — |
| Redis / Memcached | Redis 7 / Memcached 1.6 | — |
Bitrix VM or manual setup?
Bitrix VM is the official installer for CentOS/Rocky Linux with ready-made configs and the bx-manage.sh script. It's good for a quick start but tied to a specific OS and hard to customize. Manual setup on Ubuntu/Debian gives full control: you choose component versions, easily integrate Docker, Ansible, GitLab CI. For projects with non-standard requirements, manual setup is 2–3 times more effective because it allows adapting every detail to business logic.
Why is proper PHP configuration critical?
Without precise tuning of PHP extensions and php.ini, Bitrix works unstably. Here are the mandatory extensions:
-
mbstring— Cyrillic support -
gdorimagick— image resizing viaCFile::ResizeImage() -
curl— HTTP requests (payments, integrations, SMS) -
soap— 1C integration -
zip— marketplace updates -
opcache— critical for performance -
pcre— component template engine
php.ini parameters for Bitrix:
memory_limit = 256M ; minimum 128M, for 1C import — 512M max_execution_time = 120 ; standard; for cron tasks — 0 upload_max_filesize = 100M ; file uploads to media library post_max_size = 110M max_input_vars = 10000 ; Bitrix forms with many fields default_charset = UTF-8 date.timezone = Europe/Moscow opcache.enable = 1 opcache.memory_consumption = 256 opcache.max_accelerated_files = 20000 opcache.revalidate_freq = 60 ; in production can be 300 How to configure permissions and open_basedir?
Bitrix requires write access to several directories. Correct permissions are the foundation of security and stability:
chown -R www-data:www-data /var/www/bitrix chmod -R 755 /var/www/bitrix chmod -R 777 /var/www/bitrix/bitrix/cache chmod -R 777 /var/www/bitrix/upload chmod -R 777 /var/www/bitrix/bitrix/managed_cache open_basedir is a frequent source of errors. If enabled, add Bitrix paths:
open_basedir = /var/www/bitrix:/tmp:/var/log/php How to configure MySQL for Bitrix?
MySQL requires attention to innodb_buffer_pool_size (70% of RAM for InnoDB) and sql_mode. In MySQL 8.0, the default ONLY_FULL_GROUP_BY can break old queries. We usually set sql_mode = '' until refactoring. Also important: max_allowed_packet — set 256M for 1C integrations.
| Parameter | Value | Comment |
|---|---|---|
| innodb_buffer_pool_size | 70% RAM | For indexes and data |
| sql_mode | '' | Disable strict modes |
| max_allowed_packet | 256M | For 1C exchange |
| character_set_server | utf8 | Trouble-free Cyrillic |
From our practice: migration to a new server
A client — an e-store with 10,000 products — migrated from shared hosting (PHP 7.4, MySQL 5.7) to VPS (PHP 8.1, MySQL 8.0). After migration, the catalog wasn't displayed, logs showed Notice: Undefined variable and mysql_num_rows(): Argument #1 must be of type mysqli_result. Cause: outdated template code used old MySQL API incompatible with PHP 8. We enabled error_reporting = E_ALL in dev environment, fixed outdated calls, replaced with $result->num_rows. Also temporarily set sql_mode = '' in MySQL 8 until refactoring. After setting up caching via Redis, page generation time halved. Server resource savings were around 30%. Additionally, agent execution time decreased by 50%, eliminating the need for an extra server.
What's included in server environment setup for 1C-Bitrix
- Analysis of the current stack — check versions, configurations, compatibility.
- Installation and configuration of the stack — PHP, MySQL, Nginx, Redis, Memcached.
- Optimisation of
php.iniandmy.cnf— tailored to your project's load. - Permission setup —
chmod,chown,open_basedir. - Performance testing — load testing, caching verification.
- Documentation and training — we hand over access, configs, and maintenance instructions.
How we set up: stages of work
- Analysis of the current environment and project requirements.
- Design of the target stack considering load and budget.
- Implementation: installation and configuration of all components.
- Testing: functional, load, integration checks.
- Launch and support: handover of documentation, post-launch assistance.
Estimated timeframes
- Standard project (VPS, no migration) — 1–2 days.
- Complex project (migration, non-standard stack) — 2–3 days.
- Full post-launch support — from 1 day per month.
Order a turnkey server environment setup for 1C-Bitrix. We'll assess your project within 1 day. Contact us — we'll select the optimal stack for your load.

