В данном руководстве мы рассмотрим, как установить стек LEMP (Nginx, MariaDB и PHP) на OpenSUSE Leap 42.1. Вы заметите, что процесс установки отличается от аналогичного на Debian, Fedora или CentOS. В частности, необходимо настроить брандмауэр SuSE, чтобы пользователи из Интернета могли получить доступ к порту 80.
Содержание статьи
Настройка веб-сервера Nginx
Nginx (или «engine x») — это HTTP-сервер и прокси-сервер для IMAP/POP3, созданный Игорем Сысоевым. Этот сервер уже долгое время используется на многих популярных и высоконагруженных сайтах в России.
Введите следующую команду для установки Nginx на OpenSUSE Leap 42.1.
sudo zypper install nginx
После этого запустите Nginx и настройте его на автоматический старт при загрузке операционной системы.
sudo systemctl start nginx sudo systemctl enable nginx
Создайте файл index. html в основном каталоге веб-сервера, расположенном по адресу /srv/www/htdocs.
sudo nano /srv/www/htdocs/index.html
Скопируйте приведённый ниже HTML-код и вставьте его в данный файл.
Сохраните файл и закройте его. Затем введите IP-адрес вашего компьютера с установленной OpenSUSE Leap 42.1 в адресной строке веб-браузера. Если это ваш локальный компьютер, то вам будет показан следующий экран.

При установке Nginx на удаленном сервере необходимо настроить брандмауэр SuSE для обеспечения публичного доступа к порту 80, так как по умолчанию он позволяет только локальные соединения. Для этого откройте конфигурационный файл брандмауэра.
sudo nano /etc/sysconfig/SuSEfirewall2
Найдите строку, которая идет следующей. (Эта строка 253-я.)
FW_SERVICES_EXT_TCP=""
Вставьте 80 в кавычки.
FW_SERVICES_EXT_TCP="80"
FW — это аббревиатура от термина брандмауэр (firewall), а EXT указывает на внешнюю область (Интернет). Эта команда подразумевает, что брандмауэр предоставляет доступ внешней области к TCP порту 80, где функционирует Nginx. После этого сохраните изменения и закройте файл, затем перезапустите брандмауэр SuSE.
sudo systemctl restart SuSEfirewall2
Теперь у вас должна быть возможность подключиться к вашему удаленному веб-серверу.
Конфигурация стандартного серверного блока
Блок сервера по умолчанию в файле /etc/nginx/nginx.conf вполне подходит для статического HTML-сайта. Тем не менее, поскольку мы планируем установить PHP, потребуется внести изменения в настройки этого блока.
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host. access.log main; location / { root /srv/www/htdocs/; index index.php index. html index. htm; } #error_page 404 /404.html; # перенаправить страницы ошибок сервера на статическую страницу /50x. html # error_page 500 502 503 504 /50x. html; location = /50x. html { root /srv/www/htdocs/; } # проксировать PHP-скрипты на Apache, слушающий на 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # передать PHP-скрипты на сервер FastCGI, слушающий на 127.0.0.1:9000 # location ~ \.php$ { корень /srv/www/htdocs/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name; включить параметры fastcgi; }
Вам нужно лишь раскомментировать раздел location, связанный с PHP, и заменить /scripts на $document_root. После этого сохраните изменения и закройте файл. Далее проведите тестирование конфигурации Nginx.
sudo nginx - t
nginx: файл конфигурации /etc/nginx/nginx.conf имеет корректный синтаксис nginx: тест файла конфигурации /etc/nginx/nginx.conf успешен
После успешного завершения тестирования перезагрузите Nginx.
sudo systemctl reload nginx
Инсталляция MariaDB
MariaDB представляет собой совместимую замену MySQL Database Server и сохраняет совместимость с предыдущими версиями. Она включает все основные движки хранения с открытым исходным кодом, среди которых находится и движок хранения Maria.
Для установки MariaDB используйте следующую команду:
sudo zypper install mariadb mariadb-client
После этого активируйте службу MariaDB и настройте её автоматический запуск при старте системы.
sudo systemctl start mysql sudo systemctl enable mysql
Теперь выполните скрипт mysql_secure_installation для установки пароля пользователя root MariaDB, удаления анонимных пользователей, отключения удаленного доступа для root и удаления тестовой базы данных.
sudo mysql_secure_installation

Инсталлируйте PHP5
PHP — это серверный скриптовый язык, интегрированный в HTML и совместимый с различными платформами. Для установки PHP5 на OpenSUSE Leap выполните следующую команду.
sudo zypper install php5-fpm
Затем измените имя файла /etc/php5/fpm/php-fpm.conf.default на /etc/php5/fpm/php-fpm.conf.
sudo mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf
Теперь необходимо внести изменения в файл конфигурации php-fpm.
sudo nano /etc/php5/fpm/php-fpm.conf
Замените значения пользователя и группы с nobody на nginx.
user = nginx group = nginx
Также обнаружьте следующую строку в данном файле.
;error_log = log/php-fpm.log
и замените её на следующую:
error_log = /var/log/php-fpm.log
Сохраните файл и закройте его. Затем перенесите файл php. ini в папку /etc/php5/fpm/.
sudo cp /etc/php5/cli/php.ini /etc/php5/fpm/
После этого внесите изменения в этот файл.
sudo nano /etc/php5/fpm/php.ini
Пожалуйста, найдите следующую строку:
;cgi.fix_pathinfo=1
и замените её на следующую:
cgi.fix_pathinfo=0
Сохраните файл и закройте его. Затем запустите с

Вы успешно настроили стек LEMP на OpenSUSE Leap 42.1. Рекомендуем удалить файл test.php с вашего сервера для повышения безопасности, чтобы предотвратить доступ к нему со стороны посторонних.

