当前位置:  开发笔记 > 编程语言 > 正文

debian中的apache2.4 + php-fpm + phpmyadmin

如何解决《debian中的apache2.4+php-fpm+phpmyadmin》经验,为你挑选了1个好方法。

我在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()和我在/ var/www/html /下请求的每个php文件.

我继续从debian repo安装phpmyadmin但是当我浏览到http://MY.IP/phpmyadmin时,我收到"找不到文件"错误并在apache错误日志中

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

Debian phpmyadmin包将内容转储到/ usr/share/phpmyadmin.如果我在/ usr/share/phpmyadmin下创建一个test.html文件,我可以从http://MY.IP/phpmyadmin/test.html看到它的内容

问题是/ usr/share/phpmyadmin下的php文件没有被处理.phpmyadmin apache配置如下:

# 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来处理/ usr/share/phpmyadmin目录下的php文件?

>> update << 我在phpmyadmin apache的conf中添加了一个proxypassmatch指令

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

期待工作,但我一直得到同样的错误.

>> update 2 << 我用网络(127.1:9000)替换了php-fpm unix套接字,并将virthualhost文件的ProxyPassmatch替换为:

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

并在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

一切正常..当我去MY.IP/phpinfo.php时,我从/var/www/html/phpinfo.php获取phpinfo,当我访问MY.IP/phpmyadmin/phpinfo.php时,我得到了处理过的内容/usr/share/phpmyadmin/phpinfo.php.

我的问题解决但我仍然不明白为什么与php-fpm的网络连接工作,但unix套接字没有.



1> 小智..:

我正在努力解决这个完全相同的问题,我无法让phpmyadmin工作.我仍然得到上面提到的"找不到文件".我的问题是我必须将我的ProxyPassMatch放在我的./sites-available文件夹中的000-default.conf文件中,我必须在默认文件夹之前放入这些条目.这是本页最底部的概述,我找到了解决方案:http: //jordanconway.com/set-up-apache-2-4-with-php-fpm-on-ubuntu-13-10/

这是我的矿山设置参考方式.


   ...
    DocumentRoot /var/www/html
   ...
    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
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有