Что из этих двух проще / быстрее для обработки на сервере Linux с Apache?
А) Символьная ссылка, указывающая на файл php:
file-sym.php ---> file-orig.php
Б) Файл PHP (file-inc.php
) включая другой файл PHP (file-orig.php
) вот так:
Содержимое file-inc.php
<?php
include('file-orig.php');
?>
Любопытно, проводил ли кто-нибудь тесты!
Моя интуиция подсказывает мне, что символическая ссылка будет быстрее, потому что вам придется читать меньше данных при обработке первой ссылки в этой цепочке. Я не уверен, что есть большая разница, попробуйте жать двоих, чтобы увидеть разницу.
А)
Б)
Я думаю, вариант include () хорош для пользователей Windows, так как в их системах не может быть символических ссылок.
Многие администраторы отключают символические ссылки apache по соображениям безопасности и производительности.
В целях повышения производительности просмотрите эту страницу о настройке apache: http://httpd.apache.org/docs/2.2/misc/perf-tuning.html
Везде, где в вашем URL-пространстве у вас нет Options FollowSymLinks или у вас есть Options SymLinksIfOwnerMatch, Apache должен будет выполнить дополнительные системные вызовы для проверки символических ссылок. Один дополнительный вызов для каждого компонента имени файла. Например, если у вас были:
<Directory />
DocumentRoot /www/htdocs
Options SymLinksIfOwnerMatch
</Directory>
и делается запрос на URI /index.html. Затем Apache выполнит lstat (2) на / www, / www / htdocs и /www/htdocs/index.html. Результаты этих lstats никогда не кэшируются, поэтому они будут выполняться при каждом запросе.
Вы можете увидеть, как символические ссылки могут быть экспоненциальной проблемой производительности в зависимости от вашей среды и кода.