Поиск по сайту:

Как установить Nginx, PHP и MySQL (стек LEMP) на OpenSUSE Leap 42.1


На этой странице

  1. Шаг 1. Установите и настройте SuSEfirewall2
  2. Шаг 2. Установите и настройте Nginx
  3. Шаг 3. Установите и настройте MariaDB
  4. Шаг 4. Установка и настройка PHP-FPM
  5. Шаг 5. Настройка виртуального хоста Nginx
  6. Шаг 6. Установите и настройте phpMyAdmin
  7. Справочник

LEMP или Linux, Engine-x, MySQL и PHP — это набор программного обеспечения, установленного в операционной системе Linux для запуска и запуска ваших веб-приложений на основе PHP на быстром веб-сервере Nginx. Стек LEMP обеспечивает быструю и надежную основу для размещения веб-приложений. LEMP — это набор программного обеспечения с открытым исходным кодом, который имеет полный набор документации, поэтому вы можете легко узнать больше о различных приложениях и о том, как они сочетаются друг с другом.

В этом руководстве я покажу вам, как установить Nginx, MariaDB и PHP-FPM на openSUSE jump 42.1. Затем я настрою брандмауэр OpenSUSE с помощью SuSEfirewall2, чтобы разрешить доступ к веб-серверу Nginx, и покажу вам, как добавить новую конфигурацию виртуального хоста на веб-сервер Nginx.

Наконец, мы установим phpMyAdmin как простой в использовании инструмент администрирования базы данных и защитим его, изменив веб-каталог и включив HTTP-аутентификацию для каталога phpMyAdmin.

Предпосылка

  • Переход OpenSUSE 42.1.
  • Привилегии root.
  • Знакомство с командой zypper.

Шаг 1. Установите и настройте SuSEfirewall2.

SuSEfirewall2 — это скрипт, который генерирует правила iptables на основе файла конфигурации \/etc/sysconfig/SuSEfirewall2\. Мы установим и настроим его для предотвращения сетевых атак на порт сервера.

Установите SuSEfirewall2 с zypper:

zypper in SuSEfirewall2

Когда установка будет завершена, нам нужно открыть несколько портов для веб-приложений и SSH. Мы откроем порт 22 для службы ssh и порты 80 и 443 для http и https. Перейдите в каталог \/etc/sysconfig/\ и отредактируйте файл \SuSEfirewall2\:

cd /etc/sysconfig/
vim SuSEfirewall2

В строке 253 добавьте номера портов сервисов через пробел:

FW_SERVICES_EXT_TCP="22 80 443"

Сохраните файл и выйдите.

Перезапустите SuSEfirewall2 и службу SSH, затем проверьте конфигурацию порта, подключившись к серверу с помощью telnet.

Перезапустите SuSEfirewall2 и службу SSH:

/sbin/rcSuSEfirewall2 restart
systemctl restart sshd

Тестирование ssh-соединения с telnet на порту 22:

telnet 192.168.1.101 22

Шаг 2 — Установите и настройте Nginx

Nginx или engine x — это высокопроизводительный HTTP- и прокси-сервер с низким потреблением памяти. Он используется крупными веб-сайтами, такими как Netflix, Pinterest, CloudFlare, Github и т. д. Nginx имеет простой для изучения синтаксис конфигурации и может также выступать в качестве балансировщика нагрузки с проверками работоспособности и обратным прокси-сервером с функциями кэширования.

На этом этапе мы установим nginx и добавим его для запуска во время загрузки. Установите его с помощью команды \zypper in\:

zypper in nginx

Запустите nginx и включите его во время загрузки:

systemctl start nginx
systemctl enable nginx

Теперь Nginx запущен, но если вы попытаетесь получить к нему доступ через веб-браузер, вы получите ошибку 403 запрещен. Эта ошибка возникает из-за отсутствия стандартного индексного документа в корневой веб-папке. Чтобы решить эту проблему, создайте новый индекс html в корневой веб-директории \/srv/www/htdocs\. Перейдите в каталог и создайте файл index.html:

cd /srv/www/htdocs/
echo "<h1>This is Nginx OpenSUSE Leap 42.1</h1>" > index.html

Откройте веб-браузер и введите IP-адрес вашего сервера, и вы получите индексную страницу:

Шаг 3 — Установите и настройте MariaDB

MariaDB — это СУБД с открытым исходным кодом (система управления реляционными базами данных), созданная на базе MySQL под лицензией GNU GPL. В этом руководстве мы установим MariaDB и настроим пароль root для оболочки MariaDB.

Установите MariaDB с помощью команды zypper:

zypper in mariadb mariadb-client

Запустите MariaDB/MySQL и добавьте его в автозагрузку с помощью команды systemctl ниже:

systemctl start mysql
systemctl enable mysql

Затем настройте пароль администратора для MariaDBb/MySQL с помощью команды mysqladmin. Другой вариант, который вы можете использовать для этой цели, — это mysql_secure_installation. На этом этапе я буду использовать mysqladmin:

/usr/bin/mysqladmin -u root password 'aqwe123'

Примечание:

\aqwe123\ - новый пароль для MariaDB/MySQL.

Затем войдите в оболочку mysql с пользователем root и паролем aqwe123:

mysql -u root -p
TYPE PASSWORD 'aqwe123'

Теперь MariaDB/MySQL установлена и настроена с нашим новым паролем.

Шаг 4 — Установите и настройте PHP-FPM

PHP-FPM или FastCGI Process Manager — это альтернатива старому PHP FastCGI с дополнительными функциями и улучшениями скорости. PHP-FPM хорошо подходит для небольших и крупных сайтов, основанных на языке программирования PHP.

На этом этапе мы установим php5-fpm с некоторыми дополнительными расширениями, необходимыми для phpMyAdmin. Установите php5-fom и расширения с помощью zypper:

zypper in php5 php5-mysql php5-fpm php5-gd php5-mbstring

После завершения установки перейдите в каталог php5-fpm и скопируйте файл конфигурации:

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Отредактируйте конфигурацию с помощью команды vim:

vim php-fpm.conf

Раскомментируйте строку 32, чтобы включить журнал php-fpm, префикс по умолчанию — /var, и если у вас есть какие-либо проблемы с php5-fpm, вы можете проверить файл журнала \/var/log/php-fpm.log\.

error_log = log/php-fpm.log

В строке 148 мы настроим владельца процесса nginx на пользователя Nginx. Измените пользователя и группу процесса на nginx:

user = nginx
group = nginx

Строка 159: настройте php-fpm для работы с файлом сокета, а не с портом. Измените эту строку следующим образом:

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

И в строке 170 измените разрешения для сокета unix на пользователя и группу nginx с режимом 0660.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Сохраните файл и выйдите из редактора.

Затем перейдите в каталог PHP cli и отредактируйте файл php.ini с помощью vim:

cd /etc/php5/cli/
vim php.ini

Из соображений безопасности измените значение cgi.fix_pathinfo на ноль. строка 178:

cgi.fix_pathinfo=0

Сохранить и выйти.

Скопируйте php.ini в каталог conf.d:

cp php.ini /etc/php5/conf.d/

На этом этапе конфигурация PHP-FPM выполнена, но нам еще нужно настроить Nginx. Нам нужно настроить Nginx для работы с php-fpm.

Перейдите в каталог конфигурации nginx и сделайте резервную копию файла конфигурации с помощью команды cp:

cd /etc/nginx/
cp nginx.conf nginx.conf.backup

Отредактируйте nginx.conf с помощью vim:

vim nginx.conf

Добавьте index.php в строку 48:

index index.php index.html index.htm;

Добавьте новый раздел конфигурации php в строке 68, это конфигурация для обработки запросов файлов .php.

       location ~ \.php$ {
                root /srv/www/htdocs;
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

Сохраните файл и выйдите.

Затем проверьте синтаксис файла конфигурации nginx, чтобы убедиться в отсутствии ошибок. Затем запустите демон php-fpm и перезапустите Nginx:

nginx -t
systemctl start php-fpm
systemctl restart nginx

Чтобы убедиться, что php-fpm и nginx работают правильно, мы добавим новый тестовый файл php. Перейдите в каталог DocumentRoot и создайте файл phpinfo с именем info.php:

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

Откройте веб-браузер и введите IP-адрес вашего сервера:

Nginx и php-fpm работают.

Шаг 5. Настройте виртуальный хост Nginx.

На этом этапе я покажу вам, как добавить конфигурацию виртуального хоста для веб-сайта. Мы настроим новый домен \www.example.com\ и каталог webroot в \/srv/www/example/\. Пожалуйста, замените example и example.com своим собственным доменным именем.

GNginx nginx и создайте новый каталог для конфигурации виртуального хоста.

cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/

Затем создайте новый файл example.conf для виртуального хоста с доменным именем \example.com\.

vim example.conf

вставьте конфигурацию виртуального хоста ниже:

server {
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

server {
    listen 80;

    root /srv/www/example;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

          location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }


}

Сохраните файл и выйдите.

Теперь создайте каталог для сайта \example.com\ в каталоге /srv/www/ и создайте новый индексный файл.

mkdir -p /srv/www/example/
cd /srv/www/example/
echo "<h1>This is www.example.com site.</h1>" > index.html
echo "<?php phpinfo(); ?>" > info.php

Теперь откройте веб-браузер и посетите домен:

пример.com

Вы будете перенаправлены на домен www, и теперь получите доступ к файлу php:

Шаг 6 – Установите и настройте phpMyAdmin

PhpMyAdmin — это приложение на основе PHP для управления базами данных MySQL или MariaDB из веб-браузера. На этом шаге я настрою phpMyAdmin для работы под управлением php-fpm, а затем сделаю PHPMyAdmin безопасным, ограничив доступ к странице входа в phpMyAdmin.

Установите phpMyAdmin с помощью команды zypper:

zypper in phpMyAdmin

Команда установит все пакеты, необходимые phpMyAdmin, в том числе apache2-utils, необходимые для создания файла паролей.

Теперь у нас в системе установлен phpMyAdmin. Далее мы создадим новый файл htpasswd с помощью команды htpasswd.

создать файл паролей htpasswd:

htpasswd -c /etc/nginx/htpasswd megumi
TYPE YOUR PASSWORD for user megumi

Затем нам нужно настроить Nginx для использования базовой HTTP-аутентификации для каталога phpmyadmin. Мы ограничим доступ к странице входа в phpMyAdmin с помощью auth_basic, и только пользователи, указанные в файле \htpasswd\, смогут войти в phpMyAdmin.

Перейдите в каталог конфигурации Nginx и отредактируйте файл nginx.conf:

cd /etc/nginx/
vim nginx.conf

Определите корневой веб-каталог внутри раздела сервера, добавив новую строку под строкой 40 (имя_сервера):

        server_name  localhost;
        root /srv/www/htdocs;       #newline config

Затем добавьте конфигурацию phpMyAdmin для nginx в строке 60:

    location ~ ^/phpMyAdmin/.*\.php$ {
        auth_basic "Restricted Access";
        auth_basic_user_file  /etc/nginx/htpasswd;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include   fastcgi_params;
    }

Сохраните файл и выйдите из редактора.

Проверьте конфигурацию nginx и перезапустите nginx:

nginx -t
systemctl restart nginx

Затем откройте веб-браузер и перейдите по URL-адресу phpMyAdmin, вам будет предложено ввести имя пользователя и пароль для страницы входа.

Затем войдите в систему, используя свое имя пользователя и пароль MySQL.

phpMyAdmin был успешно установлен, и только пользователь в htpasswd может войти в систему.

Ссылка