Вот здесь я уже писал, об особенностях работы PHP в режиме FastCGI. Недавно обнаружил еще один глюк, который поначалу принял на счет этой «связки». Как оказалось проблема крылась именно в CodeIgniter.
Суть проблемы. У меня на сайте пагинация страниц. Поскольку главная страница имеет тип «home», то ссылки на страницы формируются в виде «сайт/home/next/2». И вот эта штука напрочь отказывалась работать - постоянно выходило сообщение, что страница не найдена (404).
Обнаружилось, что неверно работает $this->uri->segment_array() - он упорно исключал из первого сегмента URI «home». Перепробовав всевозможные варианты, полез в URI.php и выяснилась интересная деталь.
В режиме, когда $config['uri_protocol'] = "REQUEST_URI" происходит парсинг $_SERVER['REQUEST_URI'], что вполне логично. Но вот в конце этого парсинга (функция _parse_request_uri) получает реальный путь на сервере и сравнивает с полученным REQUEST_URI и берет только ту часть, которая несовпадает. Так вот, на сервере путь начинается с «home» и первый сегмент тоже начинается с «home». Вот функция и удаляет её. :)
Я не стал сильно разбираться в смысле этих манипуляций, просто закоментировал строки:
# $parsed_uri = implode("/", array_slice($parsed_uri, $i)); $parsed_uri = implode("/", $parsed_uri);
После этого все заработало.
Комментариев: 7 RSS
1puika10-05-2008 17:49
Привет,свою разработку будешь выкладывать в свободный доступ или как Клиент для WordPress будет платный?ФКлиент кстати я у тебя купил,но не пользуюсь,на это есть свои причины.Хотелось бы услышать ответ,кстати удачи в разработке,дело не благодарное-она тебе пригодится.Время ссесии увеличь,люди не роботы-быстро не пишут.
2Максим11-05-2008 20:38
Система будет открытой. Сейчас не выкладываю по причине того, что еще сам нахожу некоторые неточности, а также переделываю некоторые вещи. Например визуальный редактор только что доделал. Пока все эти мелочи не подчищу, смысла выкладывать просто не вижу.
3Wave15-05-2008 21:50
MaxCMS интересна тем, кто пишет на CI. Когда фреймворку не хватает CMS над ним...
Вобщем, а предположительно, когда плюс-минус будет выкладываться система?
В конце-концов, те, кто сами пишут на фреймворке, вполне могут допилить недостающие им части.
P.S. Оно мне только что сказало "ошибка сессии, обновите страницу". Мама, что это было?
4Максим16-05-2008 10:06
У меня в todo еще 20 пунктов. В день уходит на 1-2, больше не получается. Но я уже принял решение, что до 1 июня выложу ту версию которая будет на на тот момент. В принципе сама система работает, но некоторые мелочи нужно всё-таки доделать.
Расчитывать на то, что кто-то придет и будет доделывать, я не хочу. Сам не люблю в чужом коде ковыряться, думаю, что у других такое же мнение.
ps Сессия просто истекла. Время обновения сессии стоит 15 минут. По идее должно хватить для написания комментария.
5Вадим17-05-2008 23:06
1 июня - ура!
Дело вообще-то в том, что я уже более-менее разобрался с Codeigniter и в случае чего могу писать под него плагины, но очень мало разобрался с drupal и wordpress (их кодом) - в случае чего мне или обходиться стандартными (модифицировать оные только за счёт общего владения php), или тратить время на разбирательство с API drupal\wordpress (что сделать вобщем-то планирую).
Учитывая, что на друпале\вордпрессе с уже существующими плагинами можно решить очень большое количество задач, к тому же быстрее, чем решать их на голом фреймворке, а также учитывая тяжеловесность вордпресса и друпала и нерешаемость ими каких-то нестандартных задач - я очень рад появлению cms на codeigniter. Думаю, небольшие проекты на MaxCMS делать будет удобно. Каждой задаче свой инструмент.
6Максим18-05-2008 10:13
Я думаю, что у меня плагины немного проще делать. Во-первых за счет более четких тербований, именований, а во вторых - там практически чистый PHP, а следовательно ограничений системы будет минимум. По сути у меня плагин - это просто подключаемый php-файл.
7bvn31-08-2009 13:14
А я люблю ковыряться в чужом коде, если этот код мне нравится... считаю, что так можно почерпнуть много полезного. Я пока только изучаю CI, попутно и maxsite - хочу заюзать его для своего блога, но мне не хватает уверенности, что я смогу его потом под свои нужды дорабатывать... Как-то он, ИМХО, не так работает, как в документации на CI предполагется... И еще в URI.php какие-то символы типа нестандартные... не знаю, PHPeD ругается, предлагает сделать транслитерацию, а когда я жму "Cancel", то и вовсе валится... трик однако :)