Наткнулся на странную проблему. Есть типовая установка OpenSUSE Tumbleweed, на которой я пытаюсь настроить Apache (с настройками фактически по умолчанию). При попытке запуска получается ошибка "Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP."
Гуглеж дал кучу описаний подобной ситуации для разных дистрибутивов, но как-то все предлагаемые рецепты не сработали. Если важно, нужен PHP8, хотя с PHP7 получается то же самое. Никто не может описать какой-нибудь работающий рецепт или дать на него ссылку?
Не запускается Apache с руганью на PHP
Модераторы: SLEDopit, Модераторы разделов
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Не запускается Apache с руганью на PHP
https://wiki.archlinux.org/title/Apache_HTTP_Server#Apache_is_running_a_threaded_MPM,_but_your_PHP_Module_is_not_compiled_to_be_threadsafe.
Try replacing mpm_event_module with mpm_prefork_module
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 457
- ОС: openSUSE
Re: Не запускается Apache с руганью на PHP
Проблема в том, что тут нет ничего подобного. В /etc/apache2 такая внутренняя структура:
Ну и везде, где хотя бы теоретически могут подключаться модули, подобных строк нет. Зато в loadmodule.conf (и не только) есть структура такого вида:
По идее, надо как-то заставить его выбирать первый блок, но вот как?.. Такую настройку нигде найти не удалось
Код: Выделить всё
.
├── charset.conv
├── conf.d
│ ├── httpd-encoding.conf
│ ├── manual.conf
│ ├── mod_auth_mellon.conf
│ ├── mod_evasive.conf
│ ├── mod_fcgid.conf
│ ├── mod_maxminddb.conf
│ ├── mod_nss.conf
│ ├── mod_perl.conf
│ ├── mod_php8.conf
│ └── nagios.conf
├── default-server.conf
├── errors.conf
├── global.conf
├── httpd.conf
├── listen.conf
├── listen_nss.conf
├── loadmodule.conf
├── magic
├── mime.types -> ../mime.types
├── mod_autoindex-defaults.conf
├── mod_cgid-timeout.conf
├── mod_info.conf
├── mod_log_config.conf
├── mod_mime-defaults.conf
├── mod_mono.conf
├── mod_nss.d
│ ├── cert9.db
│ ├── install.log
│ ├── key4.db
│ └── pkcs11.txt
├── mod_perl-startup.pl
├── mod_reqtimeout.conf
├── mod_status.conf
├── mod_userdir.conf
├── mod_usertrack.conf
├── protocols.conf
├── server-tuning.conf
├── ssl.crl
│ └── README.CRL
├── ssl.crt
│ └── README.CRT
├── ssl.csr
│ └── README.CSR
├── ssl-global.conf
├── ssl.key [error opening dir]
├── ssl.prm
│ └── README.PRM
├── sysconfig.d
│ ├── global.conf
│ ├── include.conf
│ └── loadmodule.conf
├── uid.conf
└── vhosts.d
├── vhost-nss.template
├── vhost-ssl.template
├── vhost.template
└── YaSTsave
└── vhost-nss.template
Код: Выделить всё
<IfModule prefork.c>
LoadModule actions_module /usr/lib64/apache2-prefork/mod_actions.so
LoadModule alias_module /usr/lib64/apache2-prefork/mod_alias.so
LoadModule auth_basic_module /usr/lib64/apache2-prefork/mod_auth_basic.so
LoadModule authn_file_module /usr/lib64/apache2-prefork/mod_authn_file.so
LoadModule authz_host_module /usr/lib64/apache2-prefork/mod_authz_host.so
LoadModule authz_groupfile_module /usr/lib64/apache2-prefork/mod_authz_groupfile.so
LoadModule authz_user_module /usr/lib64/apache2-prefork/mod_authz_user.so
LoadModule autoindex_module /usr/lib64/apache2-prefork/mod_autoindex.so
LoadModule cgi_module /usr/lib64/apache2-prefork/mod_cgi.so
LoadModule dir_module /usr/lib64/apache2-prefork/mod_dir.so
LoadModule env_module /usr/lib64/apache2-prefork/mod_env.so
LoadModule expires_module /usr/lib64/apache2-prefork/mod_expires.so
LoadModule include_module /usr/lib64/apache2-prefork/mod_include.so
LoadModule log_config_module /usr/lib64/apache2-prefork/mod_log_config.so
LoadModule mime_module /usr/lib64/apache2-prefork/mod_mime.so
LoadModule negotiation_module /usr/lib64/apache2-prefork/mod_negotiation.so
LoadModule setenvif_module /usr/lib64/apache2-prefork/mod_setenvif.so
LoadModule ssl_module /usr/lib64/apache2-prefork/mod_ssl.so
LoadModule socache_shmcb_module /usr/lib64/apache2-prefork/mod_socache_shmcb.so
LoadModule userdir_module /usr/lib64/apache2-prefork/mod_userdir.so
LoadModule reqtimeout_module /usr/lib64/apache2-prefork/mod_reqtimeout.so
LoadModule authn_core_module /usr/lib64/apache2-prefork/mod_authn_core.so
LoadModule authz_core_module /usr/lib64/apache2-prefork/mod_authz_core.so
</IfModule>
<IfModule worker.c>
LoadModule actions_module /usr/lib64/apache2-worker/mod_actions.so
LoadModule alias_module /usr/lib64/apache2-worker/mod_alias.so
LoadModule auth_basic_module /usr/lib64/apache2-worker/mod_auth_basic.so
LoadModule authn_file_module /usr/lib64/apache2-worker/mod_authn_file.so
LoadModule authz_host_module /usr/lib64/apache2-worker/mod_authz_host.so
LoadModule authz_groupfile_module /usr/lib64/apache2-worker/mod_authz_groupfile.so
LoadModule authz_user_module /usr/lib64/apache2-worker/mod_authz_user.so
LoadModule autoindex_module /usr/lib64/apache2-worker/mod_autoindex.so
LoadModule cgi_module /usr/lib64/apache2-worker/mod_cgi.so
LoadModule dir_module /usr/lib64/apache2-worker/mod_dir.so
LoadModule env_module /usr/lib64/apache2-worker/mod_env.so
LoadModule expires_module /usr/lib64/apache2-worker/mod_expires.so
LoadModule include_module /usr/lib64/apache2-worker/mod_include.so
LoadModule log_config_module /usr/lib64/apache2-worker/mod_log_config.so
LoadModule mime_module /usr/lib64/apache2-worker/mod_mime.so
LoadModule negotiation_module /usr/lib64/apache2-worker/mod_negotiation.so
LoadModule setenvif_module /usr/lib64/apache2-worker/mod_setenvif.so
LoadModule ssl_module /usr/lib64/apache2-worker/mod_ssl.so
LoadModule socache_shmcb_module /usr/lib64/apache2-worker/mod_socache_shmcb.so
LoadModule userdir_module /usr/lib64/apache2-worker/mod_userdir.so
LoadModule reqtimeout_module /usr/lib64/apache2-worker/mod_reqtimeout.so
LoadModule authn_core_module /usr/lib64/apache2-worker/mod_authn_core.so
LoadModule authz_core_module /usr/lib64/apache2-worker/mod_authz_core.so
</IfModule>
<IfModule event.c>
LoadModule actions_module /usr/lib64/apache2-event/mod_actions.so
LoadModule alias_module /usr/lib64/apache2-event/mod_alias.so
LoadModule auth_basic_module /usr/lib64/apache2-event/mod_auth_basic.so
LoadModule authn_file_module /usr/lib64/apache2-event/mod_authn_file.so
LoadModule authz_host_module /usr/lib64/apache2-event/mod_authz_host.so
LoadModule authz_groupfile_module /usr/lib64/apache2-event/mod_authz_groupfile.so
LoadModule authz_user_module /usr/lib64/apache2-event/mod_authz_user.so
LoadModule autoindex_module /usr/lib64/apache2-event/mod_autoindex.so
LoadModule cgi_module /usr/lib64/apache2-event/mod_cgi.so
LoadModule dir_module /usr/lib64/apache2-event/mod_dir.so
LoadModule env_module /usr/lib64/apache2-event/mod_env.so
LoadModule expires_module /usr/lib64/apache2-event/mod_expires.so
LoadModule include_module /usr/lib64/apache2-event/mod_include.so
LoadModule log_config_module /usr/lib64/apache2-event/mod_log_config.so
LoadModule mime_module /usr/lib64/apache2-event/mod_mime.so
LoadModule negotiation_module /usr/lib64/apache2-event/mod_negotiation.so
LoadModule setenvif_module /usr/lib64/apache2-event/mod_setenvif.so
LoadModule ssl_module /usr/lib64/apache2-event/mod_ssl.so
LoadModule socache_shmcb_module /usr/lib64/apache2-event/mod_socache_shmcb.so
LoadModule userdir_module /usr/lib64/apache2-event/mod_userdir.so
LoadModule reqtimeout_module /usr/lib64/apache2-event/mod_reqtimeout.so
LoadModule authn_core_module /usr/lib64/apache2-event/mod_authn_core.so
LoadModule authz_core_module /usr/lib64/apache2-event/mod_authz_core.so
</IfModule>
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Не запускается Apache с руганью на PHP
Нет — так добавьте. Модуль-то сам есть, главное?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 457
- ОС: openSUSE
Re: Не запускается Apache с руганью на PHP
Добавить - не проблема (и это я уже делал). Вопрос в том, где убрать неправильный.
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Не запускается Apache с руганью на PHP
grep -RF mpm_ /etc/apache2
Добавлено (13:27):
apachectl -MПишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 457
- ОС: openSUSE
Re: Не запускается Apache с руганью на PHP
Первое выдает вот что:
Второе:
Что во всем этом нужно было увидеть?
Код: Выделить всё
/etc/apache2/listen.conf:# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#listen
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#startservers
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#serverlimit
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestsperchild
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#startservers
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#minsparethreads
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxsparethreads
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadlimit
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadsperchild
/etc/apache2/server-tuning.conf: # https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestsperchild
Код: Выделить всё
[Thu Nov 25 11:51:04.903703 2021] [php:crit] [pid 27834:tid 140502702325888] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
AH00013: Pre-configuration failed
-
- Модератор
- Сообщения: 21033
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Не запускается Apache с руганью на PHP
Теоретически, в первом — откуда берётся mpm_event_module, во втором — какие вообще модули загружены. А если отрубить в конфиге php, вторая команда что скажет?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
- Сообщения: 457
- ОС: openSUSE
Re: Не запускается Apache с руганью на PHP
Попробовал отключить все модули с PHP, теперь вылезло
Но это, возможно, уже последствия моего ковыряния в конфигах. Надо будет переставить и попробовать сначала.
Код: Выделить всё
AH00526: Syntax error on line 1 of /etc/apache2/conf.d/mod_auth_mellon.conf:
Invalid command 'MellonCacheSize', perhaps misspelled or defined by a module not included in the server configuration
-
- Сообщения: 457
- ОС: openSUSE
Re: Не запускается Apache с руганью на PHP
В общем, вроде получилось. Экспериментально выяснилось, что "не любит" он именно PHP7. Если поставить только PHP8, то все работает.