Я знаю, что здесь часто задавалась ошибка apache/php, и я знаю, что FastCgiExternalServer может быть определен только один раз с тем же именем.
Однако я все еще не могу избавиться от этой проблемы. Моя настройка очень проста, у меня есть два виртуальных хоста. Я удалил глобальный обработчик fastcgi, который у меня был в \etc\apache2\conf.d\php5-fpm.local.conf.
В \etc\apache2\sites-enabled у меня есть только 2 сайта, default.conf и phpmyadmin.conf
Default.conf:
<IfModule mod_fastcgi.c>
<FilesMatch \.php$>
SetHandler php5-fcgi
</FilesMatch>
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>
phpmyadmin.conf:
<IfModule mod_fastcgi.c>
<FilesMatch \.php$>
SetHandler phpmyadmin-fcgi
</FilesMatch>
Action phpmyadmin-fcgi /php5-fcgi-phpmyadmin virtual
Alias /php5-fcgi-phpmyadmin /usr/lib/cgi-bin/phpmyadmin-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/phpmyadmin-fcgi -socket /var/run/phpmyadmin-fpm.sock -pass-header Authorization
</IfModule>
и я все еще получаю эту ошибку. Чтобы быть уверенным, я не использовал одно и то же имя в каком-то скрытом файле конфигурации, я пробовал какое-то глупое имя в phpmyadmin.conf, например
Alias /php5-fcgi-phpmyadmin /usr/lib/cgi-bin/pleasework
FastCgiExternalServer /usr/lib/cgi-bin/pleasework -socket /var/run/phpmyadmin-fpm.sock -pass-header Authorization
а также
$apache2ctl configtest
Syntax error on line 15 of /etc/apache2/sites-enabled/phpmyadmin.conf:
FastCgiExternalServer: redefinition of previously defined class "/usr/lib/cgi-bin/pleasework"
Action 'configtest' failed.
Я действительно не знаю, откуда эта проблема.
Нет ответа? У меня есть рабочее решение, поэтому я вношу здесь кое-что для поисковых систем...
FastCgiExternalServer
Ожидаемый первый параметр - это своего рода ключ uniq, который несколько привязывается к внешнему серверу, этот документ:
https://docs.oracle.com/cd/B31017_01/web.1013/q20204/mod_fastcgi.html#FastCgiExternalServer
говорит:
"Имя файла не должно существовать в локальной файловой системе".
Решение использует отдельное имя файла для первого параметра.
FastCgiExternalServer /usr/lib/cgi-bin/pleasework -socket /var/run/phpmyadmin-fpm.sock -pass-header Authorization
а также
FastCgiExternalServer /usr/lib/cgi-bin/pleasework-ssl -socket /var/run/phpmyadmin-fpm.sock -pass-header Authorization
Какой-то URL-адрес, который помог мне найти:
https://serverfault.com/questions/439692/apache-and-multiple-php-fpm-pools https://git.ispconfig.org/ispconfig/ispconfig3/issues/2188