Пользуюсь хостингом - виртуальная машина минимальной конфигурации (зато root shell). Так простой список use'ов из форумного скрипта исполняется не менее 4 секунд.
Кроме того хостер настоятельно рекомендует использовать nginx вместо Apache в таких условиях. А nginx не умеет CGI в принципе, но умеет FastCGI.
Стал смотреть что надо переделать/добавить.
Кроме очевидного - вставить цикл обработки запросов - наткнулся на следующие проблемы:
PATH_INFO и PATH_TRANSLATED - не поддерживаются. Хотя прописать руками любой environment, естественно, можно. В связи с этим необходимо переписать как минимум get_forum_config и dir2url.
Правильно ли я понимаю, что в процессе нормальной работы форума конфиг не меняется? И тогда его надо читать только раз при запуске. И тогда путь к нему можно задать вообще в командной строке/environement?
Зачем в dir2url передаётся переменная $cgi? Во-первых она там не используется, во вторых она там и так видна. Почему не передать в dir2url конфиг? Уже при первом вызове dir2url он, отчасти, заполнен.
Правило преобразования dir->url можно было бы прописать в конфиге.
Все процедуры, выдающие html пользователю, оканчиваются exit'ом. Мелочь, а неприятно.