PHP, Apache · 4 min read · Jan 01, 2026
Использование PHP5-FPM с Apache2 на OpenSUSE 12.1
Использование PHP5-FPM с Apache2 на OpenSUSE 12.1
Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter
Это руководство показывает, как установить веб-сервер Apache2 на сервере OpenSUSE 12.1 с поддержкой PHP5 (через PHP-FPM) и MySQL. PHP-FPM (FastCGI Process Manager) — это альтернативная реализация PHP FastCGI с дополнительными функциями, полезными для сайтов любого размера, особенно для более загруженных сайтов.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
В этом руководстве я использую имя хоста server1.example.com с IP-адресом 192.168.0.100. Эти настройки могут отличаться для вас, поэтому вам нужно заменить их в соответствующих местах.
2 Включение дополнительных репозиториев
Нам нужно установить mod_fastcgi позже, который доступен в репозитории, который по умолчанию не включен. Мы можем включить его следующим образом:
zypper --gpg-auto-import-keys addrepo --name "Модули третьих сторон для сервера Apache HTTP. (Apache_openSUSE_12.1)" http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_12.1/ apache-third-party-12.13 Установка MySQL 5
Чтобы установить MySQL, мы делаем это:
yast2 -i mysql mysql-client mysql-community-serverЗатем мы создаем системные ссылки для автозапуска MySQL (чтобы MySQL запускался автоматически при загрузке системы) и запускаем сервер MySQL:
systemctl enable mysql.service
systemctl start mysql.serviceЧтобы обеспечить безопасность установки MySQL, выполните:
mysql_secure_installationТеперь вам будет задано несколько вопросов:
server1:~ # mysql_secure_installation
ПРИМЕЧАНИЕ: РЕКОМЕНДУЕТСЯ ЗАПУСКАТЬ ВСЕ ЧАСТИ ЭТОГО СКРИПТА ДЛЯ ВСЕХ MySQL
СЕРВЕРОВ В ПРОИЗВОДСТВЕ! Пожалуйста, внимательно прочитайте каждый шаг!
Чтобы войти в MySQL для его защиты, нам нужен текущий
пароль для пользователя root. Если вы только что установили MySQL, и
вы еще не установили пароль root, пароль будет пустым,
поэтому вам просто нужно нажать Enter здесь.
Введите текущий пароль для root (нажмите Enter для отсутствия): <– ENTER
Хорошо, пароль успешно использован, продолжаем…
Установка пароля root гарантирует, что никто не сможет
войти в пользователя root MySQL без надлежащей авторизации.
Установить пароль root? [Y/n] <– Y
Новый пароль: <– введите желаемый пароль root для MySQL
Повторите новый пароль: <– подтвердите этот пароль
Пароль успешно обновлен!
Перезагрузка таблиц привилегий..
… Успех!
По умолчанию установка MySQL имеет анонимного пользователя,
что позволяет любому войти в MySQL, не имея
учетной записи пользователя. Это предназначено только
для тестирования и для того, чтобы установка
проходила немного легче. Вы должны удалить их
перед переходом в производственную среду.
Удалить анонимных пользователей? [Y/n] <– Y
… Успех!
Обычно root должен иметь возможность подключаться
только с ‘localhost’. Это гарантирует, что
кто-то не сможет угадать пароль root из сети.
Запретить удаленный вход root? [Y/n] <– Y
… Успех!
По умолчанию MySQL поставляется с базой данных
с именем ‘test’, к которой может получить доступ
любой. Это также предназначено только для тестирования
и должно быть удалено перед переходом в
производственную среду.
Удалить тестовую базу данных и доступ к ней? [Y/n] <– Y
- Удаление тестовой базы данных…
… Успех! - Удаление привилегий на тестовую базу данных…
… Успех!
Перезагрузка таблиц привилегий обеспечит, что
все изменения, сделанные до сих пор,
вступят в силу немедленно.
Перезагрузить таблицы привилегий сейчас? [Y/n] <– Y
… Успех!
Очистка…
Все готово! Если вы выполнили все
вышеуказанные шаги, ваша установка MySQL
должна быть теперь защищена.
Спасибо за использование MySQL!
server1:~ #
Теперь ваша настройка MySQL должна быть защищена.
4 Установка Apache2
Apache2 доступен как пакет OpenSUSE, поэтому мы можем установить его следующим образом:
yast2 -i apache2Теперь настройте вашу систему для запуска Apache при загрузке…
systemctl enable apache2.service… и запустите Apache:
systemctl start apache2.serviceТеперь направьте ваш браузер на http://192.168.0.100, и вы должны увидеть страницу-заглушку Apache2 (не беспокойтесь о 403 ошибке, это происходит потому, что в корневом каталоге документа нет индексного файла (например, index.html)):

Корневой каталог документа по умолчанию для Apache на OpenSUSE — это /srv/www/htdocs/, а файл конфигурации — /etc/apache2/httpd.conf. Дополнительные конфигурации хранятся в каталоге /etc/apache2/conf.d/.
5 Установка PHP5
Мы можем заставить PHP5 работать в Apache2 через PHP-FPM и модуль mod_fastcgi Apache, который мы устанавливаем следующим образом:
yast -i apache2-mod_fastcgi php5-fpmПеред тем как запустить PHP-FPM, переименуйте /etc/php5/fpm/php-fpm.conf.default в /etc/php5/fpm/php-fpm.conf:
mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.confИзмените разрешения каталога сессий PHP:
chmod 1733 /var/lib/php5Затем откройте /etc/php5/fpm/php-fpm.conf…
vi /etc/php5/fpm/php-fpm.conf… и измените error_log на /var/log/php-fpm.log и раскомментируйте pm.min_spare_servers и pm.max_spare_servers:
| [...] error_log = /var/log/php-fpm.log [...] pm.min_spare_servers = 5 [...] pm.max_spare_servers = 35 [...] |
Затем создайте системные ссылки для автозапуска php-fpm и запустите его:
systemctl enable php-fpm.service
systemctl start php-fpm.servicePHP-FPM — это демон, который запускает сервер FastCGI на порту 9000, как вы можете видеть в выводе
netstat -tapnserver1:~ # netstat -tapn
Активные интернет-соединения (серверы и установленные)
Протокол Получено Отправлено Локальный адрес Удаленный адрес Состояние PID/Имя программы
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2329/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1204/sshd
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2511/php-fpm.conf)
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2059/mysqld
tcp 0 0 192.168.0.100:22 192.168.0.199:1632 ESTABLISHED 1284/0
tcp 0 0 :::22 :::* LISTEN 1204/sshd
server1:~ #Затем включите следующие модули Apache…
a2enmod actions
a2enmod fastcgi
a2enmod alias… отключите mod_php5…
a2dismod php5… и перезапустите Apache:
systemctl restart apache2.serviceGet new posts in your inbox
No spam. Unsubscribe anytime.