www.raaar.ru

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