Пользовательский каталог php.ini (для тестирования сайтов)

Я использую Apache 2.26 в Windows 7 с PHP 5.39 mod_ssl / 2.2.6 OpenSSL / 0.9.8g.

PHP работает нормально, как и Apache.

Однако я хочу попробовать создать собственные файлы php.ini для каждого каталога для моих тестовых сайтов.

Я мог бы - и сделал - использовать php_flag, но хотел бы попытаться создать собственный файл php.ini, который работает. Я пытался найти это в Google, но не смог найти ничего подходящего.

Это мой текущий .htaccess для C: / www / vhosts / localhost / testsite1:

<code>RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php


#RewriteCond %{REQUEST_fileNAME} !\.php -f
#RewriteRule .* index.php

AddType text/html .asp
AddHandler application/x-httpd-php .page

php_value include_path "./php:/php/"
</code>

Тем не менее, я внес изменение в пользовательский php.ini внутри php, чтобы отключить короткие теги [только для тестирования], но он его не поднял, вместо этого показывался код php.

Любая помощь ценится с этим; это будет чрезвычайно полезно!

(имейте в виду, что установка Apache является разработкой / тестированием)

 hakre14 апр. 2012 г., 17:56
Да, это нормально. Понятия не имею, что там происходит.
 hakre14 апр. 2012 г., 17:46
Я понятия не имею об этом API, который больше похож на день, чем на API. Может быть, вы пропустили какую-то строку?
 avenas880814 апр. 2012 г., 17:39
Я не использую PHP CGI, согласно php_sapi_name. 20090626 - это мой текущий API.
 hakre14 апр. 2012 г., 17:32
Какой серверный API (SAPI) вы используете? Если FCGI искать файлы user.ini.
 avenas880814 апр. 2012 г., 17:48
как мне найти API? php_sapi_name было то, что я пытался.

Ответы на вопрос(2)

Решение Вопроса

php_flag тогда вы, вероятно, используете mod_php5. Пользовательский "php.ini" файлы не поддерживаются этим. Вам нужно будет использовать suPHP или его эквивалент в качествеphp.ini загружается только при запуске PHP, и это не такper-request для mod_php5 и FCGI.

However, так как вы используете PHP 5.3, вы также можете использоватьфайлы .user.ini которые анализируются на основе запроса.

 04 апр. 2015 г., 08:25
suPHP не является опцией для конечного разработчика. Это выбор системного администратора при настройке веб-сервера, и тот, который в основном не рекомендуется в наши дни.
 03 апр. 2015 г., 20:07
@TerryE, Также, пожалуйста, уточните, что такое "suPHP". вариант.
 14 апр. 2012 г., 18:03
@ hakre, извини, да, ты прав. Хит-плацдарм для FCGI. Если OP хочет использовать mod_php5 в конфигурации WAMP, то самый простой способ отладки - это отдельная виртуальная машина
 14 апр. 2012 г., 17:57
.user.ini:"These files are processed only by the CGI/FastCGI SAPI."
 14 окт. 2014 г., 08:21
@hakre, для apache мы можем использовать .htaccess для каждого каталога для указания переменных php / config.

что вам нужны разные настройки для разных сайтов (работающих на одном сервере), как указано в php.ini. Таким образом, вы начинаете вносить изменения в свои php-файлы, используя ini_set () или .htaccess, чтобы переопределить эти настройки. В этом руководстве я расскажу вам, как решить эту проблему с помощью различных настроек php, создав отдельные файлы php.ini для каждого веб-сайта.

Итак, давайте предположим, что у меня есть веб-сайт с корнем документа как / var / www / html / example / с доменом как www.example.com. В целях тестирования вы можете создать небольшой файл в /var/www/html/example/phpinfo.php

<?php
phpinfo();
?>

Теперь бегиhttp://example.com/phpinfo.php он будет отображать текущие настройки php.

Теперь скопируйте файл php.ini из файла /etc/php.ini в ваш / var / www / html / пример.

[root] # cp /etc/php.ini / var / www / html / example # Для пользователей fedora

[chia] $ sudo cp /etc/php5/apache2/php.ini / var / www / example # для Debian и Ubuntu

И теперь нам просто нужен простой трюк, чтобы сообщить apache, где найти настройки php для этого сайта. Вам нужно сделать это небольшое изменение в файле конфигурации.

<VirtualHost 10.24.11.2:80>

ServerName example.com

ServerAlias www.example.com

PHPINIDir /var/www/html/example

</VirtualHost>

PHPINIDir должен быть каталогом, в котором находится файл php.ini.

Перезапустите апач после этого

[root] # служба httpd restart # для систем на базе Fedora / Redhat / CenOS

[chia] $ sudo apache2 restart # для систем на основе Debian / Ubuntu

Ваш ответ на вопрос