Конфигурирование сервера на 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 создаём новое сетевое подключение и пользуемся Интернетом.