Как установить каталог PHP Imagick root? - PullRequest
0 голосов
/ 07 апреля 2020

Я недавно настроил Imagick для PHP под Apache2.4 в Windows. Теперь проблема в том, что Imagick работает с Сервера Root, а не из Документа Root. Например,

$img=new Imagick("images/img.jpg");

вызывает исключение. Но

$img=new Imagick("htdocs/images/img.jpg");

работает. Здесь htdocs находится внутри Сервера Root. Любые идеи ?

1 Ответ

0 голосов
/ 07 апреля 2020

Используйте __DIR__, который является каталогом, из которого вы запускаете сценарий PHP.

/**
 * When the PHP script is in `/var/www/htdocs/index.php`,
 * this would load `/var/www/htdocs/images/img.jpg`.
 *
 * On windows, a script in `C:\htdocs\index.php` would
 * result in `C:\htdocs\images\img.jpg`, as slashes are turned
 * by PHP automatically.
 */
$img = new Imagick(__DIR__ . '/images/img.jpg');

В качестве подхода к среде c вам не нужно заботиться о Apache. ServerRoot или где PHP установлен. Создайте свой исходный код так, чтобы он был обобщенным c и потреблял переменные окружения, если это необходимо. Когда вы загружаете изображение из вашего проекта, вам ничего не нужно извне . Снаружи = путь к серверу Root, путь к Imagick, ...

...