代码之家  ›  专栏  ›  技术社区  ›  Chud37

PHP。ini向Laravel Homestead中的phpinfo()显示不同的值

  •  1
  • Chud37  · 技术社区  · 8 年前

    我我正在尝试修改PHP。要启用的Laravel homestead的ini文件 short_open_tags 。

    下列的 joepferguson 的建议,我在我的after中添加了以下几行。sh文件:

    sudo sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/5.6/fpm/php.ini
    sudo sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.0/fpm/php.ini
    sudo sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.1/fpm/php.ini
    sudo sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.2/fpm/php.ini
    

    现在,当我SSH到homestead服务器并运行以下操作时:

    vagrant@homestead:/etc/php/7.1/fpm$ cat php.ini | grep short_
    ; short_open_tag
    short_open_tag = On
    

    它清楚地表明它已打开。但是,它们仍然不起作用,当我运行以下代码时:

    这表明它确实加载了相同的php。ini文件: /etc/php/7.1/fpm/php.ini

    但短开放标签是 还 设置为Off,再往下看文件phpinfo():

    enter image description here

    如果我运行命令 php --ini 我得到以下信息:

    vagrant@homestead:/etc/php/7.1/fpm$ php --ini
    Configuration File (php.ini) Path: /etc/php/7.2/cli
    Loaded Configuration File:         /etc/php/7.2/cli/php.ini
    Scan for additional .ini files in: /etc/php/7.2/cli/conf.d
    Additional .ini files parsed:      /etc/php/7.2/cli/conf.d/10-mysqlnd.ini,
    /etc/php/7.2/cli/conf.d/10-opcache.ini,
    /etc/php/7.2/cli/conf.d/10-pdo.ini,
    /etc/php/7.2/cli/conf.d/15-xml.ini,
    /etc/php/7.2/cli/conf.d/20-bcmath.ini,
    /etc/php/7.2/cli/conf.d/20-calendar.ini,
    /etc/php/7.2/cli/conf.d/20-ctype.ini,
    /etc/php/7.2/cli/conf.d/20-curl.ini,
    /etc/php/7.2/cli/conf.d/20-dom.ini,
    /etc/php/7.2/cli/conf.d/20-exif.ini,
    /etc/php/7.2/cli/conf.d/20-fileinfo.ini,
    /etc/php/7.2/cli/conf.d/20-ftp.ini,
    /etc/php/7.2/cli/conf.d/20-gd.ini,
    /etc/php/7.2/cli/conf.d/20-gettext.ini,
    /etc/php/7.2/cli/conf.d/20-iconv.ini,
    /etc/php/7.2/cli/conf.d/20-igbinary.ini,
    /etc/php/7.2/cli/conf.d/20-imap.ini,
    /etc/php/7.2/cli/conf.d/20-intl.ini,
    /etc/php/7.2/cli/conf.d/20-json.ini,
    /etc/php/7.2/cli/conf.d/20-mbstring.ini,
    /etc/php/7.2/cli/conf.d/20-msgpack.ini,
    /etc/php/7.2/cli/conf.d/20-mysqli.ini,
    /etc/php/7.2/cli/conf.d/20-pdo_mysql.ini,
    /etc/php/7.2/cli/conf.d/20-pdo_pgsql.ini,
    /etc/php/7.2/cli/conf.d/20-pdo_sqlite.ini,
    /etc/php/7.2/cli/conf.d/20-pgsql.ini,
    /etc/php/7.2/cli/conf.d/20-phar.ini,
    /etc/php/7.2/cli/conf.d/20-posix.ini,
    /etc/php/7.2/cli/conf.d/20-readline.ini,
    /etc/php/7.2/cli/conf.d/20-shmop.ini,
    /etc/php/7.2/cli/conf.d/20-simplexml.ini,
    /etc/php/7.2/cli/conf.d/20-soap.ini,
    /etc/php/7.2/cli/conf.d/20-sockets.ini,
    /etc/php/7.2/cli/conf.d/20-sqlite3.ini,
    /etc/php/7.2/cli/conf.d/20-sysvmsg.ini,
    /etc/php/7.2/cli/conf.d/20-sysvsem.ini,
    /etc/php/7.2/cli/conf.d/20-sysvshm.ini,
    /etc/php/7.2/cli/conf.d/20-tokenizer.ini,
    /etc/php/7.2/cli/conf.d/20-wddx.ini,
    /etc/php/7.2/cli/conf.d/20-xmlreader.ini,
    /etc/php/7.2/cli/conf.d/20-xmlwriter.ini,
    /etc/php/7.2/cli/conf.d/20-xsl.ini,
    /etc/php/7.2/cli/conf.d/20-zip.ini,
    /etc/php/7.2/cli/conf.d/25-memcached.ini,
    /etc/php/7.2/cli/conf.d/90-blackfire.ini,
    /etc/php/7.2/cli/conf.d/zray.ini
    

    所以homestead在php上加载了很多ini文件。伊尼,对吗?除了该网站正在使用FPM之外,我访问了该目录并运行了以下内容:

    vagrant@homestead:/etc/php/7.1/fpm/conf.d$ grep -R "short_open"

    但它什么也没有返回。因此,没有其他INI文件覆盖第一个INI文件,那么为什么short\u open\u标记仍然无法在网页上工作??

    1 回复  |  直到 8 年前
        1
  •  3
  •   joepferguson    8 年前

    确保您正在跑步

    sudo service php5.6-fpm restart sudo service php7.0-fpm restart sudo service php7.1-fpm restart sudo service php7.2-fpm restart sudo service nginx restart

    或者只需重新启动正在编辑设置的版本。