nginx не запускает php по местоположению

При использовании Boost Tokenizer escaped_list_separator для CSV-файлов следует знать следующее:

  1. Для этого требуется escape-символ (по умолчанию back-slash - \)
  2. Для этого требуется разделитель / разделитель-символ (по умолчанию запятая,)
  3. Для этого требуется котировочный символ (по умолчанию quote - ")

Формат CSV указанный в wiki, указывает, что поля данных могут содержать разделители в кавычках (поддерживается):

1997, Ford, E350, «Супер, роскошный грузовик»

Формат CSV, указанный wiki, указывает, что одинарные кавычки должны обрабатываться с помощью двух кавычек (escaped_list_separator удалит все символы кавычек):

1997, Ford, E350, «Супер» «роскошный» грузовик "

Формат CSV не указывает, что любые символы обратной косой черты должны быть удалены (escaped_list_separator удалит все escape-символы).

вокруг, чтобы исправить поведение по умолчанию для повышения e scaped_list_separator:

  1. Сначала замените все символы обратной косой черты (\) двумя символами обратной косой черты (\\), чтобы они не были удалены.
  2. Во-вторых, замените все двойные -quotes ("") с одним символом обратной косой черты и цитатой (\ ")

Эта обходная ситуация имеет побочный эффект, что пустые поля данных, которые представлены двойная кавычка, преобразуется в одноточечный токен. При повторении через токены, нужно проверить, является ли токен одиночной кавычкой, и рассматривать его как пустую строку.

Не очень, но он работает, пока в кавычках нет новых строк.

1
задан Evgeny Bagrov 20 February 2019 в 07:39
поделиться

1 ответ

Если вы поместите root /usr/share; в блок server (где был первоначальный оператор root), URI example.com/phppgadmin/ будет работать, как и ожидалось.

Но это также раскрыло бы все содержимое каталога /usr/share, которое вам может не понадобиться.

Вы можете поместить оператор root в location, но вам нужно включить все директивы, необходимые для обработки запроса.

Например:

location ^~ /phppgadmin/ {  
    root /usr/share;
    try_files $uri $uri/ =404;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        include fastcgi_params;
    }
}

Модификатор ^~ позволяет избежать любой неопределенности с URI, заканчивающимися на .php. Подробнее см. в этом документе .

0
ответ дан Richard Smith 20 February 2019 в 07:39
поделиться
Другие вопросы по тегам:

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