Вопрос по .htaccess, php, apache, customization – Пользовательский каталог php.ini (для тестирования сайтов)

2

Я использую 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 является разработкой / тестированием)

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

Ваш Ответ

2   ответа
1

что вам нужны разные настройки для разных сайтов (работающих на одном сервере), как указано в 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

5

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

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

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

Похожие вопросы