coding

Установка веб-сервера на Debian 8.0 (nginx + mysql + php)

22 декабря 2016 г.

Мы уже начали настраивать наш сервер, также настроили ssh доступ. Теперь сделаем из него вебсервер, связка будет такая: nginx + mysql + php.

Первое, устанавливаем необходимые пакеты:

$ sudo apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd php5-dev nginx mysql-server unzip phpmyadmin

При установке у вас спросят пароль для пользователя root в mysql-сервере, советую сразу придумать нормальный пароль, т.к. в дальнейшем для доступа к базе будем использовать phpmyadmin.

Теперь настраиваем хосты, делаем это таким образом, чтобы при создании нового сайта (домена третьего уровня) на сервере не приходилось каждый раз его прописывать:

$ cd /etc/nginx/sites-available
$ sudo nano /etc/nginx/sites-available/site

и туда записываем:

server {
        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. Сохраняемся и включаем эту конфигурацию:

$ sudo ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/site

Проверяем наш конфиг и если все хорошо, перезагружаем nginx:

$ sudo service nginx configtest
$ sudo service nginx restart

Осталось настроить phpmyadmin. Создаем ссылку в нашей директории для сайтов (home/ваше_имя/www):

$ ln -s /usr/share/phpmyadmin/ /home/ваше_имя/www/phpmyadmin

И прописываем хост для nginx:

$ cd /etc/nginx/sites-available
$ sudo nano /etc/nginx/sites-available/phpmyadmin

туда записываем:

server {
        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 ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin
$ sudo service nginx configtest
$ sudo service nginx restart

Теперь доступ к phpmyadmin можно получить набрав в браузере http://ip_адрес_сервера.

Просмотров - 489

Оставить комментарий

Комментарий будет размещен на сайте после прохождения модерации.

Комментарии

Еще не оставлено ни одного комментария.