Назад | Перейти на главную страницу

как установить php SERVER_PORT var на 80, за лаком?

как заставить php читать SERVER_PORT как 80, когда apache слушает 8080, а varnish слушает 80 ??

если мой apache vhost установлен на 8080, SERVER_PORT всегда будет 8080, это меня немного беспокоит, так как во многих частях приложения некоторые ссылки вычисляются с помощью SERVER_NAME и SERVER_PORT вместе, ... так что мне нужно, чтобы php "верил" что SERVER_PORT - 80, поэтому все ссылки будут проходить через лак

Измените настройку следующим образом:

  • apache работает на 127.0.0.1, порт 80
  • varnish работает на 192.168.1.1 порт 80 (где 192.168.1.1 - ваш реальный IP-адрес)

Таким образом, оба демона работают на порту 80. Этот способ работает, только если вам никогда не нужно подключаться к apache извне локального компьютера.

Я добавил поддержку этого в новой версии mod_rpaf @ https://github.com/gnif/mod_rpaf.

Ну, это не чисто ... но на огромной базе кода вы можете рассмотреть возможность использования "auto_prepend_file" через php.ini или .htaccess, в котором вы можете сбросить переменную $ _SERVER. (Видеть: http://php.net/manual/en/ini.core.php )

Но опять же, это не чистое решение ;-)

Я не думаю, что есть какой-то чистый способ сделать это. Есть ли какой-нибудь файл, который должен быть настроен таким образом в каждый сценарий PHP? Если это так, вы можете сделать что-нибудь вроде этого:

$_SERVER['SERVER_PORT'] = 80;