Настраиваем сервер для хостинга сайтов: nginx+apache+php+mysql
В данной статье мы будем рассматривать как выполнить базовую настройку linux сервера для его использования под хостинг сайтов на примере Debian 7.
1. Обновляем кэш доступных пакетов и устанавливаем необходимые пакеты:
Устанавливаем все необходимое, то есть все что нужно что бы работала связка nginx+apache+php+mysql и в добавок phpmyadmin
в процессе установки система потребует ввести пароль root пользователя сервера БД MySQL а так же выбрать веб сервер, выбираем apache2.
В итоге на сервере будет запущен apache и mysql. Доступ к серверу БД мы уже сможем получить по ссылке:
Установленные модули php можно проверить командой:
Если не хватает модуля (например cURL) то устанавливаем его:
2. Настраиваем связку frontend (nginx) + backend (apache)
Изменяем конфигурационные файлы apache:
Находим строчку Listen 80 и меняем на Listen 127.0.0.1:80
Перегружаем apache
В итоге наш вебсервер apache будет принимать соединения по локальному адресу 127.0.0.1:80
Изменяем конфигурационные файлы nginx:
находим строчку в разделе server:
и приводим ее к виду:
зону location /
которая имеет вид:
меняем на:
Как итог nginx сервер принимает соединения и отправляет их к apache.
Связка nginx+apache настроена. Запускаем nginx
3. Настраиваем доменную зону для nginx и apache на примере домена test.ru
Создаем директорию для домена:
Создаем конфигурационный файл домена для nginx:
вставляем конфиг:
Создаем конфигурационный файл домена для apache:
вставляем конфиг:
Перегружаем nginx и apache:
Создаем тестовые файлы для нашего домена:
Настраиваем Локальное перенаправление домена как описано в этом посте blog.vpsville.ru/blog/56.html
и если в итоге открывая страницы
видим:
и
значит что мы все сделали верно :)
P.S. Повторяя пункт 3 на сервер можно добавить не ограниченное количество доменов.
Всем удачи!!!
1. Обновляем кэш доступных пакетов и устанавливаем необходимые пакеты:
apt-get update
Устанавливаем все необходимое, то есть все что нужно что бы работала связка nginx+apache+php+mysql и в добавок phpmyadmin
apt-get -y install nginx phpmyadmin mysql-server
в процессе установки система потребует ввести пароль root пользователя сервера БД MySQL а так же выбрать веб сервер, выбираем apache2.
В итоге на сервере будет запущен apache и mysql. Доступ к серверу БД мы уже сможем получить по ссылке:
http://ip_servera/phpmyadmin/
Установленные модули php можно проверить командой:
php -m
Если не хватает модуля (например cURL) то устанавливаем его:
apt-get -y install php5-curl
2. Настраиваем связку frontend (nginx) + backend (apache)
Изменяем конфигурационные файлы apache:
nano /etc/apache2/ports.conf
Находим строчку Listen 80 и меняем на Listen 127.0.0.1:80
Перегружаем apache
/etc/init.d/apache2 restart
В итоге наш вебсервер apache будет принимать соединения по локальному адресу 127.0.0.1:80
Изменяем конфигурационные файлы nginx:
nano /etc/nginx/sites-enabled/default
находим строчку в разделе server:
#listen 80;
и приводим ее к виду:
listen ip_servera:80;
зону location /
которая имеет вид:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
меняем на:
location / {
proxy_pass http://127.0.0.1;
proxy_read_timeout 600;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_buffering off;
}
Как итог nginx сервер принимает соединения и отправляет их к apache.
Связка nginx+apache настроена. Запускаем nginx
/etc/init.d/nginx start
3. Настраиваем доменную зону для nginx и apache на примере домена test.ru
Создаем директорию для домена:
mkdir /home/test.ru && mkdir /home/test.ru/logs && mkdir /home/test.ru/tmp && mkdir /home/test.ru/html
Создаем конфигурационный файл домена для nginx:
nano /etc/nginx/sites-enabled/www.test.ru.conf
вставляем конфиг:
server {
listen ip_servera:80;
server_name www.test.ru test.ru;
access_log /home/test.ru/logs/www.test.ru.access.log;
error_log /home/test.ru/logs/www.test.ru.error.log;
location /
{
proxy_pass http://127.0.0.1/;
proxy_read_timeout 600;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_buffering off;
}
location ~* .(txt|jpg|jpeg|gif|mpg|mpeg|avi|png|css|swf|ico|zip|rar|sdt|js|bmp|wav|mp3|mmf|mid|vkp|sisx|sis|exe|jar|thm|nth|doc)$ {
root /home/test.ru/html;
expires 2d;
}
}
Создаем конфигурационный файл домена для apache:
nano /etc/apache2/sites-enabled/www.test.ru.conf
вставляем конфиг:
<VirtualHost *:80>
ServerName www.test.ru
ServerAlias test.ru
CustomLog /home/test.ru/logs/www.test.ru.access.apache.log common
ErrorLog /home/test.ru/logs/www.test.ru.error.apache.log
DocumentRoot /home/test.ru/html
DirectoryIndex index.php index.html
php_admin_value open_basedir /home/test.ru
php_admin_value upload_tmp_dir /home/test.ru/tmp
php_admin_value session.save_path /home/test.ru/tmp
</VirtualHost>
Перегружаем nginx и apache:
/etc/init.d/nginx restart
/etc/init.d/apache2 restart
Создаем тестовые файлы для нашего домена:
echo "hello world :)" > /home/test.ru/html/index.html
echo "<? phpinfo(); ?>" > /home/test.ru/html/info.php
Настраиваем Локальное перенаправление домена как описано в этом посте blog.vpsville.ru/blog/56.html
и если в итоге открывая страницы
http://test.ru/ и http://test.ru/info.php
видим:
и
значит что мы все сделали верно :)
P.S. Повторяя пункт 3 на сервер можно добавить не ограниченное количество доменов.
Всем удачи!!!
- 0
- 20 сентября 2013, 18:28
- admin
Комментарии (0)
RSS свернуть / развернуть