Настраиваем хостинг для размещения сайтов

Самая неоднозначная операционная система
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Настраиваем хостинг для размещения сайтов

Сообщение RomA »

Задача:
Необходимо разместить сайт

Условия:
Мы весьма ограничены в ресурсах потому надо постараться без излишеств

Реализация:
Планирование, это хорошо, но когда не знаешь что планировать, надо сделать, посмотреть, осознать и переделать. :-) Именно с таким девозом мы и приступим к решению задачи, настраивая всё в дефолте, и только потом оптимизируя те участки, которые будут плохо себя вести

Подготовка:
Так как линукс у меня пока что не загаженный, для установки из репозиториев мне пришлось их сначало подключить

Код: Выделить всё

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Установка базы данных (mysql):
Пометавшись между разными клонами, решил ставить пока что оригинал - нагрузка планируется не большая, а оригинал себя на таких масштабах неплохо показывает. Так что ставим

Код: Выделить всё

yum install mysql
Добавим в автозагрузку

Код: Выделить всё

chkconfig mysqld on
и запустим

Код: Выделить всё

/etc/rc.d/init.d/mysqld start
Сразу поменяем пароль на рута

Код: Выделить всё

mysqladmin -u root password 'НАШ_ПАРОЛЬ'
Ставим PHP
Ну тут всё понятно, без него никуда, но вот только ставить будем его как всё прогрессивное человечество, а именно php-fpm. По мимо него установим и пару самых нужных модулей

Код: Выделить всё

yum install php-fpm, php-mysql, php-gd
Добавляем в автозагрузку

Код: Выделить всё

chkconfig php-fpm on
Теперь немного поправим конфиги. Для начала идём в /etc/php.ini ищем cgi.fix_pathinfo и добавляем

Код: Выделить всё

cgi.fix_pathinfo=0
Это надо что бы не все пользователи интернета могли закачивать к вам на сервер свои исполняемые файлы )))
Дальше идём в /etc/php-fpm.d/www.conf и вместо listen = 127.0.0.1:9000 впишем

Код: Выделить всё

listen = /tmp/php-fpm.sock
Это позволит нам более быстро работать и экономить ресурсы. Теперь можно и запустить

Код: Выделить всё

/etc/rc.d/init.d/php-fpm start
Установка веб-сервера (nginx)
Решив что я не буду использовать все фишки апача, решил выбрать nginx. Ну и да - экономия ресурсов

Код: Выделить всё

yum install nginx
Добавим в автозагрузку

Код: Выделить всё

chkconfig nginx on
Запустим

Код: Выделить всё

/etc/rc.d/init.d/nginx start
и проверим что работает (после приглашения надо нажать ESC, Enter)
[root@cz6 sysconfig]# telnet localhost 80
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^[
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.0.15</center>
</body>
</html>
Connection closed by foreign host.
[root@cz6 sysconfig]#
да, телнета, к моему великому изумлению тоже не оказалось и мне пришлось его ставить yum install telnet

Конечно этот шаг с запуском и проверкой можно пропустить, но почему то я решил убедиться что дефолтовый конфиг работает, прежде чем двигаться дальше. Итогда проще убериться про программа собралась и запускается, чем исправить конфиг, а потом гадать, где же вы ошиблись, в конфиге, или программа изначально не рабочая.

Приступим к правки конфигов - идём в /etc/nginx/nginx.conf и в секцию http { добавляем

Код: Выделить всё

server_names_hash_bucket_size 64;
у меня это получилось после keepalive_timeout 65;

/etc/nginx/conf.d и удаляем файл default.conf - я просто не придумал, зачем он мне нужен
Далее в файле virtual.conf описываем свой сервер
server {
listen 80;
root /home/www/cz6/www;

access_log /var/log/nginx/www.access.log;

server_name cz6.ru http://www.cz6.ru;

location / {
index index.php index.html index.htm;
}

location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Ну понятно что имена и пути надо заменить на свои или по вкусу. Я же продолжу и создам директориию, которую тут описал

Код: Выделить всё

mkdir /home/www/cz6/www
а в ней файлик

Код: Выделить всё

touch /home/www/cz6/www/index.php
с таким содержимым
<?php
phpinfo();
?>
Изменим права на всё это хозяйство (пользователь и группа заполненны в конфиге php)

Код: Выделить всё

chown -R apache:apache /home/www
Вроде всё. Перезапустим веб сервер, что бы он перечитал конфиг

Код: Выделить всё

[root@cz6 conf.d]# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[root@cz6 conf.d]# 
По идее уже бы пора ломануться на веб, но у меня же полностью закрытый файрвол, так что сначлао надо открыть 80 порт, а потом пробовать. Как это сделать - ищите в теме про файрвол :-) а тут мы пойдём дальше

Итак, идём на наш сервер браузером и смотрим что получилось

http://ВАШ_ИП_АДРЕС/

Вы должны увидеть страничку параметров php :-) примерно вот такую
1.jpg
1.jpg (180.82 КБ) 6295 просмотров
Ответить