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

Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под 1C-Битрикс.

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

В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное рабочее окружение для работы с сайтами локально, дабы не зависить от интернет соединения и в целом увеличить скорость работы.

Внимание! Все настройки, описанные в данной заметке, предназначены исключительно для локальной разработки сайтов, на рабочем компьютере. Ни в коем случае, не выпускайте сайты, запущенные в данном окружении, в интернет.

Установка LAMP

Заходим в терминал, и переходим в режим суперпользователя (попросит ввести пароль текущего пользователя):

sudo su

Обновляем систему:


apt update
apt upgrade

Установка тасксел:

apt install tasksel

Установка LAMP:

tasksel install lamp-server

Установить пароль администратора базы данных (попросит придумать и повторить пароль):


service mysql start
mysql -u root -p 

Устанавливаем phpmyadmin, в процессе попрросит выбрать вебсервер, выбираем вебсервер apache2 и попросит ввести ранее введенный пароль администратора базы данных:

apt install phpmyadmin

Так, как администратор базы данных (root) изначатьно заблокирован, создаем пользователя базы данных с полными привелегиями.

Входим в консоль mysql как root (попросит пароль):


mysql -u root -p 

Создаем пользователя:

CREATE USER 'ИМЯ_ПОЛЬЗОВАТЕЛЯ'@'localhost' IDENTIFIED BY 'ЕГО_ПАРОЛЬ';

Даем полные права этому пользователю:


GRANT ALL PRIVILEGES ON *.* TO 'ИМЯ_ПОЛЬЗОВАТЕЛЯ'@'localhost';

Применяем привелегии:


FLUSH PRIVILEGES;

Выходим из консоли mysql:

exit

Настройки Web сервера, создание сайта

Далее создаем директорию, в которой будут располагаться сайты, я использую домашнюю директорию своего пользователя, мне так удобнее. Директорию создаем не под sudo- что бы иметь на нее права (вместо "camouf" используйте свой логин):


mkdir /home/camouf/www

В этой директории создаем файл, который будет добавлять сайты (виртуальные хосты) в apache

nano /home/camouf/www/addsite.sh

В него добавляем данный скрипт:

#!/bin/bash
echo -e "Введите название проекта (Например example.com):";
read NAME_OF_PROJECT

#создаем папки проекта
sudo mkdir /home/camouf/www/$NAME_OF_PROJECT

#добавляем правила в конфигурационый файл апача
add_to_apache_conf="
<VirtualHost *:80>
  ServerName ${NAME_OF_PROJECT}
  ServerAdmin webmaster@localhost
  DocumentRoot /home/camouf/www/${NAME_OF_PROJECT}/
  <Directory /home/camouf/www/${NAME_OF_PROJECT}/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  DirectoryIndex index.php index.html index.htm
  php_admin_value short_open_tag On
  php_admin_value mbstring.func_overload 2
  php_admin_value mbstring.internal_encoding UTF-8
  php_admin_value date.timezone Europe/Moscow
  php_admin_value opcache.revalidate_freq 0
  php_admin_value opcache.max_accelerated_files 100000
  php_admin_value display_errors On
  php_admin_value max_input_vars 10000
  php_admin_value upload_max_filesize 8M
  Require all granted
  </Directory>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>"

#добавляем новый хост
touch /etc/apache2/sites-available/${NAME_OF_PROJECT}.conf
echo "$add_to_apache_conf" >> /etc/apache2/sites-available/${NAME_OF_PROJECT}.conf

# добавляем домен в hosts
echo "127.0.0.1 ${NAME_OF_PROJECT}" >> /etc/hosts

#включаем конфигурацию сайта
sudo a2ensite ${NAME_OF_PROJECT}

#ставим права 777
chmod -R 777 /home/camouf/www/${NAME_OF_PROJECT}

#перезапускаем апач
service apache2 restart

echo "Сайт готов"

Делаем его исполняемым:

chmod +x /home/camouf/www/addsite.sh

Запускаем апач с правами текущегo пользователя

Так как, все созданные файлы сайта, будут созданы из под apache, нужно запускать его с от имени текущего (Вашего) пользователя. Открываем на редактирование файл запуска apache:

nano /etc/apache2/envvars

И изменяем строчки:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

Вместо www-data пропишите логин и группу своего пользователя (обычно совпадают), в моем случае camouf


export APACHE_RUN_USER=camouf
export APACHE_RUN_GROUP=camouf
На этом все. Просто запускаем скрипт addsite.sh в терминале: он попросит ввести домен проекта и больше ни чего. После его "отработки" в директории /home/ВАШ_ПОЛЬЗОВАТЕЛЬ/www создастся директория с сайтом и в файл hosts пропишется его петля - можно сразу открыть в браузере и работать.

1С-Битрикс на mysql-8

Если возникают проблемы с работой 1С-Битрикс на mysql версии 8, можно или даунгрейднуть mysq до версии 5.7 или внести вот такие параметры в конфигурацию mysql


[mysql]
default-character-set = utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

Написать первый комментарий:

Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений
Нажимая кнопку "Отправить" вы соглашаетесь
с политикой конфиденциальности и обработки персональных данных.

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

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

Вывести производителей на сайте с отбором его товаров из каталога Просмотров: 19598 Достаточно частая задачка для каталога или интернет-магазина: вывести список производителе... Создание скидки на общую сумму покупки в Битрикс корзине Просмотров: 28299 Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать м... Заполнить свойство инфоблока ценой из торгового каталога Просмотров: 5090 Если вам по какой-то причине нужно скопировать цену товара в свойство этого же инфоблока. ... Оптимизация jpeg и png картинок на cron, с помощью jpegoptim и optipn... Просмотров: 2278 Задача: на сайт каждый день проходит выгрузка из 1С с обновлением картинок. Нужно оптимиз... Как вывести свойства инфоблока по отдельности и немного плюшек не в т... Просмотров: 108813 Если у инфоблока несколько свойств- то при выводе их всех, скажем в детальном описании нов... Вывести артикул в печатную форму бланка заказа Просмотров: 1073 Задача: в печатную форму бланка заказа добавить артикулы товаров и данные о пользователе. ... Список новостей с автопрокруткой через overflow:scroll Просмотров: 6137 Простенький javascript позволит сделать автопрокрутку в шаблоне списка новостей. Достаточн... Как подобрать редакцию Битрикс под задачи Просмотров: 7019 Последнее время, все чаще, при общении с заказчиками, сталкиваюсь с вопросом "— К... Как работает система сертификации партнеров 1С-Битрикс, уровни партне... Просмотров: 4472 Сертификация от «1С-Битрикс» – это объективная оценка знаний и практических навыков разраб... Вывести минимальную цену торговых предложений в Битрикс Просмотров: 28102 Если у товара несколько торговых предложений и у каждого предложения разные цены, иногда т... Установка вебсервера на Apple M1 (нативный ARM стек), оптимизированны... Просмотров: 7405 Появилась задачка, установить стек MAMP (macOS, Apache, MYSQL, PHP) на рабочий ноутбук с п... AJAX корзина с отправкой количества из раздела каталога Просмотров: 20153 Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При... Самодельная форма добавления элемента на API Битрикс Просмотров: 45278 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр... Дополнительные параметры в меню Битрикс Просмотров: 20770 Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например о... Создание мобильного приложения на cordova, для любого сайта. Просмотров: 15874 Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данно... Скопировать номер телефона из поля пользователя в телефон для регистр... Просмотров: 2800 Задача, на конкретном сайте: раньше все пользователи регистрировались по стандартному режи... Вывести новости из конкретного раздела инфоблока Битрикс Просмотров: 55238 Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Б... Подключение jquery из ядра битрикс и объединение своих скриптов в оди... Просмотров: 20892 Если используете большое количество js скриптов на сайте. Например: фансибокс, всяческие г... Малая корзина Битрикс, упрощенный шаблон Просмотров: 13606 Шаблон малой корзины битрикс, который можно вывести в боковом разделе шаблона или в шапке ... Пошагово получить информацию о заказах и сохранить как Excel (xls) Просмотров: 1684 Задача: Нужно получить информацию о заказах с возможностью указания даты создания "от"" и ...