В данной статье пойдет разговор о том, как добавить сторонний сайт в коробке Битрикс24 и какие действия требуется произвести для настройки nginx и apache.
Новый сайт в коробке Битрикс24
Пусть у нас есть готовый сайт, который мы хотели бы расположить на коробке Битрикс24 и мы хотим, чтобы он аналогично самому битриксу работал в связке nginx+apache. Для начала создадим директорию для нашего сайта (все действия выполняются с правами root):
# mkdir /home/bitrix/pocketadmin.tech
Как видно из примера сайт будет располагаться в домашней директории пользователя bitrix рядом с основным – www.
В нашем случае сайт будет состоять из одной страницы – index.php, расположенной в /home/bitrix/pocketadmin.tech/index.php:
<?php
echo "This is PocketAdmin.tech";
?>
Сделаем владельцем новой директории и всех файлов в ней пользователя bitrix:
# chown bitrix: -R /home/bitrix/pocketadmin.tech/
На этом работы с сайтом окончены, переходим к настройкам front-end и back-end серверов.
Настройка apache
Создадим в директории с конфигурационными файлами apache файл с настройками для нашего сайта:
# nano /etc/httpd/bx/conf/pocketadmin.tech.conf
И внесем в него следующее:
Listen 127.0.0.1:18888
<VirtualHost 127.0.0.1:18888>
ServerAdmin admin@pocketadmin.tech
ServerName pocketadmin.tech
DocumentRoot /home/bitrix/pocketadmin.tech
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<DirectoryMatch .*\.svn/.*>
Require all denied
</DirectoryMatch>
<DirectoryMatch .*\.git/.*>
Require all denied
</DirectoryMatch>
<DirectoryMatch .*\.hg/.*>
Require all denied
</DirectoryMatch>
<Directory /home/bitrix/pocketadmin.tech/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
DirectoryIndex index.php index.html index.htm
php_admin_value session.save_path /tmp/php_sessions/www
php_admin_value upload_tmp_dir /tmp/php_upload/www
Require all granted
</Directory>
ErrorLog logs/error_log
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
CustomLog logs/access_log combined
<IfModule mod_rewrite.c>
#Nginx should have "proxy_set_header HTTPS YES;" in location
RewriteEngine On
RewriteCond %{HTTP:HTTPS} =YES
RewriteRule .* - [E=HTTPS:on,L]
</IfModule>
</VirtualHost>
На что следует обратить внимание:
- в первых двух строках Listen 127.0.0.1:18888 и <VirtualHost 127.0.0.1:18888> 18888 – это произвольный свободный порт, который должен отличаться от стандартного 8888.
- в ServerName указывается доменное имя вашего сайта, в примере это pocketadmin.tech
- в DocumentRoot и в <Directory указывается расположение сайта, директория которую мы создали на первом шаге. В данном случае это /home/bitrix/pocketadmin.tech.
Настройка nginx
Создадим в директории с доступными конфигурационными файлами nginx файл с настройками для нашего сайта:
# nano /etc/nginx/bx/site_avaliable/pocketadmin.tech.conf
следующего содержания:
server {
listen 80;
server_name pocketadmin.tech;
server_name_in_redirect off;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host:80;
set $proxyserver "http://127.0.0.1:18888";
set $docroot "/home/bitrix/pocketadmin.tech";
index index.php;
root /home/bitrix/pocketadmin.tech;
# Redirect to ssl if need
if (-f /home/bitrix/pocketadmin.tech/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
# Main location
location / {
proxy_pass $proxyserver;
}
# php file processing
location ~ \.php$ {
proxy_pass $proxyserver;
}
}
Этот конфигурационный файл мало отличается от стандартного, но обратить внимание следует на:
- server_name – доменное имя сайта, pocketadmin.tech;
- в set $proxyserver “http://127.0.0.1:18888”; необходимо указать порт, который мы назначили в настройках apache.
- в строках set $docroot “/home/bitrix/pocketadmin.tech”; и root /home/bitrix/pocketadmin.tech; прописывается директория с нашим сайтом
Последним этапом будет создание символьной ссылки в каталоге разрешенных сайтов на наш сайт в коробке битрикс24:
# ln -s /etc/nginx/bx/site_avaliable/pocketadmin.tech.conf /etc/nginx/bx/site_enabled/pocketadmin.tech.conf
Остается только перечитать конфигурационные файлы:
# service httpd reload
# servcie nginx reload