apache2.4 + php-fpm + phpmyadmin в Debian

У меня есть такая настройка в Debian: apache 2.4 proxy_fcgi и php-fpm (v5.5). В моем файле виртуального хоста у меня есть:


DocumentRoot /var/www/html
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi://./var/www/html
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorLog ${APACHE_LOG_DIR}/error.log

и все работает нормально, я вижу phpinfo () и каждый php-файл, который я запрашиваю в / var / www / html /.

Я продолжаю установку phpmyadmin из репозитория Debian, но когда я захожу на http: //MY.IP/phpmyadmin , я получаю ошибку «Файл не найден» и ошибку apache log

"[proxy_fcgi:error] AH01071: Got error 'Primary script unknown\n'"

Пакет Debian phpmyadmin выводит содержимое в / usr / share / phpmyadmin. Если я создаю файл test.html в / usr / share / phpmyadmin, я могу увидеть его содержимое из http: //MY.IP/phpmyadmin/test.html

Проблема в том, что Файлы php в / usr / share / phpmyadmin не обрабатываются. Конфигурация Apache phpmyadmin:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin


        Options FollowSymLinks
        DirectoryIndex index.php

        
                AddType application/x-httpd-php .php
                
                    SetHandler application/x-httpd-php
                

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_admin_flag allow_url_fopen Off
                php_value include_path .
                php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/
        


...

и загружается в файл конфигурации Apache.

Так как mod_php не установлен, обработка php-файлов не производится. Как я могу сказать apache использовать proxy_fcgi для обработки файлов php в каталоге / usr / share / phpmyadmin?

>> update Я добавил директиву proxypassmatch в phpmyadmin apache's conf

ProxyPassMatch ^/phpmyadmin/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi:///usr/share/phpmyadmin/

ожидаю работы, но я продолжаю получать ту же ошибку.

>> update 2 Я заменил сокет unix php-fpm на сеть (127.1: 9000) и заменил ProxyPassmatch файла virthualhost на:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

и в phpmyadmin's apache conf:

ProxyPassMatch ^/phpmyadmin/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/share/phpmyadmin/$1
ProxyPassMatch ^/phpmyadmin/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/share/phpmyadmin$1index.php

и все работает .. когда я захожу на MY.IP / phpinfo.php, я получаю phpinfo из /var/www/html/phpinfo.php и когда посещаю MY.IP /phpmyadmin/phpinfo.php Я получаю обработанное содержимое /usr/share/phpmyadmin/phpinfo.php.

Моя проблема решена, но я до сих пор не понимаю, почему работает сетевое соединение с php-fpm, а сокет unix - нет.

10
задан papasj 18 April 2014 в 22:41
поделиться