Запись в файл на общий диск с сервера Apache PHP [дубликат]

Если вы не хотите вносить какие-либо изменения в свой текущий запрос, выполните следующие шаги -

  1. vagrant ssh в поле
  2. Тип: sudo vim /etc/mysql/my.cnf
  3. Прокрутите вниз до конца файла и введите A, чтобы войти в режим вставки
  4. Скопируйте и вставьте
    [mysqld]
    sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    
  5. Тип esc, чтобы выйти из режима ввода
  6. Введите :wq, чтобы сохранить и закрыть vim.
  7. Введите sudo service mysql restart, чтобы перезапустить MySQL.
7
задан KingCrunch 16 January 2013 в 22:59
поделиться

2 ответа

Для сетевых ресурсов вы должны использовать имена UNC: «//server/share/dir/file.ext"

Если вы используете IP-адрес или имя хоста, он должен работать нормально:

$isFolder = is_dir("\\\\NAS\\Main Disk");
var_dump($isFolder); //TRUE

$isFolder = is_dir("//NAS/Main Disk");
var_dump($isFolder); //TRUE

$isFolder = is_dir("N:/Main Disk");
var_dump($isFolder); //FALSE
4
ответ дан Lawrence Cherone 25 August 2018 в 12:44
поделиться

Вы не можете сделать это, используя букву диска, так как сетевые диски с подключением к сети предназначены только для одного пользователя и поэтому не могут использоваться службами (даже если вы должны установить его для этого пользователя).

Вместо этого вы можете напрямую использовать UNC-путь, например:

fopen('\\\\server\\share\\text.txt', 'r');

Обратите внимание, однако, что существует несколько проблем с доступом к файловой системе PHP для UNC-путей. Одним из примеров является ошибка , которую я подал для imagettftext , но есть также проблемы с file_exists и is_writeable. Я не сообщил об этом последнему, потому что, как вы можете видеть из моей давней ошибки с imagettftext, в чем смысл.

12
ответ дан Rudi Visser 25 August 2018 в 12:44
поделиться
Другие вопросы по тегам:

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