Настройка сервера на AltLinux

Конфигурирование сервера на AltLinux


Apache2 Первоначальная установка. Запуск статической страницы
Apache2 Запуск PHP скриптов.
Веб-сервер Nginx. Первоначальная установка.
Использование nginx и php5-fpm для запуска PHP скриптов
Форум phpBB на nginx и php5-fpm.
Архивирование, аварийное восстановление и перенос сайтов на PHP на примере Joomla
Веб-сервер и домашние каталоги пользователей.
Виртуальный хостинг на Apache2
Nginx и Apache2
Виртуальный хостинг на Nginx
Подключение к Интернет через вторую сетевую карту

Apache2 Первоначальная установка. Запуск статической страницы

Видеоролик можно скачать по адресу:

Http://.ru/httpd-L1.ogv

Http://youtu.be/qWAkkE8COvI

В файле /etc/httpd2/conf/sites-available/default.conf найдите и поправьте параметр RewriteCond

%{HTTPS} != on на off.

Шаг № 1:

В /etc/httpd2/conf/sites-available/default.conf находим строку:

 

DocumentRoot "/usr/share/doc/indexhtml/ "

Заменяем или комментируем, т.е. ставим перед ней знак # и пишем свою:

 

DocumentRoot "/var/www/html/"

Или другую, какую вам надо. Размещаете туда свой сайт. В этом же файле находите строку:

 

Заменяете

 

Шаг № 2: В /etc/httpd2/conf/include/Directory_html_default.conf дописываете в строку

 

Options Includes FollowSymLinks MultiViews

Слово Indexes и получаете

 

Options Indexes Includes FollowSymLinks MultiViews

Шаг № 3: (не обязателен)

Для того чтобы не терять возможность читать документацию вставляем в самый конец

/etc/httpd2/conf/sites-available/default.conf

 

Alias /doc "/usr/share/doc/indexhtml/"

Include conf/include/Directory_html_default.conf

Шаг № 4: запускаем apache2

 

[[email protected] ~]#service httpd2 start

Заходим по адресу http://192.168.0.1 size="3">и видим тестовую страницу It Works

Или новую, которую разместили сами в каталог /var/www/html/

Заходим по адресу http://192.168.0.1/doc size="3">и видим документацию.

27.04.2014 20:21:47 


  « 1 : 04.05.2013 12:38:53 »

Apache2 Запуск PHP скриптов.

Видеоролик можно скачать по адресу:

Http://.ru/httpd-L2.ogv

Http://youtu.be/8Hl7pqorqgM

Создаем файл:

 

[[email protected] ~]# cat >> /var/www/html/index.php

Color="#0000bc">

Нажимаем Ввод

Сохранить (ctrl+d)

В каталоге /var/www/html/ появился файл index.php всего с одной строкой

 

Color="#0000bc">

Заходим по адресу http://192.168.0.1/index.php size="3">и видим вывод полученный после исполнения

Команды PHP, где PHP выводит нам всю информацию о себе. Номер версии и так далее.

14.06.2013 20:21:54 


  « 2 : 04.05.2013 12:40:02 »

Веб-сервер Nginx. Первоначальная установка.

Видеоролик можно скачать по адресу:

Http://.ru/httpd-L3.ogv

Http://youtu.be/4G1U1p-ybso

Останавливаем Apache2, так как он занимает порт 80.

 

[[email protected] ~]#service httpd2 stop

Шаг №1: Ставим Nginx

 

[[email protected] ~]#apt-get install nginx

Шаг №2: Запускаем Nginx

Редактируем file /etc/nginx/nginx.conf находим

 

Include /etc/nginx/sites-enabled.d/*.conf;

Заменяем на

 

Include /etc/nginx/sites-available.d/*.conf;

Редактируем file /etc/nginx/sites-available.d/default.conf ставим реальный IP-адрес

Строка 2:

 

Listen 192.168.0.1;

В районе 29 строки вставляем

 

Location ~* ^.+\.(ogv|iso|html)$ {

Root /var/www/html;

}

Запускаем Nginx

 

[[email protected] ~]#service nginx restart

Заходим по адресу http://192.168.0.1 и видим тестовую страницу It Works

Или новую, которую разместили сами в каталог /var/www/html/

Статические файлы *.ogv *.iso *.html либо любые другие *.jpg добавляются через

Вертикальную черту в


Location ~* ^.+\.(ogv|iso|html|jpg)$ {

Добавляем и тестируем: Например ris.jpg смотрим http://192.168.0.1/ris.jpg

«  14.06.2013 20:24:43 от  »


« 3 : 04.05.2013 12:42:46 »

Использование nginx и php5-fpm для запуска PHP скриптов

Видеоролик можно скачать по адресу:

Http://.ru/httpd-L4.ogv

Http://youtu.be/n93I5ZqKdvM

Шаг №1: Ставим php5-fpm


[[email protected] ~]#apt-get install php5-fpm-fcgi

В file /etc/nginx/sites-available.d/default.conf еще добавляем


Location ~ \.php$ {

Root /var/www/html;

Try_files $uri =404;

Include /etc/nginx/fastcgi_params;

Fastcgi_pass unix:/var/run/php5-fpm/php5-fpm.sock;

Fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;

}

Location ~ /\.ht {

Deny all;

}

Перезапускаем Nginx


[[email protected] ~]#service nginx restart

Перезапускаем php5-fpm


[[email protected] ~]#service php5-fpm restart

Помним, что в предыдущей лабораторной работе в каталоге /var/www/html/ появился файл

Index.php всего с одной строкой


Color="#0000bc">

Заходим по адресу http://192.168.0.1/index.php и видим вывод полученный после исполнения

Команды PHP, где PHP выводит нам всю информацию о себе. Номер версии и так далее. А

Также показывает какой web сервер открыл информационную страничку.

«  14.06.2013 20:27:51 от  »


« 4 : 04.05.2013 20:18:46 »

Движки PHP на примере:

Видеоролик можно скачать по адресу:

Http://.ru/httpd-L5.ogv

Http://youtu.be/QA2lTJtF6-8

Форум phpBB на nginx и php5-fpm.

Скачиваем из инета скрипт phpBB, у меня он получился в таком виде phpbb-3.0.11-ru.zip

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


[[email protected] html]#unzip phpbb-3.0.11-ru.zip

Устанавливаем права


[[email protected] ~]#chown -R _php_fpm:_webserver /var/www/html/phpBB3

Заходим по адресу http://192.168.0.1/phpBB3/index.php

На Apache2

Останавливаем nginx, так как он занимает порт 80.


[[email protected] ~]#service nginx stop

Запускаем Apache2


[[email protected] ~]#service httpd2 start

Устанавливаем права


[[email protected] ~]#chown -R apache2:apache2 /var/www/html/phpBB3

[[email protected] ~]#chmod -R 660 /var/www/html/phpBB3

[[email protected] ~]#chmod -R u+X /var/www/html/phpBB3

Заходим по адресу http://192.168.0.1/phpBB3/index.php

«  14.06.2013 20:31:25 от  »


« 5 : 04.05.2013 20:32:45 »

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

Видеоурок можно скачать по адресу:

Http://.ru/109.ogv

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


[[email protected] ~]#service httpd2 stop

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

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


[[email protected] ~]#tar -cvf - joomla | gzip -c > joomla1.tar.gz

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


[[email protected] ~]# mysqldump -u root -p vova_joomla > joomla1.sql

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

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


[[email protected] ~]#service httpd2 start

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

Joomla1.tar.gz

Joomla1.sql

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

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

На новом сервере лучше предварительно выполнить урок № 7 и проверить работу скрипта.

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

Удалить старую:


[[email protected] ~]#mysql -u root -p

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


Mysql> drop database if exists vova_joomla;

Mysql> create database vova_joomla;

Mysql> quit

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


[[email protected] ~]#mysql -u root -p vova_joomla

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

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

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


[[email protected] ~]#tar -zxvf joomla1.tar.gz

Удаляем из каталога архив

Проверяем права, если что подправляем


[[email protected] ~]#chown -R apache2:apache2 /var/www/html/joomla

[[email protected] ~]#chmod -R 660 /var/www/html/joomla

[[email protected] ~]#chmod -R u+X /var/www/html/joomla

В нашем примере этого делать не пришлось

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

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



« 6 : 04.05.2013 20:42:03 »

Веб-сервер и домашние каталоги пользователей.

Видеоурок можно скачать по адресу:

Http://.ru/106.ogv

Веб-сервер имеет возможность выставлять домашние каталоги пользователей

Это может заинтересовать школы, Так каждый класс и даже каждый ученик, может

Размещать свои сайты и веб-страницы. Управление таким сайтом осуществляется по

Личному логину и паролю пользователя и не нужны права администратора.

Наряду с общим сайтом, под одним и тем же IP -адресом или доменом появляются еще

Сайты, количество которых ограничивается только здравым смыслом.

В apache2 все изначально настроено и реализовано через каталог public_html.

Если рядовой пользователь своими правами в домашней директории создаст каталог

Public_html, то он автоматически становиться видимым для всеобщего обозрения.

Для этого достаточно набрать адрес сервера, с именем пользователя, используя знак "~" .

Например:

Http://школьный_сервер/~ivanov

Http://школьный_сервер/~class10a

Шаг № 1: Создаем пользователя

Заходим веб-браузер Mozilla https://192.168.0.180

Центр управления системой >> Пользователи >> Новая учётная запись: >> заполняем окно |

Pavel |

>>Создать>>

Шаг №2: включаем пользователя в группу apache2 и даем право доступа

Переходим в директорию /home затем


[[email protected] ~]# chown pavel.apache2 pavel

[[email protected] ~]#chmod g+rx pavel

Шаг №3: Пользователь pavel в своей домашней директории и создает там каталог

Public_html, куда размещает свою страничку и целый веб-сайт.

Все.

Обращаю внимание, что в школьном сервере все пользователи включены в один домен и

Могут видеть домашние каталоги и каталоги public_html других пользователей. Вносить

Изменения не могут, а видеть могут.

При огранизации такого доступа на веб-сайты и выдачи прав рядовым пользователям,

Администратор сервера должен четко понимать это и принимать необходимые решения по

Разграничению прав.

Для этого можно использовать учетные записи не LDAP, а локальных пользователей. Тогда

Доступа к соседним каталогам не будет.

Шаг №4: Создаем локального пользователя


[[email protected] ~]# adduser class10a

[[email protected] ~]# passwd class10a

[[email protected] ~]#chmod g+rx class10a

Шаг №5: включаем пользователя в группу apache2 и даем право доступа. Переходим в

Директорию /home затем


[[email protected] ~]# chown class10a.apache2 class10a

«  26.06.2014 20:31:14 от  »


« 7 : 04.05.2013 20:45:02 »

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

Видеоурок можно скачать по адресу:

Http://.ru/110.ogv

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

Именами.

Например, DNSы .ru и ivaniov.ru посылают на 81.81.81.81., а apache сам решает в

Какой каталог одного сервера направлять эти запросы.

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

Вообще то надо регистрировать где-нибудь в nic.ru, но мы для тестирования, чтобы не

Привлекать DNSы, создадим временные домены host1; host2; host3

На своем рабочем настольном компьютере допишем в файл (как это делать в виндос не знаю)

От рута:


[[email protected] ~]#cat >>/etc/hosts

192.168.0.1 host1

192.168.0.1 host2

192.168.0.1 host3

Сохранить (ctrl+d)

Заходим в директорию

/etc/chroot.d

И исполняем


[[email protected] ~]#./resolv.all

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

Ping host1

Ping host2

Ping host3

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

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

В file /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 дописываем

#ServerAdmin [email protected]

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

#

#ServerAdmin [email protected]

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

#

#ServerAdmin [email protected]

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

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

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

Тестовые веб-страницы.

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

Http://host1

Http://host2

Http://host3

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



« 8 : 04.05.2013 21:09:26 »

Nginx и Apache2

Видеоролик можно скачать по адресу:

Http://.ru/httpd-L9.ogv

Http://youtu.be/A0dVvtGxE0k

Схема называется фронтэнд + бэкенд (frontend + backend)

Nginx принимает соединение от клиента и открывает соединение к Apache. Последний

Выполняет свою работу, отдает свой ответ nginx и Apache освобождает ресурсы. Далее nginx

Отдает контент клиенту. Виртуальные хосты и все другие настройки Apache работаю как и

Прежде.

Переключаем Apache2 для получения запросов от Nginx

В file /etc/httpd2/conf/ports-available/http.conf находим и запрещаем Apache2 слушать внешние

80 порты, разрешая локальный 80


#Listen 12.34.56.78

###Listen 80

Listen 127.0.0.1

Перегружаем Apache2


[[email protected] ~]#service httpd2 restart

Запускаем Nginx

Редактируем file /etc/nginx/nginx.conf находим


Include /etc/nginx/sites-enabled.d/*.conf;

Заменяем


Include /etc/nginx/sites-available.d/*.conf;

Редактируем file /etc/nginx/sites-available.d/default.conf ставим реальный IP-адрес

Listen 192.168.0.1;

В строках


Proxy_redirect off; #убираем комментарий

Proxy_set_header Host $host; #убираем комментарий

Proxy_set_header X-Real-IP $remote_addr; #убираем комментарий

Proxy_set_header X-Forwarded-For $remote_addr; #убираем комментарий

Proxy_pass http://127.0.0.1; #это изменили

Если вы продолжаете по лабораторным работам, то для открытия php скриптов необходимо

Отключить исполнение скриптов в nginx


##location ~ \.php$ {

##root /var/www/html;

#try_files $uri =404;

#include /etc/nginx/fastcgi_params;

#fastcgi_pass unix:/var/run/php5-fpm/php5-fpm.sock;

#fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;

#}

#location ~ /\.ht {

#deny all;

#}

Запускаем Nginx


[[email protected] ~]#service nginx restart

Открываем http://192.168.0.1 и видим It works!

Дополнение:

Логи nginx записывает в файл /var/log/nginx/access.log , а в логи apache вместо реальных IP-

Адресов падает всегда один и тот же адрес - 127.0.0.1. Если мы все-таки хотим видеть там

Реальные адреса, то эта проблема решается установкой модуля rpaf, который будет

Складывать в лог IP-адреса, переданные через заголовки X-*.

Установим модуль:


[[email protected] ~]#apt-get install apache2-mod_rpaf

Включаем модуль:


[[email protected] ~]#a2enmod rpaf

И перезапускаем apache2:


[[email protected] ~]#service httpd2 restart

Смотрим /var/log/httpd2/access_log

127.0.0.1 - - [24/Feb/2012:18:51:02 +0600] "GET /images/vkontakte.png HTTP/1.0" 304 -

192.168.56.1 - - [24/Feb/2012:18:53:58 +0600] "GET / HTTP/1.0" 304 -

192.168.56.1 - - [24/Feb/2012:18:53:58 +0600] "GET /index.css HTTP/1.0" 304 -

«  14.06.2013 20:33:33 от  »



« 9 : 04.05.2013 21:58:34 »

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

На входе сервера 80 порт слушает Nginx и в зависимости от имени, по которому обратился

Клиент с запросом Nginx отправляет его на локальный Apache2 по адресу 127.0.0.1, как в

Предыдущем примере, либо на любой из виртуальных серверов, у нас это например

192.168.56.3, либо вообще на реальный сервер в локальной сети.

Все что нужно это скопировать /etc/nginx/sites-available.d/default.conf в файл , например,

/etc/nginx/sites-available.d/.conf

Любое название, *.conf и разместить рядом в одном каталоге

Отличия только в строчках

Server_name

И

Proxy_pass http://127.0.0.1/;

Какое имя напишите, то и будет Nginx ждать в запросе клиента

Какой IP адрес укажите, туда и будет посылать на исполнения запроса.

Пример с рабочего сервера


Server {

Listen 94.24.254.74;

# can't use wildcards in first server_name

Server_name .ru www..ru;

Location / {

Root /var/www/html;

# autoindex off;

# autoindex_exact_size on;

# autoindex_localtime off;

# expires off;

# cooperate with mod_realip in apache-1.3 or mod_rpaf in apache-

2.x

Proxy_redirect off;

Proxy_set_header Host $host;

Proxy_set_header X-Real-IP $remote_addr;

Proxy_set_header X-Forwarded-For $remote_addr;

Proxy_pass http://172.16.8.231/;

И таких файлов *.conf у вас может быть сколько угодно.

«  04.05.2013 22:09:54 от  »



Подключение к Интернет через вторую сетевую карту

Появилась такая проблема. Есть компьютер, который имеет постоянный сетевой адрес в сети

Организации с выходом в Интернет. Требуется периодически подключать ноутбук через

Вторую сетевую карту установленную в этот компьютер с выходом в Интернет.

 Дано

Компьютер с двумя сетевыми картами eth0 и eth1

Сетевая карта eth1 имеет сетевой адрес и подключена к сети организации с выходом в

Интернет.

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

Ноутбуки с возможностью выхода в Интернет.

На компьютере установлен АЛТ Линукс Ковчег 5.0, на приносимых также установлены АЛТ

Линукс Ковчег 5.0 Системы установлены без каких-либо дополнительных сторонних

Пакетов.

 Появившиеся проблемы

Попытки просто подключить ноутбук ничего не дали, даже после того, как в Центре

Управления системой, в разделе Брандмауэр сетевую карту eth1 отметил, как внешний

Интерфейс, а режим работы выбрал шлюз.

 Решение

Для этого установливаем через Синаптик пакеты:

Alterator-fbi

Alterator-dhcp

После установки, от root запускаем сервисы:

Service alteratord start

Service ahttpd start

Запустив через Firefox или другой браузер https://localhost80 заходим в Центр управления

Системой.

Смотрим раздел Внешние сети и отмечаем, если не отмечено ту карту, которая подключена в

Сеть организации. Отмечаем все необходимые соединения на внешних интерфейсах.

Выбираем режим работы шлюз NAT. Далее, заходим в раздел DHCP-сервер. Выбираем

Сетевой интерфейс eth0, устанавливаем максимально допустимый диапазон адресов:

Начальный IP адрес: 192.168.1.100

Конечный IP адрес: 192.168.1.200

Срок действия 1 месяц. (Не знаю, почему нет постоянно).

DNS-сервер: ничего

Домен поиска: ничего

Шлюз по умолчанию: 192.168.1.1

В разделе Статические адреса. Выбираем Новый статический адрес, и добавляем адрес

Ноутбука (192.168.1.101) с МАС адресом сетевой карты. Презагрузить систему. В

KNetworkManager создаём новое сетевое подключение и пользуемся Интернетом.