Установка веб-сервера на Debian 8.0 (nginx + mysql + php)
22 декабря 2016 г.
nginx debian MySQLМы уже начали настраивать наш сервер, также настроили ssh доступ. Теперь сделаем из него вебсервер, связка будет такая: nginx + mysql + php.
Первое, устанавливаем необходимые пакеты:
При установке у вас спросят пароль для пользователя root в mysql-сервере, советую сразу придумать нормальный пароль, т.к. в дальнейшем для доступа к базе будем использовать phpmyadmin.
Теперь настраиваем хосты, делаем это таким образом, чтобы при создании нового сайта (домена третьего уровня) на сервере не приходилось каждый раз его прописывать:
$ sudo nano /etc/nginx/sites-available/site
и туда записываем:
listen 80;
server_name *.имя_сайта.ru;
access_log /var/log/nginx/site.access.log;
error_log /var/log/nginx/site.error.log;
index index.php index.html;
if ($host = site.com) {
set $h www.site.com;
rewrite ^(.*)$ http://$h$1 permanent;
}
root /home/ваше_имя/www/$host;
# запрещаем вызов всех подозрительных файлов кроме index
location ~* ^/.*(?<!/index).(php|php3|php4|php5|phtml|phps|pl|pm)$ {
deny all;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php {
try_files $fastcgi_script_name =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# запрещаем доступ к файла по расширению
location ~ \.(tpl|xml|log)$ {
deny all;
}
# запрещаем считывание репозитория
location ~ /\.(git|svn|hg|bzr) {
deny all;
}
}
соответственно, все сайты будут расположены в домашней директории пользователя в папке /www. Если нам понадобится домен третьего уровня, то просто создаем в этой директории новую папку, например test.имя_сайта.ru, и все, новый сайт будет доступен по этому адресу — http://test.имя_сайта.ru. Сохраняемся и включаем эту конфигурацию:
Проверяем наш конфиг и если все хорошо, перезагружаем nginx:
$ sudo service nginx restart
Осталось настроить phpmyadmin. Создаем ссылку в нашей директории для сайтов (home/ваше_имя/www):
И прописываем хост для nginx:
$ sudo nano /etc/nginx/sites-available/phpmyadmin
туда записываем:
listen 80;
server_name ваш_ip_сервера;
access_log /var/log/nginx/phpmyadmin.access.log;
error_log /var/log/nginx/phpmyadmin.ru.error.log;
index index.php;
root /home/ваше_имя/www/phpmyadmin;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php {
try_files $fastcgi_script_name =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# запрещаем доступ к файла по расширению
location ~ \.(tpl|xml|log)$ {
deny all;
}
# запрещаем считывание репозитория
location ~ /\.(git|svn|hg|bzr) {
deny all;
}
}
включаем хост, все проверяем и перезапускаем nginx:
$ sudo service nginx configtest
$ sudo service nginx restart
Теперь доступ к phpmyadmin можно получить набрав в браузере http://ip_адрес_сервера.
Просмотров - 489
Комментарий будет размещен на сайте после прохождения модерации.