- ΠΠ°ΠΏΡΡΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π²ΡΠ΅Ρ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΠ£Π‘ / ΠΠΈΡΡΠΈΠΊΡ24:
- Php-fpm (Apache Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ)
- Nginx
- MySQL (Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Percona)
- Memcached
- Sphinx
- Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΠ΅ΡΡΡ ΠΠΈΡΡΠΈΠΊΡ / ΠΠΈΡΡΠΈΠΊΡ24.
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΡΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°ΠΉΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ email Π΄Π»Ρ LetsEncrypt - Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ).
- ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΠ·Π°ΡΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π΅ΡΡΠΈΠΉ php Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ². ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΄ΡΠ΅ (ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ Ρ ΡΠΌΠΎΠΌ).
- Π£Π»ΡΡΡΠ΅Π½Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. ΠΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π²Π·Π»ΠΎΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΉΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΎΠ½ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°ΠΉΡΠ°ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΈ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈΡ .
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ ΠΈ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ² / ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ.
- ΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΠΠ) Ρ
ΡΠ°Π½ΡΡΡΡ Π½Π° Ρ
ΠΎΡΡ-ΠΌΠ°ΡΠΈΠ½Π΅:
- ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΡΠ΅ΡΡΡΡΡΡ.
- ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π²ΡΠ΅Ρ ΡΠ°ΠΉΡΠΎΠ² Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΄ΠΎΠΊΠ΅Ρ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ (ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ).
- Mailhog Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΡ ΠΏΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
- Msmtp Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎΡΡΡ Ρ Π±ΠΎΠ΅Π²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
- Crontab ΠΈ Π°Π³Π΅Π½ΡΡ Π½Π° ΠΊΡΠΎΠ½Π΅ "ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ".
- ΠΡΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ°ΠΉΡΠ΅.
- Xdebug Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
- MySQL Adminer Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ Π½Π°ΡΡΠΈΠ»ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΠ Π² PhpStorm.
- Traefik ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ Π΄ΠΎΠΊΠ΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
- Π Π΅Π΄ΠΈΡΠ΅ΠΊΡ Ρ www Π½Π° Π΄ΠΎΠΌΠ΅Π½Ρ Π±Π΅Π· www ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π Π΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° https.
- ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ sphinx Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠ² ΠΈ ΡΠ»ΠΎΠ²ΠΎΡΠΎΡΠΌ.
- ΠΠ°Π³Π»ΡΡΠΊΠ°, Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΏΠΎ Π΄ΠΎΠΌΠ΅Π½Ρ.
Push & pull ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΠΉ ΠΠΈΡΡΠΈΠΊΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Push & Pull). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ .
- ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²ΠΎΠΏΡΠΎΡΡ: Π²ΡΡΡΠΏΠ°ΠΉΡΠ΅ Π² Π³ΡΡΠΏΠΏΡ ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ: https://t.me/bitrixdevops.
- ΠΡΠ»ΠΈ ΠΡ Π½Π°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, Ρ ΠΠ°Ρ Π΅ΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Ρ, ΠΏΠΈΡΠΈΡΠ΅ ΡΠΈΠΊΠ΅Ρ ΡΡΠ΄Π°: https://gitlab.com/bitrix-docker/server/-/issues.
Π ΠΏΠ»Π°Π½Π°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ:
- ΠΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ.
- CI/CD Π΄Π»Ρ Π΄Π΅ΠΏΠ»ΠΎΡ Π½Π° Π±ΠΎΠΉ ΠΈ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠΈΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ°).
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ Π΄Π»Ρ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΈ Π±ΠΎΠ΅Π²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ².
- FTP Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ°ΠΉΡΠΎΠ².
- ΠΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠ°Π»ΠΎ ΠΊΡΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΠΈΡΡΠΈΠΊΡ, Π½ΠΎ ΠΎΠ½ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
- ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ².
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ°, Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠΈΡΠΊΠ° Π»ΠΎΠ³ΠΎΠ².
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.
- ΠΠΎΠ»ΡΠ°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ REST API (Π² ΡΠΎΡΠΌΠ°ΡΠ΅ OpenAPI / Swagger).
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ (RabbitMQ, Kafka).
- ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ Kubernetes, ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ².
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ: https://docs.docker.com/engine/install/ubuntu/
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ:
apt install git nano htop apache2-utils
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ: https://docs.docker.com/desktop/install/mac-install/.
ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ.
- Π‘ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΠ°ΠΏΠΊΡ /srv/bitrix-server/:
mkdir -p /srv/bitrix-server/ && cd /srv/bitrix-se 8000 rver/ && git clone git@gitlab.com:bitrix-docker/server.git .
- Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» .env.example Π² ΡΠ°ΠΉΠ» .env - ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ:
cp .env.example .env && nano .env
- COMPOSE_FILE - Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π½Π΅ Π½ΡΠΆΠ½Ρ, ΡΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ, ΡΠ΄Π°Π»ΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ Π² ΡΡΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅.
- MAIN_HOST - Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΡΡΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ. ΠΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° (Π½Π° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π°Ρ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ±ΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ).
- MYSQL_ROOT_PASSWORD - Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ
- TRAEFIK_CERTIFICATESRESOLVERS_LETSENCRYPT_ACME_EMAIL - ΡΠΊΠ°Π·Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠΎΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SSL-ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² LetsEncrypt (ΠΊΡΠ΄Π° Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠ΄Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°)
- TRAEFIK_BASIC_AUTH_USERS - ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ Traefik (ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ)
- TRAEFIK_SSL_MIDDLEWARES - Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π»ΡΡΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°: basic-auth,redirect-to-non-www@file
- TRAEFIK_MIDDLEWARES - Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π»ΡΡΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°: basic-auth,redirect-to-non-www@file,redirect-to-https@file
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» data/traefik/letsencrypt/acme.json (Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² LetsEncrypt).
echo "{}" > data/traefik/letsencrypt/acme.json && chmod 600 data/traefik/letsencrypt/acme.json
- ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ:
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
docker compose up -d
- ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» hosts Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅:
ΠΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ:
sudo nano /etc/hosts
Π ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ ΡΠ°ΠΉΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.# bitrix-docker local 127.0.0.1 bitrix.local 127.0.0.1 traefik.bitrix.local 127.0.0.1 adminer.bitrix.local 127.0.0.1 mailhog.bitrix.local
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΡ (ΡΠΌ. Π½ΠΈΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π» ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°).
- Π Ubuntu ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Ρ Π΄ΠΎΡΡΡΠΏΠ°ΠΌΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΠ. ΠΠ»Ρ Π΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
- ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ data/mysql
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo chown 999:999 .
- Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ bitrix-distr Π² ΠΏΠ°ΠΏΠΊΡ sites ΠΈ Π½Π°Π·Π²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΠΏΠΊΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
test.example.com
:cp -r bitrix-distr/ sites/test.example.com
- Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ° ΡΠ°ΠΉΠ» .env.local.example Π»ΠΈΠ±ΠΎ .env.server.example Π² .env ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π½Π΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΉΡΠ°.
- ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» hosts Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° Π·Π°ΠΏΠΈΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΡΠ°ΠΉΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, test.example.local), Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ ΡΠ°Π½Π΅Π΅. ΠΠ° linux-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ:
sudo nano /etc/hosts
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π° Π² ΡΠ°ΠΉΠ» hosts (Π·Π°ΠΌΠ΅Π½ΠΈΠ² test.example.local Π½Π° ΠΈΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°):
# bitrix-docker local 127.0.0.1 test.example.local www.test.example.local
- ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΡΠ°ΠΉΡΠ° ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ:
docker compose up -d
- ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΄ΠΎΠΌΠ΅Π½ (test.example.local Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΡΡΠ΅) Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°ΠΉΡΠ° ΠΠΈΡΡΠΈΠΊΡ.
- ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΠ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠΌΡ ΠΠ Π΄Π»Ρ ΡΠ°ΠΉΡΠ°, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root, ΠΏΠ°ΡΠΎΠ»Ρ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ .env-ΡΠ°ΠΉΠ»Π΅ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ MYSQL_ROOT_PASSWORD. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ MySQL ΡΠΈΡΠ°Π΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π½ΠΈΠΆΠ΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΎΠ±ΡΠ΅ΠΌ .env-ΡΠ°ΠΉΠ»Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΠΌΠ΅Π½Ρ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ MySQL Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ°:
- ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ /bitrix/php_interface/dbconn.php ΠΈ /bitrix/.settings.php. ΠΠ΅ΡΠ΅ΠΌ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
- ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ MySQL-ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ ΠΠΈΡΡΠΈΠΊΡ (/bitrix/admin/sql.php).
- ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² username, password ΠΈ dbname Π½Π° ΡΠ²ΠΎΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠ½Π°, ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ ΠΈΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ:
CREATE USER username IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON dbname.* TO 'username'; FLUSH PRIVILEGES;
- Π ΡΠ°ΠΉΠ»Π°Ρ /bitrix/php_interface/dbconn.php ΠΈ /bitrix/.settings.php ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠ΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ.
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ .env ΡΠ°ΠΉΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ PROJECT_SSL_MIDDLEWARES ΠΈ PROJECT_MIDDLEWARES ΡΠ°ΠΉΠ»Π° .env ΡΠ°ΠΉΡΠ°. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:
- http -> https
- www -> Π±Π΅Π· www
- Π±Π΅Π· www -> www
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (traefik, adminer, mailhog) Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ .env ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ TRAEFIK_SSL_MIDDLEWARES ΠΈ TRAEFIK_MIDDLEWARES.
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Memcached Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- Π ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ° Π² ΡΠ°ΠΉΠ»Π΅ dbconn.php Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/php_interface/dbconn.php define("BX_CACHE_TYPE", "memcache"); define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01"); define("BX_MEMCACHE_HOST", "memcached"); define("BX_MEMCACHE_PORT", "11211");
- Π ΡΠ°ΠΉΠ»Π΅ .settings_extra.php (Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅Ρ, ΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ):
ΠΠΈΠ±ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ .settings.php ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ / ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ·Π΅Π»
<?php # sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/bitrix/.settings_extra.php return array( 'cache' => array( 'value' => array( 'type' => 'memcache', 'memcache' => array( 'host' => 'memcached', 'port' => '11211', ), 'sid' => $_SERVER["DOCUMENT_ROOT"]."#01" ), ), ); ?>
cache
.
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ°ΠΉΡΠΎΠ²ΠΎΡΡΡ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ½ΡΠΉ sid, Π±Π΅Π·
$_SERVER["DOCUMENT_ROOT"]
. ΠΠ½Π°ΡΠ΅ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ°ΠΉΡΠΎΠ² ΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΡΠ°ΠΊ-ΠΊΠ°ΠΊ ΠΏΠ°ΠΏΠΊΠΈ ΡΠ°ΠΉΡΠΎΠ² ΡΠ°Π·Π½ΡΠ΅.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΠΈΡΡΠΈΠΊΡ:
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=32&LESSON_ID=9421
- https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2795#cache
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ memcached ΠΈ memcache Π΄Π»Ρ php - ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ memcache.
ΠΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°ΠΉΡΠ° ΠΈΠ· Π±Π΅ΠΊΠ°ΠΏΠ° ΠΠΈΡΡΠΈΠΊΡ
ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅ΠΊΠ°ΠΏΠ° Π½Π° MacOS.
- Π‘ΠΊΠ°ΡΠ°ΡΡ Π±Π΅ΠΊΠ°ΠΏ Π² ΠΊΠΎΡΠ΅Π½Ρ ΠΏΠ°ΠΏΠΊΠΈ www ΡΠ°ΠΉΡΠ°
- ΠΠ»Ρ ΡΠ°Π·Π°ΡΡ
ΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅ΠΊΠ°ΠΏΠ° ΠΏΡΠΎΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½ΠΈΠΆΠ΅, ΡΠ΅ΠΌ ΠΆΠ΄Π°ΡΡ, ΠΏΠΎΠΊΠ° ΡΠ°ΡΠΏΠ°ΠΊΡΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠΊΡΠΈΠΏΡΠΎΠΌ restore.php:
cat *.tar.* | tar xzpvf -
- ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΡΠ°Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΡΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π°ΡΡ ΠΈΠ²Π° ΠΎΠ±ΡΡΠ½ΡΠΌ restore.php.
- ΠΠΎΡΠ»Π΅ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π°ΡΡ
ΠΈΠ²Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ restore.php. Π£ΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ:
- Π‘Π΅ΡΠ²Π΅Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ : db
- ΠΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: root
- ΠΠ°ΡΠΎΠ»Ρ: test (ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ .env Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ MYSQL_ROOT_PASSWORD)
- ΠΠΌΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π»ΡΡΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ Π·Π½Π°ΠΊΠΈ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
examplecom
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=37&LESSON_ID=5507), Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² php-ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
COption::SetOptionString("main", "agents_use_crontab", "N"); echo COption::GetOptionString("main", "agents_use_crontab", "N"); COption::SetOptionString("main", "check_agents", "N"); echo COption::GetOptionString("main", "check_agents", "Y"); COption::SetOptionString("main", "mail_event_bulk", "20"); echo COption::GetOptionString("main", "mail_event_bulk", "5");
- Π£Π±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»Π° dbconn.php ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
Π Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ:
# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/bitrix/php_interface/dbconn.php define("BX_CRONTAB_SUPPORT", true); define("BX_CRONTAB", true);
# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/bitrix/php_interface/dbconn.php if(!(defined("CHK_EVENT") && CHK_EVENT===true)) define("BX_CRONTAB_SUPPORT", true);
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ ΠΈΠ· ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΏΠΎΠ»ΡΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ Π½Π°Π΄ΠΎ - ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ΅Π»Π°ΡΡ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΠΈΡΡΠΈΠΊΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°Π³Π΅Π½ΡΠΎΠ².
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ cron-Π·Π°Π΄Π°Π½ΠΈΠΉ ΡΠ°ΠΉΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» /crontab/root, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ°.
- Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» config/sphinx/example.conf Π² ΠΏΠ°ΠΏΠΊΡ config/sphinx/sites, ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ ΡΠ°ΠΉΡΠ°, Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΡΠΎΡΠ΅ΠΊ Π½Π° Π΄Π΅ΡΠΈΡΡ. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ .conf.
- ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° (ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°) Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° ΠΈΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π° Π±Π΅Π· ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
- Π‘ΡΡΠΎΠΊΡ example-ru Π² Π΄Π²ΡΡ ΠΌΠ΅ΡΡΠ°Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° ΠΈΠΌΡ Π΄ΠΎΠΌΠ΅Π½Π° Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΡΠΎΡΠ΅ΠΊ Π½Π° Π΄Π΅ΡΠΈΡΡ.
- Π ΠΏΠ°ΠΏΠΊΠ΅ data/sphinx/synonyms ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ», Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ data/sphinx/synonyms/example.txt.
- ΠΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ°Π½Π΅Π΅ Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½.
- ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² Π°Π΄ΠΌΠΈΠ½ΠΊΠ΅ (/bitrix/admin/settings.php?lang=ru&mid=search). ΠΠ° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ "ΠΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡ" ΡΠΊΠ°Π·Π°ΡΡ:
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡ:
ΠΠ°
. - ΠΠΎΠ»Π½ΠΎΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠΎΠΈΡΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
Sphinx
. - Π‘ΡΡΠΎΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ (ΠΏΡΠΎΡΠΎΠΊΠΎΠ» MySql):
sphinx:9306
. - ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°: ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ Π·Π°Π΄Π°Π½ΠΎ Π² ΠΏ.2.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡ:
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ»Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΏΠΎΠΈΡΠΊΠ° (/bitrix/admin/search_reindex.php).
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½.
ΠΠ»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Xdebug Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ° /config/php-fpm/xdebug.ini Π² /config/php-fpm/xdebug.ini.disabled Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ» / ΡΡΠ°ΡΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ:
- mailhog (https://github.com/mailhog/MailHog)
- msmtp
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: mailhog ΠΈ msmtp Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ sedmail_path Π² phpinfo.
ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ mailhog. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ: mailhog.bitrix.local.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½.
ΠΠ»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ mailhog ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ° /config/php-fpm/mailhog.ini Π² /config/php-fpm/mailhog.ini.disabled Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ: Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ» / ΡΡΠ°ΡΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΈ, Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ msmtp, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ.
- ΠΡΠΊΠ»ΡΡΠΈΡΡ mailhog.
- ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ° /config/php-fpm/msmtp.ini.disabled Π² /config/php-fpm/msmtp.ini.
- Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» config/msmtp/msmtprc.example Π² config/msmtp/msmtprc ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠΎΠ·Π΄Π°Π² ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
- Π ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ° Π² ΡΠ°ΠΉΠ»Π°Ρ /crontab/root ΠΈ /config/php-fpm/msmtp.ini Π²ΠΌΠ΅ΡΡΠΎ default ΡΠΊΠ°Π·Π°ΡΡ Π½ΡΠΆΠ½ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ msmtp Π΄Π»Ρ ΡΠ°ΠΉΡΠ°.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ msmtp, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ /config/php-fpm/msmtp.ini Π² /config/php-fpm/msmtp.ini.disabled ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ.
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ ΡΠ°ΠΉΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Ρ Π²ΡΡΠ΅. ΠΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°Π»Π΅Π΅ ΠΏΡΠΎΠΊΠΈΠ½ΡΡΡ ΠΏΠ°ΠΏΠΊΠΈ bitrix, upload, images ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ. ΠΠΎ Π²ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ Π½ΠΈΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ main.ru Π½Π° ΠΏΠ°ΠΏΠΊΡ, Π³Π΄Π΅ Π»Π΅ΠΆΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΡ (ΡΠ΄ΡΠΎ ΠΠΈΡΡΠΈΠΊΡ).
- Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» docker-compose.yml ΡΠ°ΠΉΡΠ° (Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ΄ΡΠΎ).
- ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΠΈΠΈ
volumes
ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅:# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/docker-compose.yml services: nginx: # ..... volumes: # ..... - &bitrix-volume ./../main.ru/www/bitrix:/var/main.ru/bitrix:cached - &upload-volume ./../main.ru/www/upload:/var/main.ru/upload:cached - &images-volume ./../main.ru/www/images:/var/main.ru/images:cached php-fpm: # ..... volumes: # ..... - *bitrix-volume - *upload-volume - *images-volume
- Π‘Π΅ΠΊΡΠΈΡ cron Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌ, ΠΈΠ½Π°ΡΠ΅ cron-Π·Π°Π΄Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π΄Π²Π°ΠΆΠ΄Ρ.
- ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΠΈΠΈ
- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΈ Π²Π½ΡΡΡΠΈ php-fpm ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°:
# Π·Π°ΠΉΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ docker compose exec php-fpm sh
# Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊΠΈ ln -s /var/main.ru/bitrix/ /var/www/www/bitrix \ && ln -s /var/main.ru/upload/ /var/www/www/upload \ && ln -s /var/main.ru/images/ /var/www/www/images
- Π§ΡΠΎΠ±Ρ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΠΈΡΡ ΠΈ Π½Π° Ρ
ΠΎΡΡ-ΠΌΠ°ΡΠΈΠ½Π΅ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ IDE Π²ΠΈΠ΄Π΅Π»Π° ΡΠ°ΠΉΠ»Ρ ΡΠ΄ΡΠ°), ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΌΠ»ΠΈΠ½ΠΊ:
# /srv/bitrix-server - ΠΏΠ°ΠΏΠΊΠ° Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°: ln -s /srv/bitrix-server/sites/main.ru/www /var/main.ru
Π MacOS ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠ΅Π±ΡΠ΅Ρ sudo.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎΠΈΡ UTC. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π² .env ΡΠ°ΠΉΡΠ° ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PHP_TIMEZONE ΠΈ SERVER_TIMEZONE, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
SERVER_TIMEZONE=Europe/Moscow
PHP_TIMEZONE=Europe/Moscow
Π Π² ΠΎΠ±ΡΠ΅ΠΌ .env ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ:
SERVER_TIMEZONE=Europe/Moscow
ΠΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅: https://www.php.net/manual/en/timezones.php.
ΠΠ°ΠΆΠ½ΠΎ! SERVER_TIMEZONE Π²ΠΎ Π²ΡΠ΅Ρ env-ΡΠ°ΠΉΠ»Π°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ PHP_TIMEZONE ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ SERVER_TIMEZONE (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ°ΠΉΡΠ°Ρ ):
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² /bitrix/php_interface/after_connect_d7.php:
$connection = Bitrix\Main\Application::getConnection(); $connection->queryExecute("SET LOCAL time_zone='".date('P')."'");
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² /bitrix/php_interface/after_connect.php:
$DB->Query("SET LOCAL time_zone='".date('P')."'");
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΎΠ±ΡΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ) ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΡΠ°ΠΉΡΠ°:
docker compose pull \
&& docker compose up --force-recreate --remove-orphans --build -d \
&& docker image prune -f
ΠΡΠΈΠ±ΠΊΠ°: mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)
- ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ data/mysql
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo chown 999:999 .
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ MySQL Π½Π΅ Ρ ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ data/mysql ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ mysql.sock ΠΈ mysql.sock.lock.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ mbstring (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°ΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΠΈΡΡΠΈΠΊΡ), Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ config/php-fpm ΡΠ°ΠΉΡΠ° ΡΠ°ΠΉΠ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, mbstring.ini ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
[mbstring]
mbstring.internal_encoding = UTF-8
mbstring.func_overload = 2
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ php Π΄Π»Ρ ΡΠ°ΠΉΡΠ°.
ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΡΠ°ΠΉΡΠ° sites/... ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
# Π·Π°ΠΉΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ
docker compose exec php-fpm sh
# Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ°Π²Π° Π½Π° ΠΏΠ°ΠΏΠΊΡ /var/www
chown -R www-data:www-data /var/www
chown -R www-data:www-data /var/log
# Π·Π°ΠΉΡΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ cron
docker compose exec cron sh
# Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ°Π²Π° Π½Π° ΠΏΠ°ΠΏΠΊΡ /var/www
chown -R www-data:www-data /var/www
chown -R www-data:www-data /var/log
ΠΠΎΠ»Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
{
"error": "INVALID_REQUEST",
"error_description": "Https required."
}
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ REST_APAUTH_ALLOW_HTTP Π² dbconn.php:
# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/bitrix/php_interface/dbconn.php
define('REST_APAUTH_ALLOW_HTTP', true);
ΠΠ°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΆΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ (Π΅ΡΠ»ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ https ΠΏΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΡΠ΅). ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ https, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ "ΠΎΠ±ΡΠ°Π΅ΡΡΡ" Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ php-fpm ΠΏΠΎ 80 ΠΏΠΎΡΡΡ.
ΠΡΠΈΠ±ΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠ° ΠΠΈΡΡΠΈΠΊΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ SSL
Π Π΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» docker-compose.yml ΡΠ°ΠΉΡΠ°. ΠΡΠΆΠ½ΠΎ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ 2 ΡΡΡΠΎΠΊΠΈ, extra_hosts ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π·Π° Π½Π΅ΠΉ:
# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/docker-compose.yml
services:
php-fpm:
# .....
extra_hosts:
- "${PROJECT_HOST}:127.0.0.1" # Π²ΠΌΠ΅ΡΡΠΎ 127.0.0.1 ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠΉ IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡ "ΠΠ½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (ΡΡΠ½ΠΊΡΠΈΡ LocalRedirect)"
ΠΡΠΈ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ https Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² dbconn.php Π΄ΠΎΠ±Π°Π²ΠΈΡΡ:
# sites/Π΄ΠΎΠΌΠ΅Π½.ΡΠ°ΠΉΡΠ°/bitrix/php_interface/dbconn.php
$_SERVER['HTTPS'] = 'on';