Ich habe diese Einrichtung in einem Debian: Apache 2.4 proxy_fcgi und php-fpm (v5.5). In meiner Virtualhost-Datei i:apache2.4 + php-fpm + phpmyadmin in debian
<VirtualHost *:80>
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
</VirtualHost>
und alles funktioniert, kann ich sehen phpinfo() und jede PHP-Datei i unter/var anfordern/www/html /.
ich weiterhin mit der phpMyAdmin-Installation von der debian-Repo, aber wenn ich auf http://MY.IP/phpmyadmin zu sehen bekomme ich einen „Datei nicht gefunden“ Fehler und in dem Apache-Fehlerprotokoll
"[proxy_fcgi:error] AH01071: Got error 'Primary script unknown\n'"
Debian phpMyAdmin Paket-Dumps den Inhalts in/usr/teilen/phpmyadmin. Wenn ich eine test.html Datei unter/usr/share/phpmyadmin erstelle ich kann seinen Inhalt von http://MY.IP/phpmyadmin/test.html
Das Problem ist, dass PHP-Dateien unter/usr/share/phpmyadmin nicht verarbeitet werden. Die phpmyadmin apache-Konfiguration lautet wie folgt:
# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
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/
</IfModule>
</Directory>
...
und in der Apache-Konfigurationsdatei geladen wird.
Da keine mod_php installiert ist, gibt es keine Verarbeitung für die PHP-Dateien. Wie kann ich Apache sagen, um proxy_fcgi zu verwenden, um PHP-Dateien im Verzeichnis/usr/share/phpmyadmin zu verarbeiten?
>> aktualisieren < < Ich habe eine proxypassmatch Direktive in conf des phpMyAdmin Apache
ProxyPassMatch ^/phpmyadmin/(.*\.php(/.*)?)$ unix:/var/run/php5-fpm.sock|fcgi:///usr/share/phpmyadmin/
erwartet zu arbeiten, aber ich halte den gleichen Fehler.
>> aktualisieren 2 < < ich die php-fpm Unix-Socket mit Netzwerk ersetzt (127,1: 9000) und ersetzt die ProxyPassmatch der virthualhost Datei mit:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1
und in phpMyAdmin 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
und alles funktioniert .. wenn ich My.IP gehen zu/phpinfo.php bekomme ich die phpinfo von /var/www/html/phpinfo.php und wenn ich besuchen My.IP/phpMyAdmin/phpinfo .php Ich bekomme den verarbeiteten Inhalt von /usr/share/phpmyadmin/phpinfo.php.
Mein Problem ist gelöst, aber ich verstehe immer noch nicht, warum die Netzwerkverbindung mit php-fpm funktioniert, aber der Unix-Socket nicht.
Wenn ich dich küssen könnte würde ich, pure genious! – Creek
Du hast mein Leben gerettet! Danke vielmals ! –
Ich habe auch versucht, es mit Unix Sockets zu arbeiten, bis ich aufgab. Es wird nicht funktionieren. Also beschlossen, auf tcp-Verbindung zurückzufallen !! –