Установка nginx mysql php centos

Установка Nginx, MySQL, PHP (LEMP) на CentOS 7

Установка веб-сервера LEMP (NGINX + MySQL + PHP-FPM) на CentOS 7.

Шаг 1. Установка Nginx

Добавляем CentOS 7 Nginx репозиторий.

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

Установка Nginx.

После установки Nginx — запускаем его.

systemctl start nginx.service

Проверить, что веб-сервер запущен можно по адресу http://example.com/
Мы увидим дефолтную страницу Nginx.

Default Nginx Page

После проверки успешного запуска, добавим сервис в автозагрузку при старте системы.

systemctl enable nginx.service

Шаг 2. Установка MySQL (MariaDB)

Теперь, после того как закончена установка веб-сервера, приступаем к установке и настройке сервера баз данных. В данном примере будет использоваться MariaDB, поскольку данный форк зарекомендовал себя с лучшей стороны.

Установка сервера и клиента MariaDB

yum install mariadb-server mariadb

Запуск сервера баз данных.

После того как сервер запущен, приступаем к базовой настройке. Запускаем скрипт настройки простой командой.

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we‘ll need the current
password for the root user. If you’ve just installed MariaDB, and
you haven‘t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on.

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
. Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
. Success!

Normally, root should only be allowed to connect from ‘localhost‘. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
. Success!

By default, MariaDB comes with a database named ‘test‘ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
— Dropping test database.
. Success!
— Removing privileges on test database.
. Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
. Success!

Cleaning up.

All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

После настройки добавим сервис в автозагрузку.

systemctl enable mariadb.service

Шаг 3. Установка и настройка PHP (PHP-FPM)

PHP позволяет отображать динамический контент сайта, а также получать информацию из MySQL базы.

Установка PHP

yum install php php-mysql php-fpm

Прочие компоненты и модули можно установить в зависимости от требований.

Незначительная конфигурация для повышения безопасности

Открываем конфигурационный файл PHP

Нас интересует параметр cgi.fix_pathinfo . По умолчанию он закомментирован и установлен в значение 1 .
Это значение небезопасно, поскольку любой пользователь будет иметь возможность заливать файлы на сервер (например аватары). Создав особенное изображение, которое будет одновременно проходить валидацию размеров GD и исполняться php интерпретатором, будет иметь права на исполнение произвольного кода на сервере с правами php процесса.

Раскомментируем строчку и изменим значение на 0 .

Также это можно сделать через настройки Nginx

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

Теперь доступ для несуществующих файлов с разрешением *.php закрыт.
Cама реализация cgi.fix_pathinfo достаточно тормознутая — на каждый запрос проверяется каждый компонент пути — не скрипт ли это.
Поэтому стоит выключать также и из соображений производительности.

Также не забываем изменить временную зону, для этого раскомментируем строчку ;date.timezone = и впишем необходимую временную зону.

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Moscow

Далее, откроем конфигурационный файл PHP-FPM

Находим строчку начинающуюся с listen и заменяем её полностью новым значением.

listen = /var/run/php-fpm/php-fpm.sock

Запускаем PHP-FPM

Добавляем PHP-FPM в автозагрузку

systemctl enable php-fpm.service

Шаг 4. Конфигурация NGINX

После того, как мы завершили установку основных компонентов для успешной работы веб-сервера, приступим к его настройке.

NGINX как и Apache поддерживает работу виртуальных хостов. Создавать файлы с хостами можно в директории /etc/nginx/conf.d/ , но мы будем использовать другую схему.

Создаем директории под виртальные хосты

mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled

В файл конфигурации /etc/nginx/nginx.conf добавляем в конец строчку:

## Load virtual host conf files. ##
include /etc/nginx/sites-enabled/*;

Вероятно уже стало понятно, что в директории sites-available будут храниться файлы вирутальных хостов, а в директории sites-enabled будут симлинки на них, которые будут активны. Таким образом можно всегда просто включить/отключить один из хостов.

Создаем виртуальный хост

Создаем директории под содержимое сайта, а также под логи для каждого из хостов.

mkdir -p /srv/www/example.com/public_html
mkdir /srv/www/example.com/logs
chown -R apache:apache /srv/www/example.com

Создаем файл example.com в директории /etc/nginx/sites-available .

server {
server_name example.com;
access_log /srv/www/example.com/logs/access.log;
error_log /srv/www/example.com/logs/error.log;
root /srv/www/example.com/public_html;

location / {
try_files $uri $uri/ /index.html;
}

location ~ /\.ht {
deny all;
}

location ~ /\. {
deny all;
access_log off;
log_not_found off;
}

location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}

location ~* .php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
# fastcgi_pass 127.0.0.1:9000; ## Если работаем не по сокетам
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/example.com/public_html$fastcgi_script_name;
}
}

Подключаем наш виртуальный хост

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/example.com
systemctl restart nginx

Проверяем работу PHP

Создаем файл в директории сайта /srv/www/example.com/public_html/info.php

Открываем файл в браузере

Если все в порядке, то можем наблюдать приблизительно следующее.

PHP INFO

Не забываем удалить файл info.php .
На этом установка LEMP в CentOS 7 завершена.

Источник

Как установить LEMP (Linux+Nginx+MySQL+PHP) на CentOS 7

Хостинг Linux от 9 рублей в месяц VPS Linux всего за 89 рублей в месяц

Эта инструкция предназначена для базовой установки и настройки стека LEMP (Linux+Nginx+MySQL+PHP) на виртуальный сервер с операционной системой CentOS 7.

Установка Nginx

2) Для установки Nginx нужно добавить репозиторий:

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

установка nginx на vps с centos

3) После добавления репозитория, устанавливаем сам Nginx:

добавление репозитория и установка nginx

4) Для проверки работы Nginx нам нужно открыть порты 80 и 443, для этого последовательно выполняем команды:

firewall-cmd —permanent —zone=public —add-service=http

firewall-cmd —permanent —zone=public —add-service=https

открытие портов для nginx

sudo systemctl start nginx.service

6) И добавляем Nginx в автоматическую загрузку при перезапуске сервера:

sudo systemctl enable nginx.service

7) Теперь можно проверить работу Nginx. Для этого введите ip-адрес виртуального сервера в браузере. Вам должна открыться стандартная страница приветствия. Если она открывается, значит Nginx установлен.

проверка работы nginx на vps

Установка MySQL (MariaDB)

8) Мы будем устанавливать не MySQL, а аналог MariaDB, так как он представляет ряд преимуществ для администраторов. Вводите команду:

sudo yum install mariadb-server mariadb -y

sudo systemctl start mariadb

10) Далее нужно настроить безопасность баз данных. При первом заходе будет запрошен пароль, если вы его не установили, то он пустой, нужно нажать просто Enter:

В процессе будут заданы несколько вопросов, после согласия с ними клавишу “y”.

установка базы длянных на vps centos

11) В конце добавляем для MariaDB автоматический запуск:

sudo systemctl enable mariadb.service

Больше никаких настроек для баз данных не нужно.

Установка и настройка PHP

12) Установим PHP и необходимые компоненты для работы с Nginx и MariaDB:

sudo yum install php php-mysql php-fpm -y

13) Нужна небольшая настройка PHP. Открывайте файл:

В самом конце дописывайте данную строку:

Сохраняйте файл комбинацией клавиш CTRL+X.

настройка конфигурационных файлов на виртуальном сервере

14) Далее редактируйте еще один файл:

sudo nano /etc/php-fpm.d/www.conf

Нужно найти строку “listen =” и изменить ее значение. Должно быть вот так:

listen = /var/run/php-fpm/php-fpm.sock

Сохраняем файл комбинацией клавиш CTRL+X.

продолжаем настройку конфигурации nginx

15) Всё. Осталось запустить PHP:

sudo systemctl start php-fpm

16) И включить автоматическую загрузку при старте виртуального сервера:

sudo systemctl enable php-fpm.service

Установка и настройка Nginx

17) Нужно настроить Nginx на работу с PHP. Открывайте файл:

sudo nano /etc/nginx/conf.d/default.conf

Удаляйте все данные из него и вписывайте данный код, в третьей строке нужно указать домен или ip-адрес виртуального сервера и сохраняем комбинацией клавиш CTRL+X::

server <
listen 80;
server_name домен_или_IP_сервера;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / try_files $uri $uri/ =404;
> error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html root /usr/share/nginx/html;
>
location ~ \.php$ try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
>

>

доавление параметров для работы nginx на vps

18) Перезапускаем Nginx, чтобы все изменения вступили в силу:

sudo systemctl restart nginx

19) Далее нужно протестировать все настройки. Создаем файл для проверки работы:

sudo nano /usr/share/nginx/html/info.php

20) Вписываем в него строку и сохраняем комбинацией клавиш CTRL+X:

создание тестовой страницы

21) Заходите по адресу в браузере — http://IP_адрес_сервера/info.php

Если все настроено правильно, будет показана данная страница:

результат проверки работы nginx на виртуальном сервере

22) Важно удалить файл, так как он доступен каждому неавторизованному посетителя. Из него можно узнать параметры настройки сервера:

sudo rm /usr/share/nginx/html/info.php

Все. Базовая настройка стека LEMP на виртуальном сервере с операционной системой CentOS 7 выполнена.

Источник

Читайте также:  Fcm push notification php
Оцените статью