Показаны сообщения с ярлыком bitrix. Показать все сообщения
Показаны сообщения с ярлыком bitrix. Показать все сообщения

bitrix просит авторизацию на каждой странице - изменить путь к директории сайта

bitrix просит авторизацию на каждой странице - требуется изменить путь к директории сайта

update b_lang set DOC_ROOT="/var/www/bitrix/data/www/new" where DOC_ROOT="/var/www/old";


rm -rf bitrix/cache/*

rm -rf bitrix/managed_cache/*

/etc/php.d/bitrixenv.ini

Часто бывает bitrixenv.ini обнуляется, бэкап этого конфига из чистой установки битрикса

; Set parameters required for proper Bitrix engine functioning.
; You can redefine parameters specified in this file
; by editing /etc/php.d/z_bx_custom_settings.ini

; Configure error processing
display_errors = On
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING

; Set some more PHP parameters
enable_dl = Off
short_open_tag = On
allow_url_fopen = On

; Change default values of important constants
max_input_vars = 10000
max_file_uploads = 100
max_execution_time = 300
post_max_size = 1024M
upload_max_filesize = 1024M
pcre.backtrack_limit = 1000000
pcre.recursion_limit = 14000
realpath_cache_size = 4096k
mysql.default_socket = /var/lib/mysqld/mysqld.sock
mysqli.default_socket = /var/lib/mysqld/mysqld.sock

; Utf-8 support
mbstring.func_overload = 2
mbstring.internal_encoding = UTF-8

; Configure PHP sessions
session.entropy_length = 128
session.entropy_file = /dev/urandom
session.save_path = "/tmp/php_sessions/www"
session.cookie_httponly = On

; Set directory for temporary files
upload_tmp_dir = "/tmp/php_upload/www"

sendmail_path = msmtp -t -i
date.timezone = Europe/Moscow
memory_limit = 256M

msmtp : bitrix gt : bitrix turbo : настройка отправка почты

Хостинг провайдер firstvds предоставляет скоростной хостинг для сайтов на bitrix на шаблоне своей разработки под названием bitrix-gt который основан на nginx + php-fpm

Как настроить отправку почты через внешний почтовый сервер (в данном случае яндекс) используя msmtp - гарантированной рабочий пример конфигурации

Сначала необходимо установить msmtp

# yum install msmtp

Далее необходимо указать его в php.ini вместо sendmail

# grep msmtp /etc/php.ini
sendmail_path = /usr/bin/msmtp -C /etc/msmtprc -a default -t -i

Файл конфигурации должен иметь права под которым работает php-fpm

# ls -l /etc/msmtprc
-rw------- 1 apache apache 191 июн  6 08:18 /etc/msmtprc

Содержимое файла

# cat /etc/msmtprc
account default
logfile /usr/share/httpd/msmtp.log
host smtp.yandex.ru
port 587
from example@yandex.ru
auth on
user example@yandex.ru
password *****
tls on
tls_starttls on
tls_certcheck off

Файл логов должен находиться в домашней директории пользователя apache (в вышележащей не работает) и иметь права для записи

# ls -l /usr/share/httpd/msmtp.log
-rw-r--r-- 1 apache apache 10018 июн  6 08:20 /usr/share/httpd/msmtp.log

В некоторых случаях при отправке почты через gmail может быть необходимо разрешить Небезопасные приложения в настройках аккаунта https://myaccount.google.com/lesssecureapps

bitrix циклический редирект на самого себя (отключить проактивную защиту)

Иногда после переноса сайта на bitrix на php-fpm (например, на шаблон Bitrix GT) возникает у сайта циклический редирект на самого себя

Лечится отключением проактивной защиты в базе так как не срабатывает список разрешенных доменных имен

MariaDB [bitrix0]> DELETE FROM b_module WHERE `ID`='security' ;
Query OK, 1 row affected (0.001 sec)


Был случай что данный метод не помог, сайт все равно выдавал forbidden, отключил как

# diff /home/bitrix/www/bitrix/modules/main/include.php.bak /home/bitrix/www/bitrix/modules/main/include.php
290,291c290,291
< foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
< ExecuteModuleEventEx($arEvent);
---
> //foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)

> // ExecuteModuleEventEx($arEvent);

Nginx Unit + Bitrix настройка

Установка с модулем

yum install unit unit-php

Настраиваем nginx

[root@nginx-unit ~]# cat /etc/nginx/conf.d/default.conf
upstream unit_bitrix_urlrewrite {
    server 127.0.0.1:8090;
}
upstream unit_bitrix_direct {
    server 127.0.0.1:8091;
}

server {
    listen      80;

    root        /var/www/html/;

    index index.php;

    proxy_read_timeout 90s;
    client_max_body_size 64m;

    location / {
        try_files $uri @urlrewrite_php;
    }

    location @urlrewrite_php {
        proxy_pass       http://unit_bitrix_urlrewrite;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ~* \.php$ {
        try_files        $uri =404;
        proxy_pass       http://unit_bitrix_direct;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}


Настраиваем unit

[root@nginx-unit ~]# cat bitrix.json
{
    "listeners": {
        "127.0.0.1:8090": {
         "application": "bitrix_urlrewrite"
        },

        "127.0.0.1:8091": {
          "application": "bitrix_direct"
        }
    },

    "applications": {
        "bitrix_urlrewrite": {
            "type": "php",
              "processes": {
               "max": 20,
               "spare": 5
              },
            "user": "apache",
            "group": "apache",
            "root": "/var/www/html/",
            "script": "bitrix/urlrewrite.php"
        },

        "bitrix_direct": {
            "type": "php",
              "processes": {
               "max": 20,
               "spare": 5
              },
            "user": "apache",
            "group": "apache",
            "root": "/var/www/html/",
            "index": "index.php"
        }
    }
}



Заливаем конфиг

curl -X PUT -d @bitrix.json --unix-socket /run/unit/control.sock http://localhost/config
 

Полезные ссылки

https://unit.nginx.org/howto/wordpress/
https://habr.com/ru/company/itsumma/blog/337346/
https://sysadmin.pm/nginx-unit/
Скрипт проверки соответствия Bitrix http://www.1c-bitrix.ru/download/files/scripts/bitrix_server_test.php
  

Примечание

На unit.nginx.org указано в action": { "pass" - такая конфигурация не проходит контроль на unit-1.8.0-1.el7.remi

Настроить CPU в performance mode для хорошей производительности

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# yum install cpupowerutils kernel-tools
# systemctl enable --now cpupower
# cpupower frequency-set --governor performance



Да будут колоситься попугаи на битрикс

В убунте
apt install cpufrequtils
for i in 0 1 2 3 4 5 6 7 8 9 10 11; do cpufreq-set -c $i -g performance; done
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
vi /etc/default/cpufrequtils
GOVERNOR="performance"

bitrix php-fpm rewrite

    location / {
    error_page 404 /404.php;
    if (!-e $request_filename) {
       rewrite  ^(.*)$  /bitrix/urlrewrite.php last;
    }
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
        location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
            expires 5m;
        }
    }

bitrix решаем проблему с экспортом из 1с

Nginx

listen 82.140.12.12:80;

    if ($request_uri !~ "/bitrix/admin/1c_exchange.php"){
            return 301 https://domain.com$request_uri;
    }



Для апача чистого в .htaccess

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Настройка модуля Push and Pull birix модуля nginx с ISPmanager

Компилим nginx с модулем утянув его выше в папку из git https://github.com/wandenberg/nginx-push-stream-module

./configure --add-module=../nginx-push-stream-module

делаем общую include в /etc/nginx/conf.d/push-stream-module.conf


# Common settings for nginx-push-stream-module
push_stream_shared_memory_size 256M;
push_stream_max_messages_stored_per_channel 1000;
push_stream_max_channel_id_length 32;
push_stream_max_number_of_channels 200000;
push_stream_message_ttl 86400;

# поддержка мобильных платформ, для http запросов
server {
    # nginx-push-stream-module server for push & pull

    listen 8893;
    server_name _;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# поддержка мобильных платформ, для https запросов
# SSL enabled server for reading personal channels
server {
    listen 8894 ssl;
    server_name _;
 
    ssl_certificate "/var/www/httpd-cert/www-root/example.com.crtca";
    ssl_certificate_key "/var/www/httpd-cert/www-root/example.com.key"; 
 
    #include bx/conf/ssl.conf;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# для публикации сообщений
# Server to push messages to user channels
server {
    listen 127.0.0.1:8895;
    server_name _;
    
    location ^~ /bitrix/pub/ {
        push_stream_publisher admin;
        push_stream_channels_path $arg_CHANNEL_ID;
        push_stream_store_messages on;
        allow 127.0.0.0/8;
        deny all;
    }
    
    location ^~ / { deny all; }
    
    # Include error handlers
    #include bx/conf/errors.conf;
} 
 
 
 
 
делаем инклюдку для server {}

include /etc/nginx/push-stream-module-vhost.inc 


# Location for long-polling connections
location ^~ /bitrix/sub {
    # we don't use callback and droppped it (XSS)
    if ( $arg_callback ) {
        return 400;
    }

    push_stream_subscriber            long-polling;
    push_stream_allowed_origins "*";
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_last_received_message_tag    $arg_tag;
    if ($arg_time) {
        push_stream_last_received_message_time "$arg_time";
    }
    push_stream_longpolling_connection_ttl    40;
    push_stream_authorized_channels_only    on;
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

# Location for websocet connections
location ^~ /bitrix/subws/ {
    push_stream_subscriber websocket;
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_websocket_allow_publish    off;
    push_stream_ping_message_interval    40s;
    push_stream_authorized_channels_only     on;
    push_stream_last_received_message_tag    "$arg_tag";
    push_stream_last_received_message_time    "$arg_time";
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}


Включаем в битриксе

Оригинал https://dermanov.ru/exp/configure-push-and-pull-module-for-bitrix24/

bitrix выдает ошибку ERR_CONTENT_DECODING_FAILED

bitrix при открытии сайта выдает в браузере ошибку (а скажем через wget нормально открывается)

ERR_CONTENT_DECODING_FAILED
Ошибка в типе содержимого. Страница, которую вы пытаетесь просмотреть, не может быть показана, так как она использует неверную или не поддерживаемую форму компрессии

Лечение: прописать

define('BX_COMPRESSION_DISABLED',true);

в bitrix/php_interface/init.php (dbconf.php если старый и нет такого файла)

bitrix ошибка : Mysql query error: Unknown or incorrect time zone: 'Europe/Moscow' (400)

bitrix выдает ошибку при открытии сайта на CentOS 7
Mysql query error: Unknown or incorrect time zone: 'Europe/Moscow' (400)

Лечение - создать базу timezone в mysql сервере:
# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql

bitrix попугаи

Производительность Bitrix высчитывается в файлике

bitrix/modules/perfmon/admin/perfmon_panel.php

Строчкой

$result = number_format(doubleval(count($_SESSION["PERFMON_TIMES"]))/array_sum($_SESSION["PERFMON_TIMES"]), 2, ".", " ");

Соответственно строчка

$result = number_format(doubleval(count($_SESSION["PERFMON_TIMES"]) *2)/array_sum($_SESSION["PERFMON_TIMES"]), 2, ".", " ");

Показывает производительность в 2 раза больше. В историю, правда, пишется старый результат.
Не злоупотребляйте!

php memcache для php7

Bitrix требует именно memcache (не memcached) для работы под PHP7
Альтернативная сборка PHP7 в ISPmanager его не содержит, потому, что официальное расширение из pecl не компилируется.
Существует fork pecl php-memcache для PHP 7 и оно собирается и с ним bitrix начинает работать

Ссылка https://github.com/websupport-sk/pecl-memcache

bitrix получить доступ в админку сайта

В каталоге сайта создаете php файл pusti.php с секретным именем и содержимым ниже:

<?

require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

global $USER;
$USER->Authorize(1);

?>

<a href='/bitrix/admin/index.php'>ЖМИ СЮДА</a>


После работ обязательно удалите данный файл для избежания взлома сайта

bitrix не меняется max_execution_time

В php.ini и phpinfo(); показывается max_execution_time=900, а в http://example.com/bitrix/admin/phpinfo.php (открывается после входа в админку) - 300

Открываем bitrix/php_interface/dbconn.php и правим  

@set_time_limit(900);

Там же можно править ini_set("memory_limit", "1024M");

Этот параметр реально влияет на всё в битриксе, скажем на время при импорте данных из 1С и другие скрипты

bitrix вебокружение downgrade php 7.0 до 5.6

Автоматический режим
Идем в меню битрикс окружения и меняем там

Ручной режим
vi /etc/yum.repos.d/remi-php70.repo
vi /etc/yum.repos.d/remi.repo

отключаем 7, включаем 56

yum remove php-*

yum install bitrix-env
yum install php-pecl-zendopcache

apachectl restart

bitrix перевод на mysqli

Переводим битрикс на MySQLi с MySQL при переносе на PHP 7

# vi /home/bitrix/www/bitrix/php_interface/dbconn.php

define("BX_USE_MYSQLI", true);

# vi /home/bitrix/www/bitrix/.settings.php

array (
      'default' =>
      array (
        'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
        'host' => 'localhost',

bitrix включить debug сайта

https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2795

# vi /home/bitrix/www/bitrix/php_interface/dbconn.php

$DBDebug = true;
$DBDebugToFile = true;


# vi /home/bitrix/www/bitrix/.settings.php

  'exception_handling' => array (
    'value' => array (
      'debug' => true,
      'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
      'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
      'ignore_silence' => false,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' => array (
        'settings' => array (
          'file' => 'bitrix/modules/error.log',
          'log_size' => 1000000,
        ),
      ),
    ),
    'readonly' => false,
  ),

bitrix после переноса на другой путь до корневой папке выдает Unknown: failed to open stream: No such file or directory in Unknown on line 0

Переносим рабочий сайт на Bitrix в другой каталог. Получаем ошибку

[Thu Feb 23 10:37:58 2017] [error] [client 122.111.122.12] PHP Fatal error:  Unknown: Failed opening required '/home/www/example.com/bitrix/modules/security/tools/start.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0

Лечение:
Открываем файл .htaccess в корневом каталоге сайта и комментируем строку в конце файла

php_value auto_prepend_file "/home/www/example.com/bitrix/modules/security/tools/start.php"

PHP Fatal error: Can't use function return value in write context

Bitrix выдает ошибку

PHP Fatal error: Can't use function return value in write context in /var/www/www-root/data/www/example.com/local/php_interface/init.php on line 17

Надо поставить PHP 5.5+