5 заметок с тегом

nginx

Установка и настройка LEMP (nginx,mysql,php-fpm)

23 мая, 15:03

Минимальная настройка LEMP в Debian/Ubuntu


Первое, это обновим индекс пакетов.


sudo apt-get update


Установим nginx


sudo apt-get install nginx


Теперь проверим, что nginx доступен по URL, откроем в браузере наш IP адрес.
Приветствие от NGINX.


Далее, установим MySQL


sudo apt-get install mysql-server


Проверим работу и доступ к MySQL


mysql -u root -p


Установим PHP-FPM и модуль для работы с MySQL


sudo apt-get install php-fpm php-mysql


На текущий момент установилась версия 7.2


Отредактируем конфиг PHP-FPM


sudo nano /etc/php/7.2/fpm/php.ini


Устанавливаем cgi.fix_pathinfo в 0 (устранение уязвимости исполнения файлов)


cgi.fix_pathinfo=0


Перезапустим обработчик PHP-FPM


sudo service php7.2-fpm restart


Отредактируем default config файл nginx


sudo nano /etc/nginx/sites-available/default
// Редактируем:
        index index.php index.html index.htm;

	location ~ \.php$ {
		fastcgi_pass unix:/run/php/php7.2-fpm.sock;
		include fastcgi_params;
		include snippets/fastcgi-php.conf;
	}
	location ~ /\.ht {
		deny all;
	}
// Тестируем на ошибки
sudo nginx -t
// Перезапуск
sudo service nginx restart


Готово.


Финальный тест.
Создадим файл для проверки PHP в корневой директории сайта


sudo nano /var/www/html/index.php


Установить дополнительные модули
К примеру, mbstring, xml и тд:


apt-get install php7.2-mbstring php7.2-xml php7.2-curl php7.2-zip php7.2-gd


Настроем ЧПУ


sudo nano /etc/nginx/sites-available/default

	location / {
		try_files $uri $uri/ /index.php?q=$uri&$args;
	}


Оф. руководство Nginx + PHP-FPM + MySQL для Ubuntu


http://help.ubuntu.ru/wiki/nginx-phpfpm
http://help.ubuntu.ru/wiki/mysql

Отключение функций PHP

4 мая, 11:29

Настройка PHP.ini

Отключить функцию отправки email — mail()

disable_functions = mail


закрыть доступ ко всем не существующим файлам *.php

cgi.fix_pathinfo=0

или в nginx.conf

location ~ \.php$ {
        try_files $fastcgi_script_name =404;
	fastcgi_index			index.php;
	fastcgi_param			script_FILENAME /scripts$fastcgi_script_name;
	include				fastcgi_params;
}


Закрыть отправку писем в nginx.conf, данные о попытках отправить сохраняются в лог

// на попытку отправить будет возвращаться "FALSE"
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /bin/false";
// или
// на попытку отправить будет возвращаться "FALSE"
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /bin/true";


Корректная отправка писем настройка в nginx.conf

no@mail.ru — вместо этого указать ваш Email

fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f no@mail.ru";
Linux   mail   nginx   PHP   php.ini   sendmail_path

Redirect http to https

26 октября 2016, 10:54

Создаем redirect с http на https на сервере nginx.
Переходим в нужный файл конфигурации к примеру nginx.conf путь: /etc/nginx/ и открываем на редактирование

server {
...
listen 80;	
Вставить строчку:
return 301 https://$host:443$request_uri;
}



Сохраняем изменения и делаем перезапуск nginx

nginx -s reload



Создаем redirect с http на https на сервере apache.
Добавляем правило в файл .htaccess:

RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]



или вот такое правило:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]



Готово. При попытке зайти на ваш сайт по http будет автоматически открываться сайт с https.

.htaccess   Apache   https   nginx   Redirect

Обновление NGINX до последней версии Debian

6 мая 2016, 14:51

Обновляем NGINX до последней версии на сервере с Debian.
Всё просто, но есть нюансы.
Итак, приступим.


Скачать и установить сертификат

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key


Открываем репозиторий

sudo nano /etc/apt/sources.list


Дописать, если нет, следующие строки
Проверьте пакеты для вашей системы на оф сайте: nginx.org/ru/linux_packages.html

deb http://nginx.org/packages/debian/ wheezy nginx
deb-src http://nginx.org/packages/debian/ wheezy nginx


Сохраняем и обновляем

sudo apt-get update
sudo apt-get dist-upgrade


И если у нас уже установлен Nginx получаем ошибку

При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/nginx_1.10.0-1~wheezy_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)


Перед обновлением, сначала нужно удалить старую версию nginx.

Комментируем строки в репозитории

sudo nano /etc/apt/sources.list

# deb http://nginx.org/packages/debian/ wheezy nginx
# deb-src http://nginx.org/packages/debian/ wheezy nginx


Сохраняем и обновляем

sudo apt-get update


Проверяем, что установлено в системе nginx

dpkg-query -W --showformat='${Package}\n' | grep nginx

Результат примерно следующий:
nginx
nginx-common
nginx-full


Удаляем

sudo apt-get remove nginx nginx-common nginx-full


Теперь снова идем /etc/apt/sources.list и уберем # где мы закомментировали, сохраняем и обновляем.

sudo apt-get update
sudo apt-get install nginx


Вот и всё.

Linux команды для сервера

9 ноября 2015, 11:49

Команды управления для Nginx, MySQL на Debian

systemctl status php5-fpm.service
systemctl status nginx.service
systemctl status mysql.service

/etc/init.d/php5-fpm start
/etc/init.d/php5-fpm stop

/etc/init.d/mysql start
/etc/init.d/mysql stop

/etc/init.d/nginx start
/etc/init.d/nginx stop

nginx -s reload

Команды управления для Apache на CentOS

/etc/init.d/httpd start - запуск
/etc/init.d/httpd stop - стоп
/etc/init.d/httpd status - состояние
/etc/init.d/httpd restart - перезапуск

Команды управления для MySQL

/etc/init.d/mysqld start - запуск
/etc/init.d/mysqld stop - стоп
/etc/init.d/mysqld status - состояние
/etc/init.d/mysqld restart - перезапуск
Apache   CentOS   Debian   Linux   MySQL   nginx