Конфигурирование сервера на 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/"
или другую, какую вам надо. Размещаете туда свой сайт. В этом же файле находите строку:
<Directory "/usr/share/doc/indexhtml/">
заменяете
<Directory "/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/"
<Directory "/usr/share/doc/indexhtml/">
Include conf/include/Directory_html_default.conf
</Directory>
Шаг № 4: запускаем apache2
[root@server ~]#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
создаем файл:
[root@server ~]# cat >> /var/www/html/index.php
color="#0000bc"> <?php phpinfo color="#007700"> (); color="#0000bc"> ?>
нажимаем Ввод
сохранить (ctrl+d)
в каталоге /var/www/html/ появился файл index.php всего с одной строкой
color="#0000bc"> <?php phpinfo color="#007700"> (); 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.
[root@server ~]#service httpd2 stop
Шаг №1: Ставим Nginx
[root@server ~]#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:80;
В районе 29 строки вставляем
location ~* ^.+\.(ogv|iso|html)$ {
root /var/www/html;
}
Запускаем Nginx
[root@server ~]#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
[root@server ~]#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
[root@server ~]#service nginx restart
Перезапускаем php5-fpm
[root@server ~]#service php5-fpm restart
помним, что в предыдущей лабораторной работе в каталоге /var/www/html/ появился файл
index.php всего с одной строкой
color="#0000bc"> <?php phpinfo color="#007700"> (); 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 и распаковываем его командой
[root@server html]#unzip phpbb-3.0.11-ru.zip
устанавливаем права
[root@server ~]#chown -R _php_fpm:_webserver /var/www/html/phpBB3
Заходим по адресу http://192.168.0.1/phpBB3/index.php
На Apache2
Останавливаем nginx, так как он занимает порт 80.
[root@server ~]#service nginx stop
запускаем Apache2
[root@server ~]#service httpd2 start
устанавливаем права
[root@server ~]#chown -R apache2:apache2 /var/www/html/phpBB3
[root@server ~]#chmod -R 660 /var/www/html/phpBB3
[root@server ~]#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: Останавливаем работу сайта
[root@server ~]#service httpd2 stop
Шаг №2: Создаем архивы ( на примере Joomla)
заходим в каталог /var/www/html/
[root@server ~]#tar -cvf - joomla | gzip -c > joomla1.tar.gz
Создаем архив базы данных. Выгрузить базу MySQL можно командой:
[root@server ~]# mysqldump -u root -p vova_joomla > joomla1.sql
спросит пароль рута или новый, если поменяли
Шаг №3: Запускаем работу сайта
[root@server ~]#service httpd2 start
Копируем в надежное место
joomla1.tar.gz
joomla1.sql
Восстановление:
Шаг №1: Восстанавливаем базу данных
На новом сервере лучше предварительно выполнить урок № 7 и проверить работу скрипта.
Чтобы загрузить базу, нужно сначала создать пустую, а для надёжности предварительно
удалить старую:
[root@server ~]#mysql -u root -p
спросит пароль рута
mysql> drop database if exists vova_joomla;
mysql> create database vova_joomla;
mysql> quit
а затем в неё загрузить данные:
[root@server ~]#mysql -u root -p vova_joomla < joomla1.sql
спросит пароль рута
Шаг №2: Восстанавливаем каталог Joomla
размещаем архив joomla1.tar.gz в каталоге /var/www/html/ и распаковываем его командой
[root@server ~]#tar -zxvf joomla1.tar.gz
удаляем из каталога архив
проверяем права, если что подправляем
[root@server ~]#chown -R apache2:apache2 /var/www/html/joomla
[root@server ~]#chmod -R 660 /var/www/html/joomla
[root@server ~]#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.1:8080
Центр управления системой >> Пользователи >> Новая учётная запись: >> заполняем окно |
pavel |
>>Создать>>
Шаг №2: включаем пользователя в группу apache2 и даем право доступа
Переходим в директорию /home затем
[vova@server ~]# chown pavel.apache2 pavel
[vova@server ~]#chmod g+rx pavel
Шаг №3: Пользователь pavel в своей домашней директории и создает там каталог
public_html, куда размещает свою страничку и целый веб-сайт.
Все.
Обращаю внимание, что в школьном сервере все пользователи включены в один домен и
могут видеть домашние каталоги и каталоги public_html других пользователей. Вносить
изменения не могут, а видеть могут.
При огранизации такого доступа на веб-сайты и выдачи прав рядовым пользователям,
администратор сервера должен четко понимать это и принимать необходимые решения по
разграничению прав.
Для этого можно использовать учетные записи не LDAP, а локальных пользователей. Тогда
доступа к соседним каталогам не будет.
Шаг №4: Создаем локального пользователя
[vova@server ~]# adduser class10a
[vova@server ~]# passwd class10a
[vova@server ~]#chmod g+rx class10a
Шаг №5: включаем пользователя в группу apache2 и даем право доступа. Переходим в
директорию /home затем
[vova@server ~]# 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
на своем рабочем настольном компьютере допишем в файл (как это делать в виндос не знаю)
от рута:
[vova@server ~]#cat >>/etc/hosts
192.168.0.1 host1
192.168.0.1 host2
192.168.0.1 host3
сохранить (ctrl+d)
заходим в директорию
/etc/chroot.d
и исполняем
[vova@server ~]#./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 дописываем
<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, в которых размещаем разные
тестовые веб-страницы.
Заходим со своего рабочего настольного компьютера
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:80
###Listen 80
Listen 127.0.0.1:80
перегружаем Apache2
[root@server ~]#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:80;
в строках
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:80; #это изменили
Если вы продолжаете по лабораторным работам, то для открытия 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
[root@server ~]#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-*.
Установим модуль:
[root@server ~]#apt-get install apache2-mod_rpaf
Включаем модуль:
[root@server ~]#a2enmod rpaf
И перезапускаем apache2:
[root@server ~]#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:80, как в
предыдущем примере, либо на любой из виртуальных серверов, у нас это например
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:80/;
Какое имя напишите, то и будет Nginx ждать в запросе клиента
какой IP адрес укажите, туда и будет посылать на исполнения запроса.
Пример с рабочего сервера
server {
<------>listen 94.24.254.74:80;
<------># 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:80/;
И таких файлов *.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://localhost:8080 заходим в Центр управления
системой.
Смотрим раздел Внешние сети и отмечаем, если не отмечено ту карту, которая подключена в
сеть организации. Отмечаем все необходимые соединения на внешних интерфейсах.
Выбираем режим работы шлюз NAT. Далее, заходим в раздел DHCP-сервер. Выбираем
сетевой интерфейс eth0, устанавливаем максимально допустимый диапазон адресов:
Начальный IP адрес: 192.168.1.100
Конечный IP адрес: 192.168.1.200
Срок действия 1 месяц. (Не знаю, почему нет постоянно).
DNS-сервер: ничего
Домен поиска: ничего
Шлюз по умолчанию: 192.168.1.1
В разделе Статические адреса. Выбираем Новый статический адрес, и добавляем адрес
ноутбука (192.168.1.101) с МАС адресом сетевой карты. Презагрузить систему. В
KNetworkManager создаём новое сетевое подключение и пользуемся Интернетом.