Apache 2.2.21 と PHP 5.3.8 を実行している Mac OS X サーバーがあります。
ディレクトリごとにいくつかの php.ini スタイル ディレクティブを設定したいと考えています。PHP のマニュアル ページによると、PHP 5.3.0 以降、ディレクトリに「.users.ini」というファイルを配置することで、メインの php.ini ランタイム構成ファイルにあるディレクティブをディレクトリごとに上書きすることが可能でした。影響を受けるスクリプトが含まれています。
私にとって、このソリューションは .htaccess ファイルに含まれる php_value および php_flag 命令を使用するよりも非常に望ましいですが、作成した .user.ini ファイルは PHP によって無視されています。
phpinfo() によると、私の .user.ini ファイルは 5 分ごとに再キャッシュされる必要があり、ファイル名は正しく「.user.ini」に設定されています。
user_ini.cache_ttl 300
user_ini.filename .user.ini
Apache は AllowOverides に設定されており、.htaccess ファイルを介して PHP ディレクティブを設定すると、制御したい ini 設定が正しく上書きされることを確認済みです。私が試した最も単純なテスト ファイルは、次の行のみを含む .user.ini ファイルです。
display_errors = On
これは機能せず、システム全体のディレクトリ (=Off) が使用されます。ただし、同等の .htaccess ファイルは期待どおりに機能し、システム全体のディレクティブをオーバーライドします。
php_flag display_errors on
私が見つけることができる 1 つの手がかりは、メインの php.ini ファイルの先頭にある謎の [PHP] です。マニュアルにこのセクションマーカーの記述が見当たりませんでしたので、おそらく[PHP]でファイルを開始する必要があると思いました。これを .user.ini ファイルの先頭に追加して、ページをリロードし、さらに 5 分待ってからもう一度リロードして、キャッシュされたバージョンをロードしていないことを確認しましたが、残念ながら違いはありませんでした。
私が見つけたもう 1 つの手がかりは、.user.ini ファイルの使用方法を説明している、前述の PHPマニュアル ページにある同様に不可解なステートメントです。「これらのファイルは、CGI/FastCGI SAPI によってのみ処理されます。」残念ながら、phpinfo() の出力に「GATEWAY_INTERFACE CGI/1.1」という行以外に、この条件が満たされていることを確認する方法がわかりません。 )出力。この謎の声明はほとんど重要ではなく、CGI/FastCGI SAPI が処理を行う (それが何を意味するにせよ) と述べているにすぎず、何かを有効にする必要があることを警告するのとは対照的であると想定せざるを得ません。私が間違っている場合は修正してください。
同じ .user.ini マニュアル ページのコメントにも、php-fpm を使用すると .user.ini ファイルの処理が機能しないという記述があります。私が知る限り、私はそれを使用していませんが、簡単に確認する方法があれば教えてください。これにより、この機能と競合して .user.ini ファイルの読み込みを無効にする他の構成オプションまたはモジュールがあるかどうかという疑問が生じます。それに対する答えを知っている人はいますか?
完全を期すために、デフォルトから変更したとは思いませんが、明らかな問題が発生した場合に備えて、構成コマンドを含めます。
'/private/var/tmp/apache_mod_php/apache_mod_php-53.8~2/php/configure' '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/ info' '--disable-dependency-tracking' '--sysconfdir=/private/etc' '--with-apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file -path=/etc' '--with-libxml-dir=/usr' '--with-openssl=/usr' '--with-kerberos=/usr' '--with-zlib=/usr' '- -enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--with-curl=/usr' '--enable-exif' '--enable-ftp' '--with -gd''--with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.8~2/Root/usr/local''--with-png-dir=/BinaryCache/apache_mod_php/apache_mod_php-53.8~2/Root /usr/local'' --enable-gd-native-ttf''--with-ldap=/usr' '--with-ldap-sasl=/usr' '--enable-mbstring' '--enable-mbregex' '--with-mysql=mysqlnd' '--with- mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--without-pear' '--with-iodbc=/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable- sysvshm' '--enable-wddx' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte' '-- enable-zip'' --with-pcre-regex=/usr'--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--without-pear' '--with-iodbc =/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' ' --enable-sysvshm' '--enable-wddx' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte ' '--enable-zip' '--with-pcre-regex=/usr'--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--without-pear' '--with-iodbc =/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' ' --enable-sysvshm' '--enable-wddx' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte ' '--enable-zip' '--with-pcre-regex=/usr'--enable-sysvshm' '--enable-wddx' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte ' '--enable-zip' '--with-pcre-regex=/usr'--enable-sysvshm' '--enable-wddx' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '--enable-zend-multibyte ' '--enable-zip' '--with-pcre-regex=/usr'
(親愛なる読者の皆さん、ここまで読んでくれたので、上記の設定とは関係のない奇妙な点を見つけた場合は、この元の投稿に添付されたコメントで遠慮なく言及してください)