Веб-сервер: различия между версиями

Материал из ALT Linux Wiki
 
(не показано 30 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{Note|Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.}}
Ставим пакеты:
Ставим пакеты:
  # apt-get install lamp-server
  # apt-get install lamp-server
Строка 4: Строка 5:


Apache:
Apache:
  # service httpd2 start
  # systemctl enable --now httpd2
# service httpd2 enable
MySQL:
MySQL:
  # service mysqld start
  # systemctl enable --now mysqld
# service mysqld enable


=====Настройка Apache2=====
==Настройка Apache2==
Открываем от имени суперпользователя:
Открываем от имени суперпользователя:
  # pluma /etc/httpd2/conf/include/Directory_html_default.conf
  # mcedit /etc/httpd2/conf/include/Directory_html_default.conf
Необходимо в строке
Необходимо в строке
  Options Includes FollowSymLinks MultiViews
  Options Includes FollowSymLinks MultiViews
Строка 18: Строка 17:
  Options Indexes Includes FollowSymLinks MultiViews
  Options Indexes Includes FollowSymLinks MultiViews


=====Где хранится сайт?=====
==Где хранится сайт?==
Открываем в редакторе от суперпользователя файл '''/etc/httpd2/conf/sites-available/default.conf'''.
Открываем в редакторе от суперпользователя файл {{path|/etc/httpd2/conf/sites-available/default.conf}}.


Ищем строку
Ищем строку
  DocumentRoot "/var/www/html/"
  DocumentRoot "/var/www/html/"
Либо кладем сайт туда, либо меняем путь на свой.
Либо помещаем сайт туда, либо меняем путь на свой.


=====Сайты на движке PHP=====
==Сайты на движке PHP==
Например, сайт лежит в каталоге /var/www/html/PhpBB3. Для него нужно дать доступ серверу Apache.
Например, сайт лежит в каталоге {{path|/var/www/html/PhpBB3}}. Для него нужно дать доступ серверу Apache.
  # chown -R apache2:apache2 /var/www/html/phpBB3
  # chown -R apache2:apache2 /var/www/html/phpBB3
  # chmod -R 660 /var/www/html/phpBB3
  # chmod -R 660 /var/www/html/phpBB3
  # chmod -R u+X /var/www/html/phpBB3
  # chmod -R u+X /var/www/html/phpBB3
Сайт будет доступен по ссылке http://IP/phpBB3/index.php
Сайт будет доступен по ссылке [http://IP/phpBB3/index.php http://IP/phpBB3/index.php]


=====Настройка PhpmyAdmin=====
==Настройка PhpmyAdmin==
Ставим пакеты:
Ставим пакеты:
  # apt-get install phpmyadmin phpmyadmin-apache2-php7
  # apt-get install phpMyAdmin phpMyAdmin-apache2-php8.1


Страница PhpMyAdmin:
Страница PhpMyAdmin:
*http://localhost/phpMyAdmin - регистр соблюдать!
*http://127.0.0.1/phpMyAdmin - регистр соблюдать!


Под root пускать не будет, создадим другого пользователя.
Под root пускать не будет, создадим другого пользователя.
Строка 47: Строка 46:
Заходите под свежесозданным пользователем '''phpmyadmin'''.
Заходите под свежесозданным пользователем '''phpmyadmin'''.


=====Виртуальный хостинг=====
==Виртуальный хостинг==
{{Note|Если вы хотите на одном сервере сделать доступ по одному адресу на один сайт или IP, или на подразделы IP/site, то пропустите этот шаг}}
Виртуальный хостинг - это когда веб-запросы приходят на один IP - адрес, но под разными именами.
Виртуальный хостинг - это когда веб-запросы приходят на один IP - адрес, но под разными именами.


Строка 53: Строка 53:
*salomatin.ru
*salomatin.ru
*ivaniov.ru
*ivaniov.ru
посылают на 81.81.81.81., а apache сам решает в какой каталог одного сервера направлять эти запросы.  
посылают на 81.81.81.81, а apache сам решает в какой каталог одного сервера направлять эти запросы.  


'''Шаг 1: Регистрируем домены на один IP адрес'''
===Шаг 1: Регистрируем домены на один IP адрес===


Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на [[Alterator-bind|Bind]]. Если домен на Samba, то через [[SambaAD_start#GUI_для_управления_Samba|Samba-tools]].
Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на [[Alterator-bind|Bind]]. Если домен на Samba, то через [[SambaAD_start#GUI_для_управления_Samba|Samba-tools]].
Строка 61: Строка 61:
Потом прописываем на сервере адреса в hosts:
Потом прописываем на сервере адреса в hosts:


  # pluma /etc/hosts
  # mcedit /etc/hosts


  192.168.0.1  host1
  192.168.0.1  host1
Строка 71: Строка 71:


Тестируем  со своего рабочего настольного компьютера от имени простого пользователя:
Тестируем  со своего рабочего настольного компьютера от имени простого пользователя:
ping host1
$ ping host1
ping host2
$ ping host2
ping host3
$ ping host3


Должны попадать на IP сервера.
Должны попадать на IP сервера.


'''Шаг 2: Разрешаем загружать виртуальные сайты'''
===Шаг 2: Разрешаем загружать виртуальные сайты===


В файле /etc/httpd2/conf/sites-start.d/000-default.conf
В файле {{path|/etc/httpd2/conf/sites-start.d/000-default.conf}}:
  ports_all=yes
  ports_all=yes
  default=yes
  default=yes
Строка 90: Строка 90:
  # a2chkconfig
  # a2chkconfig


'''Шаг 3: Прописываем виртуальные хосты'''
===Шаг 3: Прописываем виртуальные хосты===


В файле /etc/httpd2/conf/sites-available/vhosts.conf дописываем
В файле {{path|/etc/httpd2/conf/sites-available/vhosts.conf}} дописываем


  <VirtualHost *:80>
  <VirtualHost *:80>
Строка 121: Строка 121:
  </VirtualHost>
  </VirtualHost>


'''Шаг 4: Создаем домашние каталоги виртуальных хостов'''
===Шаг 4: Создаем домашние каталоги виртуальных хостов===


В /var/www/vhosts создаем три каталога host1; host2; host3, в которых размещаем разные тестовые веб-страницы.
В {{path|/var/www/vhosts}} создаем три каталога host1; host2; host3, в которых размещаем разные тестовые веб-страницы.


Заходим со своего рабочего настольного компьютера
Заходим со своего рабочего настольного компьютера
Строка 131: Строка 131:
и в каждом видим свою тестовую страницу.
и в каждом видим свою тестовую страницу.


=====Архивирование, аварийное восстановление и перенос сайтов на PHP=====
==Архивирование, аварийное восстановление и перенос сайтов на PHP==
На примере Joomla
На примере Joomla


'''Шаг №1:  Останавливаем работу сайта'''
===Архивирование===
====Шаг №1:  Останавливаем работу сайта====


  # service httpd2 stop
  # systemctl stop httpd2


'''Шаг №2:  Создаем архивы ( на примере Joomla)'''
====Шаг №2:  Создаем архивы ( на примере Joomla)====


Заходим в каталог /var/www/html/
Заходим в каталог {{path|/var/www/html/}}
  # cd /var/www/html/
  # cd /var/www/html/
  # tar -cvf - joomla | gzip -c > joomla1.tar.gz
  # tar -cvf - joomla | gzip -c > joomla1.tar.gz
Строка 149: Строка 150:
Спросит пароль рута или новый, если поменяли
Спросит пароль рута или новый, если поменяли


'''Шаг №3:  Запускаем работу сайта'''
====Шаг №3:  Запускаем работу сайта====
  # service httpd2 start
  # systemctl start httpd2


Копируем  в надежное место
Копируем  в надежное место
Строка 156: Строка 157:
*joomla1.sql
*joomla1.sql


Восстановление:
===Восстановление===


'''Шаг №1:  Восстанавливаем базу данных'''
====Шаг №1:  Восстанавливаем базу данных====


Чтобы загрузить базу, нужно сначала создать пустую, а для надёжности предварительно удалить старую:
Чтобы загрузить базу, нужно сначала создать пустую, а для надёжности предварительно удалить старую:
Строка 175: Строка 176:
Спросит пароль рута.
Спросит пароль рута.


'''Шаг №2:  Восстанавливаем каталог Joomla'''
====Шаг №2:  Восстанавливаем каталог Joomla====


Размещаем архив joomla1.tar.gz в каталоге /var/www/html/ и распаковываем его командой
Размещаем архив {{path|joomla1.tar.gz}} в каталоге {{path|/var/www/html/}} и распаковываем его командой


  # tar -zxvf joomla1.tar.gz
  # tar -zxvf joomla1.tar.gz
Строка 191: Строка 192:
Сайт восстановлен.
Сайт восстановлен.


=====Установка сайтов=====
==Установка сайтов==
======MediaWiki======
{{Note|Если вы хотите на одном сервере только один сайт, то располагайте сайт прямо в /var/www/html, без дополнительной папки}}
===MediaWiki===
{{Note|Я знаю, что можно устновить из пакетов, но хочу описать ручную установку}}
{{Note|Я знаю, что можно устновить из пакетов, но хочу описать ручную установку}}
{{Note|Чтобы управлять файлами с сайтами через GUI, можно открыть caja от root: su-;caja}}
{{Note|Чтобы управлять файлами с сайтами через файловый менеджер, можно открыть mc от root: su-;mc}}
1. Ставим расширение:
1. Ставим расширение:
  # apt-get install php7-fileinfo
  # apt-get install php7-fileinfo
2. Скачиваем архив с mediawiki:
2. Скачиваем архив с mediawiki:
*https://www.mediawiki.org/wiki/Download/ru
*https://www.mediawiki.org/wiki/Download/ru
3. Распаковываем в /var/www/wiki/<br>
3. Распаковываем в {{path|/var/www/html/wiki/}}
 
4. Назначаем права
4. Назначаем права
  # chown -R apache2:apache2 /var/www/wiki/
  # chown -R apache2:apache2 /var/www/html/wiki/
  # chmod -R 660 /var/www/wiki/
  # chmod -R 660 /var/www/html/wiki/
  # chmod -R u+X /var/www/wiki/
  # chmod -R u+X /var/www/html/wiki/
5. Через PhpMyAdmin добавляем БД<br>
5. Через PhpMyAdmin добавляем БД
6. Идем localhost/wiki
 
7. Настраиваем/устанавливаем mediawiki<br>
6. Идем [http://localhost/wiki http://localhost/wiki]
8. Кидаем файл с настройками в /var/www/wiki/
 
7. Настраиваем/устанавливаем mediawiki
 
8. Кидаем файл с настройками в {{path|/var/www/html/wiki/}}
 
Сайт будет доступен по [http://IP/wiki http://IP/wiki].
 
Если хотите доступ по IP кидайте заранее в папку www.


Сайт будет доступен по IP/wiki.
===Почта===
1. Качаем
 
https://afterlogic.org/webmail-lite
 
2. Распаковываем в {{path|/var/www/html/mail/}}


Если хотите доступ по IP кидайте заранее в папке www.
======Почта======
1. Качаем<br>
https://afterlogic.org/webmail-lite<br>
2. Распаковываем в /var/www/mail/<br>
3. Назначаем права
3. Назначаем права
  # chown -R apache2:apache2 /var/www/mail/
  # chown -R apache2:apache2 /var/www/html/mail/
  # chmod -R 660 /var/www/mail/
  # chmod -R 660 /var/www/html/mail/
  # chmod -R u+X /var/www/mail/
  # chmod -R u+X /var/www/html/mail/
4. Идем localhost/mail<br>
 
5. Входим (логин superadmin, пароль пустой). Настраиваем.<br>
4. Идем http://localhost/mail
 
5. Входим (логин superadmin, пароль пустой). Настраиваем.
 
6. В PhpMyAdmin создаем БД
6. В PhpMyAdmin создаем БД
===Helpdesk===
1. Качаем (v3)
https://www.hesk.com/download.php
2. Распаковываем в /var/www/html/helpdesk/
3. Назначаем права
# chown -R apache2:apache2 /var/www/html/helpdesk/
# chmod -R 660 /var/www/html/helpdesk/
# chmod -R u+X /var/www/html/helpdesk/
4. Идем localhost/helpdesk/install
5. Устанавливаем
6. Удаляем папку localhost/helpdesk/install
7. Русский язык - https://www.hesk.com/language/ - после скачивания и добавления не забудьте переназначить права
---------
---------
Источник: [https://forum.altlinux.org/index.php?topic=29114.0 forum.altlinux.org]
Источник: [https://forum.altlinux.org/index.php?topic=29114.0 forum.altlinux.org]
{{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Начинающему системному администратору|category=Начинающему системному администратору|sortkey={{SUBPAGENAME}}}}

Текущая версия от 20:32, 3 декабря 2024

Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.

Ставим пакеты:

# apt-get install lamp-server

Запускаем службы:

Apache:

# systemctl enable --now httpd2

MySQL:

# systemctl enable --now mysqld

Настройка Apache2

Открываем от имени суперпользователя:

# mcedit /etc/httpd2/conf/include/Directory_html_default.conf

Необходимо в строке

Options Includes FollowSymLinks MultiViews

дописать слово Indexes:

Options Indexes Includes FollowSymLinks MultiViews

Где хранится сайт?

Открываем в редакторе от суперпользователя файл /etc/httpd2/conf/sites-available/default.conf.

Ищем строку

DocumentRoot "/var/www/html/"

Либо помещаем сайт туда, либо меняем путь на свой.

Сайты на движке PHP

Например, сайт лежит в каталоге /var/www/html/PhpBB3. Для него нужно дать доступ серверу Apache.

# chown -R apache2:apache2 /var/www/html/phpBB3
# chmod -R 660 /var/www/html/phpBB3
# chmod -R u+X /var/www/html/phpBB3

Сайт будет доступен по ссылке http://IP/phpBB3/index.php

Настройка PhpmyAdmin

Ставим пакеты:

# apt-get install phpMyAdmin phpMyAdmin-apache2-php8.1

Страница PhpMyAdmin:

Под root пускать не будет, создадим другого пользователя.

# mysql
# MariaDB [mysql]> CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'пароль';
# MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
# MariaDB [mysql]> FLUSH PRIVILEGES;

Заходите под свежесозданным пользователем phpmyadmin.

Виртуальный хостинг

Примечание: Если вы хотите на одном сервере сделать доступ по одному адресу на один сайт или IP, или на подразделы IP/site, то пропустите этот шаг

Виртуальный хостинг - это когда веб-запросы приходят на один IP - адрес, но под разными именами.

Например, DNS-имена:

  • salomatin.ru
  • ivaniov.ru

посылают на 81.81.81.81, а apache сам решает в какой каталог одного сервера направлять эти запросы.

Шаг 1: Регистрируем домены на один IP адрес

Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на Bind. Если домен на Samba, то через Samba-tools.

Потом прописываем на сервере адреса в hosts:

# mcedit /etc/hosts
192.168.0.1   host1
192.168.0.1   host2
192.168.0.1   host3

Выполняем:

/etc/chroot.d/resolv.all

Тестируем со своего рабочего настольного компьютера от имени простого пользователя:

$ ping host1
$ ping host2
$ ping host3

Должны попадать на IP сервера.

Шаг 2: Разрешаем загружать виртуальные сайты

В файле /etc/httpd2/conf/sites-start.d/000-default.conf:

ports_all=yes
default=yes
vhosts=no

Необходимо изменить последнюю строку:

vhosts=yes

Для применения изменений запустить:

# a2chkconfig

Шаг 3: Прописываем виртуальные хосты

В файле /etc/httpd2/conf/sites-available/vhosts.conf дописываем

<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/vhosts/host1
ServerName host1
#ServerAlias http://www.host1
ErrorLog /var/log/httpd2/host1-error_log
CustomLog /var/log/httpd2/host1-access_log common
</VirtualHost>
#
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/vhosts/host2
ServerName host2
#ServerAlias http://www.host2
ErrorLog /var/log/httpd2/host2-error_log
CustomLog /var/log/httpd2/host2-access_log common
</VirtualHost>
#
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/vhosts/host3
ServerName host3
#ServerAlias http://www.host3
ErrorLog /var/log/httpd2/host3-error_log
CustomLog /var/log/httpd2/host3-access_log common
</VirtualHost>

Шаг 4: Создаем домашние каталоги виртуальных хостов

В /var/www/vhosts создаем три каталога host1; host2; host3, в которых размещаем разные тестовые веб-страницы.

Заходим со своего рабочего настольного компьютера

и в каждом видим свою тестовую страницу.

Архивирование, аварийное восстановление и перенос сайтов на PHP

На примере Joomla

Архивирование

Шаг №1: Останавливаем работу сайта

# systemctl stop httpd2

Шаг №2: Создаем архивы ( на примере Joomla)

Заходим в каталог /var/www/html/

# cd /var/www/html/
# tar -cvf - joomla | gzip -c > joomla1.tar.gz

Создаем архив базы данных. Выгрузить базу MySQL можно командой:

# mysqldump -u root -p vova_joomla > joomla1.sql

Спросит пароль рута или новый, если поменяли

Шаг №3: Запускаем работу сайта

# systemctl start httpd2

Копируем в надежное место

  • joomla1.tar.gz
  • joomla1.sql

Восстановление

Шаг №1: Восстанавливаем базу данных

Чтобы загрузить базу, нужно сначала создать пустую, а для надёжности предварительно удалить старую:

# mysql -u root -p

MySQL спросит пароль рута...

mysql> drop database if exists vova_joomla;
mysql> create database vova_joomla;
mysql> quit

...а затем в неё загрузить данные:

# mysql -u root -p vova_joomla < joomla1.sql

Спросит пароль рута.

Шаг №2: Восстанавливаем каталог Joomla

Размещаем архив joomla1.tar.gz в каталоге /var/www/html/ и распаковываем его командой

# tar -zxvf joomla1.tar.gz

Удаляем из каталога архив, проверяем права, если что подправляем.

# chown -R apache2:apache2 /var/www/html/joomla
# chmod -R 660 /var/www/html/joomla
# chmod -R u+X /var/www/html/joomla

Проверяем работу сайта.

Сайт восстановлен.

Установка сайтов

Примечание: Если вы хотите на одном сервере только один сайт, то располагайте сайт прямо в /var/www/html, без дополнительной папки

MediaWiki

Примечание: Я знаю, что можно устновить из пакетов, но хочу описать ручную установку
Примечание: Чтобы управлять файлами с сайтами через файловый менеджер, можно открыть mc от root: su-;mc

1. Ставим расширение:

# apt-get install php7-fileinfo

2. Скачиваем архив с mediawiki:

3. Распаковываем в /var/www/html/wiki/

4. Назначаем права

# chown -R apache2:apache2 /var/www/html/wiki/
# chmod -R 660 /var/www/html/wiki/
# chmod -R u+X /var/www/html/wiki/

5. Через PhpMyAdmin добавляем БД

6. Идем http://localhost/wiki

7. Настраиваем/устанавливаем mediawiki

8. Кидаем файл с настройками в /var/www/html/wiki/

Сайт будет доступен по http://IP/wiki.

Если хотите доступ по IP кидайте заранее в папку www.

Почта

1. Качаем

https://afterlogic.org/webmail-lite

2. Распаковываем в /var/www/html/mail/

3. Назначаем права

# chown -R apache2:apache2 /var/www/html/mail/
# chmod -R 660 /var/www/html/mail/
# chmod -R u+X /var/www/html/mail/

4. Идем http://localhost/mail

5. Входим (логин superadmin, пароль пустой). Настраиваем.

6. В PhpMyAdmin создаем БД

Helpdesk

1. Качаем (v3)

https://www.hesk.com/download.php

2. Распаковываем в /var/www/html/helpdesk/

3. Назначаем права

# chown -R apache2:apache2 /var/www/html/helpdesk/
# chmod -R 660 /var/www/html/helpdesk/
# chmod -R u+X /var/www/html/helpdesk/

4. Идем localhost/helpdesk/install

5. Устанавливаем

6. Удаляем папку localhost/helpdesk/install

7. Русский язык - https://www.hesk.com/language/ - после скачивания и добавления не забудьте переназначить права


Источник: forum.altlinux.org