【问题标题】:expose_php not work (nginx)暴露_php不起作用(nginx)
【发布时间】:2013-06-11 14:58:31
【问题描述】:

第一次,我尝试使用proxy_hide_header将其剥离,但它不起作用

然后我改变了 etc/php.ini ,设置了expose_php = Off

但 X-Powered-By 标题仍然存在

root@wordpress:~# ps -ef |grep php | grep -v grep
root     10643     1  0 23:22 ?        00:00:00 php-fpm: master process (/usr/local/php-5.3.26/etc/php-fpm.conf)                                                                                  
nobody   10644 10643  0 23:22 ?        00:00:00 php-fpm: pool www                                                                                                                                 
nobody   10645 10643  0 23:22 ?        00:00:00 php-fpm: pool www                                                                                                                                 
root@wordpress:~# 

我的php版本是php 5.3.26

Configure Command =>  './configure'  '--prefix=/usr/local/php-5.3.26' '--with-config-file-path=/usr/local/php-5.3.26/etc' '--enable-fpm' '--enable-debug' '--with-openssl' '--with-pcre-regex' '--with-zlib' '--with-bz2' '--with-curl=/usr/lib/' '--with-readline=/lib' '--with-libxml-dir=/usr/lib' '--with-mysql=/usr/local/mysql'

PHP Version => 5.3.26

System => Linux wordpress.ruby-mine.com 3.9.3-x86_64-linode33 #1 SMP Mon May 20 10:22:57 EDT 2013 x86_64
Build Date => Jun 11 2013 21:58:26
Configure Command =>  ./configure  --prefix=/usr/local/php-5.3.26 --with-config-file-path=/usr/local/php-5.3.26/etc --enable-fpm --enable-debug --with-openssl --with-pcre-regex --with-zlib --with-bz2 --with-curl=/usr/lib/ --with-readline=/lib --with-libxml-dir=/usr/lib --with-mysql=/usr/local/mysql
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/php-5.3.26/etc

我还注意到, php -i 的输出显示expose_php = on

root@wordpress:/usr/local/php/etc# php -i | grep Configuration
Configuration File (php.ini) Path => /usr/local/php-5.3.26/etc
Loaded Configuration File => (none)
Configuration
root@wordpress:/usr/local/php/etc# 


root@wordpress:/usr/local/php-5.3.26/etc# ll /usr/local/php-5.3.26/etc/php.ini
-rw-rw-rw- 1 root root 69628 Jun 11 22:51 /usr/local/php-5.3.26/etc/php.ini
root@wordpress:/usr/local/php-5.3.26/etc# 

【问题讨论】:

  • 这里的所有解决方案你都试过了吗:stackoverflow.com/questions/962230/hide-x-powered-by-nginx
  • 你有一些额外的配置文件打开了吗? (参见 /usr/local/php-5.3.26/etc)
  • 执行 php -i | grep Configuration 以确保您正在编辑正确的 php.ini
  • @joe :我尝试了“proxy_hide_header”和expose_php。
  • 它还写着 Loaded Configuration File => (none) 。你说文件在那里,所以仔细检查文件的权限,并确保它可以被所有人读取。

标签: php wordpress nginx http-headers


【解决方案1】:

我终于明白了。

原因在于配置选项

下面是原来的配置选项

./configure --prefix=/usr/local/php-5.3.26 \
             --with-config-file-path=/usr/local/php-5.3.26/etc/ \
             --enable-fpm \
             --enable-debug \
             --with-openssl \
             --with-pcre-regex \
             --with-zlib \
             --with-bz2 \
             --with-curl=/usr/lib/ \
             --with-readline=/lib \
             --with-libxml-dir=/usr/lib \
             --with-mysql=/usr/local/mysql

然后我变成了fowloing

./configure --prefix=/usr/local/php-5.3.26 \
            --sysconfdir=/usr/local/php-5.3.26/etc/ \
             --with-config-file-path=/usr/local/php-5.3.26/etc/ \
             --with-config-file-scan-dir=/usr/local/php-5.3.26/etc/ \
             --enable-fpm \
             --enable-debug \
             --with-openssl \
             --with-pcre-regex \
             --with-zlib \
             --with-bz2 \
             --with-curl=/usr/lib/ \
             --with-readline=/lib \
             --with-libxml-dir=/usr/lib \
             --with-mysql=/usr/local/mysql

问题已解决,现在加载的配置文件从 (none) 更改为

Configuration File (php.ini) Path => /usr/local/php-5.3.26/etc/
Loaded Configuration File => /usr/local/php-5.3.26/etc/php.ini
Scan this dir for additional .ini files => /usr/local/php-5.3.26/etc/
Additional .ini files parsed => /usr/local/php-5.3.26/etc/php.ini

X-Powered-By 标题终于消失了

感谢大家,尤其是aynber

【讨论】:

    【解决方案2】:

    对我来说,我在我的 /etc/php5/cli/php.ini/etc/php5/fpm/php.ini 文件中找到了它。

    必须向下滚动 300 行才能找到默认的 expose_php = On 并将其切换为 Off。为了安全起见,我在两个文件位置都更改了它。

    不要忘记在之后运行sudo service php5-fpm restart

    【讨论】:

      【解决方案3】:

      我无法在 GoDaddy 上让 Expose_php 与 Wordpress 一起工作。

      发现解决方案是在.user.ini 文件中添加expose_php = 0 而不是expose_php = on

      根据http://www.php.net/manual/en/ini.list.php,expose_php 的默认值为“1”,而其他一些属性被列为“off”或“on”。也许 GoDaddy 有一个特性,它不会将“关闭”转换为“0”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-24
        • 2016-12-14
        • 2019-02-01
        • 2021-03-13
        • 1970-01-01
        • 1970-01-01
        • 2018-06-19
        相关资源
        最近更新 更多