Я хочу установить composer и PHPMailer в каталог, отличный от корневого каталога моего проекта, поскольку я хочу использовать его в разных проектах.

Мой проект находится в некоторых подпапках в ~/var/www/html/...
Когда я устанавливаю composer и PHPMailer в ~/var/www/, мой скрипт php не может включать файл autoload.php:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
echo "1";
require '~/var/www/vendor/autoload.php';
echo "2"; // it doesn't get here

При установке в тот же каталог, что и файл php, он работает.
(с использованием require 'vendor/autoload.php';)

Что я делаю не так?

0
LinusGeffarth 9 Ноя 2017 в 13:16

1 ответ

Лучший ответ

Я считаю, что проблема в символе «~», который означает домашний каталог. PHP обычно запускается под пользователем www-data, у которого нет домашнего каталога.

Таким образом, вам необходимо указать полный путь, начинающийся с символа «/», или путь относительно вашего проекта.

1
Phantom Lord 9 Ноя 2017 в 10:19