сбой mod_wsgi - до Wordpress?

Если у Вас есть (исправленный) дополнительный исходный код локально, можно обойти PECL полностью:

# cd extension_dir
# phpize
# ./configure
# make
# make install

(phpize двоичный файл, который идет с PHP - Он готовит расширение, которое будет скомпилировано, остальное довольно просто).

1
задан 25 March 2013 в 21:14
2 ответа

Это ответ на ваш интерес к альтернативам.

Я разместил Django и WordPress в том же домене, что и Nginx, используя php5-fpm для WordPress и полагаясь на на Nginx X-Accel-Redirect для возврата неопределенных URL-адресов в восходящий поток WordPress .

Конфигурация Nginx начинается с известных шаблонов, которые WordPress должен обрабатывать: индексная страница, несколько страниц содержимого верхнего уровня или разделов верхнего уровня и / или шаблон для сообщений в блогах. Это означает, что большинство URL-адресов WordPress можно перехватить с помощью дюжины или меньшего числа шаблонов URL.

Все остальное направляется в восходящий поток Django.

А как насчет новых страниц или изменений на сайте WordPress? Вместо того, чтобы обновлять шаблоны URL для каждой добавленной страницы или раздела WordPress, приложение Django использует специальный обработчик 404 для перенаправления запроса в восходящий поток WordPress.

def page_not_found(request):
    """
    A 404 view that redirects to the WordPress installation.
    """
    try:
        new_url = Redirect.objects.get(old_path=request.get_full_path())
    except Redirect.DoesNotExist:
        pass
    else:
        return redirect(new_url.new_path)

    if not settings.WORDPRESS_REDIRECT:
        return render(request, "404.html", {})

    response = HttpResponse()
    response['X-Accel-Redirect'] = '/wordpress/'
    return response

При перенаправлении запросов промежуточное ПО перенаправления не «видит» никаких ошибок 404, поэтому, если вы хотите использовать функцию перенаправления, его следует добавить Вот. Расположение / wordpress / определяется как внутреннее расположение в конфигурации Nginx.

  location /wordpress/ {
    internal;
    try_files $uri $uri/ /index.php;
  }

Я написал немного больше об использовании X-Accel-Redirects для этой цели , хотя я понимаю, что это не отвечает на конкретный вопрос.

Надеюсь, это даст вам некоторые идеи о том, что вы могли бы использовать X-Sendfile , чтобы сделать что-то подобное с mod_php и mod_wsgi .

любые ошибки 404, поэтому, если вы хотите использовать функцию перенаправления, ее следует добавить сюда. Местоположение / wordpress / определено как внутреннее расположение в конфигурации Nginx.

  location /wordpress/ {
    internal;
    try_files $uri $uri/ /index.php;
  }

Я написал немного больше об использовании X-Accel-Redirects для этой цели , хотя я понимаю, что это не отвечает на конкретный вопрос.

Надеюсь, это даст вам некоторые идеи о том, что вы могли бы использовать X-Sendfile , чтобы сделать что-то подобное с mod_php и mod_wsgi .

любые ошибки 404, поэтому, если вы хотите использовать функцию перенаправления, ее следует добавить сюда. Местоположение / wordpress / определено как внутреннее расположение в конфигурации Nginx.

  location /wordpress/ {
    internal;
    try_files $uri $uri/ /index.php;
  }

Я написал немного больше об использовании X-Accel-Redirects для этой цели , хотя я понимаю, что это не отвечает на конкретный вопрос.

Надеюсь, это даст вам некоторые идеи о том, что вы могли бы использовать X-Sendfile , чтобы сделать что-то подобное с mod_php и mod_wsgi .

1
ответ дан 3 December 2019 в 21:34

Прочитать:

Используйте метод AddHandler / mod_rewrite.

Если URL не может обрабатываться вашим приложением PHP, поскольку нет соответствующего файла .php, он попадет в ваше приложение WSGI.

1
ответ дан 3 December 2019 в 21:34

Теги

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