Назад | Перейти на главную страницу

Как заставить Linux-сервер использовать локальный PHP.ini в общей среде?

Я использую среду разделяемого сервера (Dreamhost.com использует Linux / Debian).

Я следовал их инструкциям Вот по настройке локального экземпляра PHP5 в моей учетной записи, чтобы я мог использовать APC (ускоритель php5)

Предостережение: у меня не установлен php5 в корневом каталоге "/ home / php5", как предполагается в инструкциях / сценарии установки.

Скорее у меня он находится в другом каталоге «home / subdir-path / php5», поэтому мне пришлось изменить сценарий, чтобы решить эту проблему.

Я попытался добавить этот каталог в env $ PATH

но когда я использую phpinfo (), я вижу, что он не использует локальные настройки php.ini = [

Приветствуются любые мысли о том, как это исправить.

== ИЛИ ==

Если бы кто-нибудь мог показать мне правильные шаги по настройке собственного экземпляра php5 с fastcgi и APC (кеш / ускоритель php), это было бы не хуже.

Измените инструкции на шаге 4, как показано здесь:

touch ~/subdir-path/php5/php-update.php

И измените этот раздел сценария, включив в него «путь к подкаталогу» (на этот сценарий будет ссылаться команда touch, и он должен включать полный сценарий, как указано в инструкциях):

// Determine the version of PHP to update (4 or 5) based on the directory
$directories = explode('/', dirname(__FILE__));
$directories = array_reverse($directories);
$directory = $directories[0];

switch ($directory) {
    case 'php':
        $php = 'php';
        break;
    case 'php5':
    default:
        $php = 'php5';
        break;
}

// The full paths to the source cgi and ini
$sourcecgi = '/dh/cgi-system/' . $php . '.cgi';
$sourceini = '/etc/' . $php . '/cgi/php.ini';

// Get the HOME environment variable
$home = $_SERVER['HOME'];

// The full paths to the target cgi and ini
$targetcgi = $home . '/' . 'subdir-path' . $php . '/' . $php . '.cgi';
$targetini = $home . '/' . 'subdir-path' . $php . '/php.ini';

Кроме того, на шаге 8 убедитесь, что вы добавили эти псевдонимы в свой собственный каталог, например:

cd ~/example.com
ln -s ~/subdir-path/php5 .

Вам также может потребоваться изменить пути в файлах .htaccess.

Я никогда раньше не работал с DreamHost, но, глядя на вики-страницу, на которую вы ссылались, и принимая во внимание разницу в версиях php-update.php скрипт (0.1.4 против 0.1.7) на шаге 4, похоже, они требуют, чтобы вы внесли необходимые изменения INI в $inimodifications массив находится в строке 73.

// Modifications to be made to the ini file after it is updated
// - If you need to change these then you can do so here, then
//   delete your target ini files and run the script again
$inimodifications = array(
    'output_buffering = 0',
    'post_max_size = 100M',
    'upload_max_filesize = 100M'
);

Учитывая output_buffering, post_max_size & upload_max_filesize все параметры, найденные в файле php.ini, я бы начал с попытки добавить необходимые строки, которые вам нужно изменить, в этот массив, следуя их примерам, и повторите попытку.

Для этого мне пришлось создать оболочку fcgi ..

Вы можете в значительной степени назвать это как хотите

коснитесь php5-mywrapper.fcgi

сделать его исполняемым

chmod + x php5-mywrapper.fcgi

записать в файл =]

pico php5-mywrapper.fcgi

    #!/bin/sh
    export PHP_FCGI_CHILDREN = 3
    exec cgi-bin/php5.fcgi -c path/to/php-ini-dir/

затем я добавил соответствующие обработчики в файл .htaccess и поместил файл .htaccess в каталог домена, который использует fcgi