Телеграм: @bazarow_ru Почта: mihail@bazarow.ru

Простой WEB сервер на ubuntu, для Битрикс

Просмотров: 35931

Расскажу как по быстрому сконфигурировать WEB сервер для работы с Битрикс. Безо всяких nginx и прочего, для высоконагруженных проектов конечно не пойдет, но просто сайт вполне полетит. Итак после установки на ноутбук Sumsung P29 (ему вот уже 9 лет) с конфигурацией Celeron M- 1.4 Ghz, 700 Мб. оперативной памяти, жесткий IDE на 40 гигов, словом тот еще драндулет- установка Битрикс: Малый Бизнес 12, решение интернет магазин выдает 52 балла производительности, все параметры самую капельку выше эталона.

Важно!!!
Данная заметка написана в 2014 году, под ubuntu 14LTS. Кого интересует запустить вебсервер на ubuntu 20 прошу сюда LAMP на ubuntu LTS 20

Расскажу как по быстрому сконфигурировать WEB сервер для работы с Битрикс. Безо всяких nginx и прочего, для высоконагруженных проектов конечно не пойдет, но "просто сайт" вполне полетит. Итак после установки на ноутбук Sumsung P29 (ему вот уже 9 лет) с конфигурацией Celeron M- 1.4 Ghz, 700 Мб. оперативной памяти, жесткий IDE на 40 гигов, словом тот еще драндулет- установка Битрикс: Малый Бизнес 12, решение интернет магазин выдает 52 балла производительности, все параметры самую капельку выше эталона.

Итак устанавливем основу

Устанавливаем Apache


sudo apt-get install apache2

Установка PHP и библиотеки для работы с графикой:


apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby

Чтобы Apache подхватил только что установленный PHP перезагрузим его командой:


sudo apache2ctl restart

Установка MySQL


sudo apt-get install mysql-server

в процессе установки попросит ввести пароль, придумайте самостоятельно

Установка PhpMyAdmin


sudo apt-get install phpmyadmin

в процессе запросит пароль от MYSQL - тот самый что вводили выше. Все основа готова, на этом вполне заработает сайт.

Запиливаем под Битрикс

Для повышения производительности, да и вообще по требованиям Битрикс к серверу, на нем должен быть установлен APC (на самом деле не только он подходит, можно поставить eAccelerator, XChache и.т.д) 

Устанавливаем оной вводя команды по одной (хотя наверное можно и хором)


sudo apt-get install php-pear
sudo apt-get install php5-dev apache2-prefork-dev build-essential
sudo pecl install apc

Дальше создаем и открываем файл настроек APC


nano /etc/php5/conf.d/apc.ini

прямо туда копируем вот это


extension=apc.so
realpath_cache_size=4096k
apc.ttl=1
apc.max_file_size=4M
apc.shm_size=128M //вот тут достаточно и 96М, но я предпочитаю 128

Теперь ускорим работу MYSQL

открываем


nano /etc/mysql/my.cnf

и добавляем в него (можно куда-нибудь в середину)


innodb_flush_log_at_trx_commit = 0
innodb_buffer_pool_size = 128M
innodb_flush_method = O_DIRECT
transaction-isolation = READ-COMMITTED
table_open_cache = 600 //тут самостоятельно

ну вот и все, остально, например php.ini уже докручивайте на свое усмотрение, с этими настройками Битрикс вполне летает на компе средней паршивости

Дополнение с демагогией - установка memcache на ubuntu server с битрикс сайтом, для ускорения (под высоконагруженные проекты, для всякой мелочевки не стоит заморачиваться)

PS: установка Webmin на ubuntu. Что бы было проще:

Добавляем необходимые пакеты


apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions

Скачиваем ключи


wget http://www.webmin.com/jcameron-key.asc

Добавляем их


apt-key add jcameron-key.asc

Добавляем в самый конец sources.list


nano /etc/apt/sources.list
deb http://download.webmin.com/download/repository sarge contrib

Скачиваем ключи


wget http://www.webmin.com/jcameron-key.asc

Обнавляемся и устанавливаем webmin


sudo apt-get update
sudo apt-get install webmin

Дожидаемся конца установки и после WEBMIN доступен по адресу


 https://ВАШ_IP:10000

И еще одна маленькая вещь

Лично я держу пару таких серверов на домашнем компьютере. То есть на однй, достаточно мощной машине установлено 5 виртуальных машин с простенькими параметрами. Так у меня роутер, и виртуальные машины получают IP адреса по DHCP. необходимо задать им статичные IP адреса. По большей сути это актуально и для еденичного компьютера в домашней сети

Идем в nano /etc/network/interfaces и приводим к виду:


# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.58 //Здесь указываем свой желаемый IP 
netmask 255.255.255.0

Перезагружаем сеть /etc/init.d/networking restart и идем в nano /etc/hosts Приводим его примерно к такому виду:


1127.0.0.1 localhost.localdomain localhost
192.168.0.58 server.example.com server //повторяем свой IP и адрес
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Выполняем:


echo server.example.com > /etc/hostname
/etc/init.d/hostname restart

B проверяем:


hostname
hostname -f

Теперь они должны показать server.example.com.

Дмитрий 26.09.2014
Будет ли руководство по CentOS 6 с полным описанием оптимизации сервера под Битрикс !?
Михаил Базаров 27.09.2014
Цитата
Дмитрий пишет:
Будет ли руководство по CentOS 6 с полным описанием оптимизации сервера под Битрикс !?
Для CentOS особо смысла писать не вижу.
Как вариант можно:
На свежеустановленной Cent OS выполнить команды
1) wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh  - качаем скрипт установки
2) chmod +x bitrix-env.sh  - делаем исполняемым
3) ./bitrix-env.sh  - запускаем.
Начнется установка веб окружения, в процессе нужно будет только выбрать 4 или 5-ую версию. Рекомендую 4, но это субъективно.

После установки перезагрузить, и ввести новый пароль для пользователя root (само попоросит)

Открыть порты:
Поочереди выполнить команды:
iptables -I INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 5222 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 5223 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 8090 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --dport 8891 -m state --state NEW -j ACCEPT
service iptables save
/etc/init.d/iptables restart

Все, в итоге получите готовое веб окружение под битрикс (тоже самое что и в виртуальной машине битрикс)
Alex 18.12.2014
Почему то данный способ не работает на firstvds, пишет что установлена более новая версия apache. Не подскажете где хотя бы взять руководство?
Михаил Базаров 26.01.2015
Цитата
Alex пишет:
Почему то данный способ не работает на firstvds, пишет что установлена более новая версия apache. Не подскажете где хотя бы взять руководство?
Скорее всего apache уже стоит, можете пропустить это шаг. Да mysql наверное тоже.
Vakh 01.09.2015
Здравствуйте. Все сделал по инструкции, но когда доходит до восстановления БД выдает ошибку
Error! mysql_connect('-', '-', '-')
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Михаил Базаров 01.09.2015
Цитата
Vakh пишет:
Здравствуйте. Все сделал по инструкции, но когда доходит до восстановления БД выдает ошибку
Error! mysql_connect('-', '-', '-')
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Не правильно вводите данные для доступа к базе данных или просто ее не создали
Dmitry 23.09.2015
Добрый день. Остановился на пункте "sudo pecl install apc" выдает вот такую ошибку:

[CODE]bitrix@ubuntu:~$ sudo pecl install apc
downloading APC-3.1.13.tgz ...
Starting to download APC-3.1.13.tgz (171,591 bytes)
.....................................done: 171,591 bytes
could not extract the package.xml file from "/build/php5-FncNNb/php5-5.5.9+dfsg/pear-build-download/APC-3.1.13.tgz"
Download of "pecl/apc" succeeded, but it is not a valid package archive
Error: cannot download "pecl/APC"
Download failed
install failed[/CODE]

До этого вроде установка шла без ошибок.
Дмитрий Дмитриевич Алимов 23.06.2016
Привет, функции MySQL, не установлены, убунту.. как быть?  
Дмитрий Дмитриевич Алимов 23.06.2016

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Вывести новости из конкретного раздела инфоблока Битрикс Просмотров: 55236 Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Б... Вывести общее количество товаров в шаблоне корзины 1С-Битрикс Просмотров: 7033 Задача: вывести общее количество товаров в корзине (именно количество единиц товара, а не ... Спойлер в списке новостей Битрикс Просмотров: 12178 Иногда нужно сделать спойлеры в копонентах Битрикс, в основном конечно, имеет смысл при оч... Хостинг панель BrainyCp: оптимизация под 1С-битрикс Просмотров: 8131 В этой видео-заметке расскажу как установить и оптимизировать панель управления сервером B... Отфильтровать новости в Битрикс за заданный период Просмотров: 16690 Иногда, нужно отфильтровать элементы (новости например) по дате в Битрикс, с помощью компо... Заполнить картинки разделов каталога из картинок товаров Просмотров: 944 Задача: в каталоге, разделы и подразделы выводятся в виде плитки над товарами, с картинкам... Простые калькуляторы в карточке товара каталога на Битрикс Просмотров: 16174 На одном из создаваемых сайтов было необходимо сделать небольшой калькулятор и предварител... Ускорение работы сайта на 1С-Битрикс Просмотров: 17734 Данная статья написана специально под видеоролик (приложен в конце статьи), опубликованный... Очистить брошенные корзины с помощью API 1С-Битрикс Просмотров: 1121 Задача: в интернет-магазине накапливается большое количество брошенных корзин, нужно их оч... Заполнить свойство инфоблока ценой из торгового каталога Просмотров: 5090 Если вам по какой-то причине нужно скопировать цену товара в свойство этого же инфоблока. ... Определить местоположение пользователя и показать магазины поблизости... Просмотров: 1831 Задача: в мобильном приложении, которое открывает сайт на 1С-Битрикс внутри себя, нужно оп... Запретить изменения описаний товаров при выгрузке из 1С УТ на сайт Просмотров: 18106 При разработке сайтов на Битрикс, с интеграцией с 1С Управление Тороговлей, нужно запретит... Вывод элементов с помощью API битрикс Просмотров: 23961 Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Нап... Вывести компонент новостей на страницу в Битрикс Просмотров: 65106 Посмотрел Яндекс метрику на свой сайт, и решил что буду частенько писать сюда именно то, ч... Установка вебсервера на Apple M1 (нативный ARM стек), оптимизированны... Просмотров: 7405 Появилась задачка, установить стек MAMP (macOS, Apache, MYSQL, PHP) на рабочий ноутбук с п... Цвета торговых предложений из Highload инфоблоков в списке товаров Просмотров: 14905 Подвернулся на доработку очень старый сайт, работал еще на 11-ой версии Битрикс. Выполнили... Самодельная форма добавления элемента на API Битрикс Просмотров: 45276 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр... Вывести артикул в печатную форму бланка заказа Просмотров: 1073 Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе. ... Вывести разделы инфоблока в которых находится элемент Битрикс Просмотров: 17017 Если нужно в карточке товара или новости, вывести структуру разделов в котором находится э... Сгенерировать скидочные купоны, при заказе и отправить на почту Просмотров: 1693 Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны д...