Установка LAMP на openSUSE Leap 42.1
Введение
LAMP — это набор свободного программного обеспечения, устанавливаемый на операционной системе Linux, который даёт базовую платформу для запуска веб‑сайтов и веб‑приложений на PHP и MariaDB/MySQL (например, WordPress, Joomla, Drupal). В этом руководстве показана установка и базовая настройка LAMP на openSUSE Leap 42.1. Также будет показано, как установить и защитить phpMyAdmin с помощью .htaccess.
Кому это полезно: системным администраторам, девопсам и разработчикам, которым нужно быстро поднять веб‑сервер на openSUSE.
Важно: в примерах используется IP 192.168.1.101. Везде, где встречается этот адрес, замените его на ваш.
Краткие термины
- LAMP — Linux, Apache, MySQL/MariaDB, PHP.
- phpMyAdmin — веб‑интерфейс для управления базами данных MySQL/MariaDB.
- SuSEfirewall2 — утилита настройки файрвола для openSUSE (генерирует iptables‑правила).
Требования
- Сервер с установленным openSUSE Leap 42.1.
- Права root или доступ через sudo.
- Подключение к интернету для установки пакетов.
Пример входа на сервер и перехода в root:
ssh [email protected]
sudo suШаг 1 — Настройка SuSEfirewall2
SuSEfirewall2 формирует правила iptables из файла /etc/sysconfig/SuSEfirewall2. Мы установим SuSEfirewall2, разрешим SSH и HTTP (порт 80), затем перезапустим сервисы.
Установка:
zypper in SuSEfirewall2Откройте конфигурационный файл:
vim /etc/sysconfig/SuSEfirewall2Найдите или добавьте строку, определяющую внешние службы. Пример (строка в файле может отличаться по номеру):
FW_CONFIGURATIONS_EXT="sshd apache2"Перезапустите файрвол и sshd:
/sbin/rcSuSEfirewall2 restart
systemctl restart sshdПроверка внешнего доступа к SSH (замените IP на ваш):
telnet 192.168.1.101 22Important: Если в вашей сети используется firewalld или другой менеджер, убедитесь, что вы управляете только одним файрволом, чтобы избежать конфликтов.
Шаг 2 — Установка и настройка Apache
Apache2 доступен в стандартных репозиториях openSUSE.
Установка:
zypper in apache2Создайте тестовую страницу в корне веб‑документов:
cd /srv/www/htdocs/
echo "This is Apache OpenSUSE Leap 42.1
" > index.htmlДобавьте Apache в автозагрузку и запустите его:
systemctl enable apache2
systemctl start apache2Откройте в браузере http://192.168.1.101/ (замените IP) и проверьте, что отображается тестовая страница.
Совет: лог ошибок Apache — /var/log/apache2/error_log, лог запросов — /var/log/apache2/access_log.
Шаг 3 — Установка и настройка MariaDB
MariaDB — форк MySQL, совместимый по интерфейсу и использующийся как СУБД в LAMP.
Установка MariaDB и клиента:
zypper in mariadb mariadb-clientЗапустите и включите сервис на автозапуск:
systemctl start mysql
systemctl enable mysqlБезопасная начальная настройка (установка пароля root и базовые меры безопасности):
mysql_secure_installationТипичный вход в диалог выглядит так: введите текущий пароль (обычно пустой), затем согласитесь установить новый пароль, удалить анонимных пользователей, запретить удалённый вход root и перезагрузить таблицы привилегий.
Подключение к MariaDB для проверки:
mysql -u root -p
# введите пароль
Пояснение: mysql_secure_installation — интерактивный помощник; отвечайте Y для усиления безопасности в большинстве случаев.
Шаг 4 — Установка и настройка PHP
PHP — серверный язык, широко используемый для веб‑приложений. Мы установим пакет PHP 5 и необходимые модули для работы с MariaDB и phpMyAdmin.
Установка PHP и модулей:
zypper in php5 php5-mysql php5-mcrypt apache2-mod_php5 php5-mbstring php-mcrypt php-gd php-json php-zlibВключите модуль php5 для Apache и перезапустите веб‑сервер:
a2enmod php5
systemctl restart apache2Примечание: a2enmod — утилита для включения модулей Apache; в некоторых версиях openSUSE может потребоваться ручная правка конфигурации.
Проверка работы PHP: создайте phpinfo страницу:
cd /srv/www/htdocs/
echo "" > info.phpОткройте http://192.168.1.101/info.php и убедитесь, что PHP загружен и видны модули, включая MySQL/MariaDB.

Если phpinfo не показывает расширение для MySQL/MariaDB, убедитесь, что пакет php5-mysql установлен и модуль активирован.
Шаг 5 — Установка и защита phpMyAdmin
phpMyAdmin облегчает управление базами данных через веб‑интерфейс. Установим его и защитим доступ через .htaccess.
Установка phpMyAdmin:
zypper in phpMyAdminДля корректной работы phpMyAdmin требуется расширение mbstring. Откройте php.ini для Apache и включите mbstring. В редакторе замените или добавьте строку (в зависимости от версии PHP на вашей системе корректный модуль может называться другим образом):
vim /etc/php5/apache2/php.ini
# найдите и раскомментируйте или добавьте
extension=php_mbstring.so
# либо
extension=mbstring.soСохраните и закройте файл. Перезапустите Apache.
Разрешение .htaccess: откройте файл конфигурации phpMyAdmin для Apache и разрешите переопределения конфигурации через .htaccess.
cd /etc/apache2/conf.d/
vim phpMyAdmin.confИзмените строку:
AllowOverride Noneна
AllowOverride allСохраните и выйдите.
Теперь создайте .htaccess в каталоге phpMyAdmin и настройте базовую HTTP‑аутентификацию:
cd /srv/www/htdocs/phpMyAdmin/
vim .htaccessВставьте:
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpMyAdmin/.htpasswd
Require valid-userОписание директив:
- AuthType — метод аутентификации (Basic — базовый, через заголовок Authorization).
- AuthName — текст подсказки аутентификации, который увидит пользователь.
- AuthUserFile — путь к файлу с учетными записями и зашифрованными паролями.
- Require valid-user — разрешить доступ только пользователям из указанного файла.
Перезапустите Apache:
systemctl restart apache2Создайте файл паролей и добавьте пользователя. Первый пользователь создаётся с опцией -c (создать файл):
htpasswd -c /etc/phpMyAdmin/.htpasswd megumiДля добавления других пользователей используйте команду без -c:
htpasswd /etc/phpMyAdmin/.htpasswd yuki
Теперь при попытке доступа к phpMyAdmin через браузер вы увидите окно базовой HTTP‑аутентификации, и только пользователи из .htpasswd смогут попасть на страницу.
Откройте http://192.168.1.101/phpMyAdmin/ и войдите сначала по .htpasswd, затем по учетным данным MySQL.



Теперь LAMP и phpMyAdmin установлены на openSUSE Leap 42.1.
Проверка работоспособности — чеклист
- [ ] Apache отвечает на HTTP-запросы (http://YOUR_IP/).
- [ ] PHP отображает phpinfo (http://YOUR_IP/info.php).
- MariaDB запущена и вы можете подключиться (mysql -u root -p).
- phpMyAdmin доступен и защищён .htpasswd.
- SuSEfirewall2 пропускает SSH и HTTP.
Типичные проблемы и способы их решения
Apache не запускается
- Проверьте логи: /var/log/apache2/error_log.
- Убедитесь, что порт 80 не занят другим процессом.
PHP модуль не загружен
- Проверьте, установлены ли нужные пакеты (php5, php5-mysql и т. п.).
- Убедитесь, что модуль включён в php.ini и перезапущен Apache.
Ошибка при входе в MariaDB
- Повторно выполните mysql_secure_installation.
- Проверьте, корректно ли задали пароль и используете ли опцию -p при подключении.
phpMyAdmin не защищён .htaccess
- Проверьте AllowOverride all в /etc/apache2/conf.d/phpMyAdmin.conf.
- Убедитесь, что .htaccess находится в правильном каталоге и имеет права чтения для Apache.
Безопасность и hardening — рекомендации
- Используйте сильные пароли для пользователя root MariaDB и для учётных записей .htpasswd.
- Отключите удалённый доступ root в MariaDB (мы делали это через mysql_secure_installation).
- Перенесите phpMyAdmin в нестандартный URL (например, /dbadmin), чтобы снизить риск автосканирования.
- Ограничьте доступ по IP к phpMyAdmin в конфигурации Apache при возможности.
- Используйте HTTPS: создайте сертификат и настройте виртуальный хост для SSL.
- Регулярно обновляйте пакеты: zypper refresh && zypper up.
Пример ограничения доступа по IP в конфигурации Apache (добавьте в конфигурацию phpMyAdmin):
Require ip 192.168.1.0/24
Require ip 203.0.113.5
Альтернативные подходы
- Вместо MariaDB можно установить официальную MySQL (пакеты MySQL работают аналогично, но имейте в виду различия в версиях).
- Для развёртывания окружения используйте контейнеры Docker с официальными образами Apache/PHP/MariaDB.
- Используйте Nginx + PHP‑FPM вместо Apache для лучшей производительности в высоконагруженных средах.
Миграция и обновление — советы
- Перед обновлением системы создайте резервные копии: /etc/apache2, /etc/mysql, /srv/www/htdocs.
- Экспортируйте базы данных через mysqldump:
mysqldump -u root -p --all-databases > all_databases.sql- При переходе на новую версию PHP протестируйте приложения на staging‑среде.
Роли и обязанности — краткие чеклисты
Администратор сервера:
- Установить OS и обновления.
- Настроить SuSEfirewall2.
- Установить и поддерживать Apache, MariaDB, PHP.
Разработчик веб‑приложения:
- Проверить совместимость кода с PHP 5.5.
- Обновлять зависимости и тестировать на staging.
Оператор/DevOps:
- Настроить бэкапы баз данных.
- Автоматизировать обновления и мониторинг.
Быстрый набор команд (Cheat sheet)
- Установка пакетов: zypper in <пакет>
- Перезапуск сервиса: systemctl restart
- Включить в автозагрузку: systemctl enable
- Проверить порты: netstat -tulpen или ss -tulpen
- Создать .htpasswd: htpasswd -c /etc/phpMyAdmin/.htpasswd username
Мини‑методология развертывания (4 шага)
- Подготовка — установить OS и настроить сеть/SSH.
- Платформа — установить Apache и PHP, проверить phpinfo.
- СУБД — установить MariaDB, выполнить mysql_secure_installation.
- Утилиты — установить phpMyAdmin и защитить доступ.
Потенциальные ограничения и когда это не подходит
- Для современных приложений лучше использовать более новые версии PHP (7.x или 8.x). PHP 5.5 устарел.
- Для высоконагруженных сайтов рассмотрите Nginx + PHP‑FPM и кластерную БД.
- Для управления множеством сайтов лучше использовать панели управления (например, ISPConfig, Plesk).
Пример потока развёртывания (Mermaid)
flowchart TD
A[Подготовка ОС] --> B[Установка Apache]
B --> C[Установка PHP]
C --> D[Установка MariaDB]
D --> E[Установка phpMyAdmin]
E --> F[Настройка безопасности]
F --> G[Тестирование и бэкап]Критерии приёмки
- Apache отвечает на HTTP‑запросы.
- PHP выводит phpinfo и загружает расширения для работы с БД.
- MariaDB принимает подключение от root с заданным паролем.
- phpMyAdmin доступен и защищён .htpasswd.
- SuSEfirewall2 настроен и не блокирует SSH/HTTP.
Короткое резюме
Вы развернули полный LAMP‑стек на openSUSE Leap 42.1, включая защиту доступа к phpMyAdmin. Для продакшена дополнительно настройте HTTPS, регулярные бэкапы и мониторинг.
Ресурсы
Глоссарий в одну строку
LAMP — стандартный набор для PHP‑сайтов: Linux, Apache, MySQL/MariaDB, PHP.
Примечание по совместимости
openSUSE Leap 42.1 — устаревшая версия. Для новых проектов рассмотрите более свежие релизы openSUSE или другую поддерживаемую ОС. Обновление PHP также рекомендовано для безопасности и производительности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента