[CLOSED-SOLVED] php5.3.3 не воспринимает тэг начала кода "<?"
Гость 19 октября, 2010 - 20:05
Доброго всем времени суток!
Столкнулся с траблой после установки php-5.3.3, ставил из дерева portage, никаких затыков при установке не возникло, apache тоже потом запустился без проблем, модуль подгрузил и ни на что не ругался, но php не заработал - все *.php страницы выводятся на экран как обычный текст! Поковыряв и подумав попробовал сделать в консоли
# echo '<? phpinfo(); ?>' | php
результат:
<? phpinfo(); ?>
...как так??
А вот когда сделал
# echo '<?php phpinfo(); ?>' | php
тогда вывод на экране был именно таким, каким и должен быть. Подскажите кто знает, почему перестал работать тэг
"<?"
? И как побороть сию траблу?
P.S. Если сделать то же через apache результат в окне браузера получается такой же
P.P.S не знал, что тут в комментах php тэги работают :)
»
- Для комментирования войдите или зарегистрируйтесь
Думаю, в php.ini можно
Думаю, в php.ini можно включить конструкцию
Спасибо за совет, проверил,
Спасибо за совет, проверил, но к сожалению не помогает, да и по дефолту short_open_tag = On
Хватит говнокодить!!Ставьте
Хватит говнокодить!!
Ставьте
fix by slepnoga :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
А как быть со сторонними
А как быть со сторонними/уже сделанными скриптами? Переписывать прикажете? У меня их несколько сотен на сервере :(
Так как AS IS делаем бекап
Так как AS IS делаем бекап ;) А потом так:
А то потом говорят что php кривой, такой, сякой.. Писать надо правильно :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
Простите пожалуйста, в мане
Простите пожалуйста, в мане сказано, что теги равносильны и должны работать, так что делали всё по чертежу, чтоб было меньше /разговоров/, потому кривой всё равно php остаётся :-P
Но за совет всё равно спасибо, правда я скорее всего не смогу его применить: скрипты не в одном каталоге, а разбросаны по папкам в соответствии с vхостами + еще в mysql дофига хранится, к тому же на сервере не только мои сайты, а фича ради которой обновляюсь нужна только мне, так что на предложение подредактировать скрипты меня скорее всего вместе с php отправят туда, где солнце никогда не светило...
Тема потеряла актуальность,
Тема потеряла актуальность, мне уже не нужно решение... :( Обновление проводилось с единственной целью: в php 5.3 был поправлен баг (точнее, был выпущен патч) с ограничением на размер файла при работе с файлами больше 2 Гб, проверил в консоли - как не работал он с большими файлами так и не работает... А жаль...
UPD: + баг с заголовком Content-Length как я понял, актуален не только для win ибо у меня он тоже обрезается до значения 2147483648 байт
P.S. Если кто нибудь подскажет как можно через readfile() запихнуть в буфер вывода больше 2 Гб поделитесь пожалуйста секретом - буду благодарен безмерно
=-O
*Эмм.. Что же это вы делаете с пхп :)
Вычитывай файл частями и кидай в буфер, но ИМХО правильнее было бы дать прямую ссылку на файл потому как гонять
большие файлы через такую цепочку трата ресурсов.
Working on Gentoo Linux for Asus P535 and Qtopia :-)
Знаю, а что делать...
Знаю, а что делать... Приходится извращаться т.к. дать прямую ссылку - большая проблема: как по идеологическим соображениям так и из за того, что файлы в системе хранятся в кодировке cp1251...
Кидать частями - это интересно, но увы, не умею... Подскажете как?
Например так: // указываем
Например так:
P.S. Чето меня поперло :D
Working on Gentoo Linux for Asus P535 and Qtopia :-)
Увы, не катит... :'-( failed
Увы, не катит... :'-(
Хм ну судя по всему патч не
Хм ну судя по всему патч не вошел в эту версию php
Working on Gentoo Linux for Asus P535 and Qtopia :-)
ln -s кирилический файл $(ls
ln -s кирилический файл $(ls -i "кирилический файл"| awk '{print $1}')
отдавать файлы (тем более большие) через php это верх идиотизма.
qnikst написал(а): ln -s
Рад бы, но там несколько Тбайт инфы, десятки (а может и сотни, не считал) тысяч файлов и инфа постоянно обновляется... В чем главное неудобство, думаю, сами догадываетесь. ...хотя читая ваш пост появилась одна мыслишка, так что спасибо :) сейчас проверю...
Отчасти согласен, а что делать? Можете предложить варианты?
P.S. Чесна гря, уже задумываюсь над тем, чтобы влезть в исходники php, чего очень не хотелось бы...
а что делать? Можете
генерь одноразовые ссылки, отдавай через них нжинксом или апачем ( mod_ftp)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Действительно мысль :) а я
Действительно мысль :) а я как то даже и не задумывался о "динамических" ссылках, ведь имя то им можно дать в чем угодно, хоть латиницей, хоть в utf8. Спасибо идея действительно стоящая! :) И ведь такое несложное решение, а не дошло самостоятельно... :(
ну мой вариант был просто
ну мой вариант был просто предложением, как сделать временную ссылку без каких-либо серьёзных изменений в чём-либо кроме базы данных.
Почему php плохо - потому-что апач и тем более nginx имеюх хорошо отработанные средства отдачи файлов, не запускаются лишние процессы php, не производится лишних действий и использований памяти.
Однако есть проблема: если нужна авторизация, то "нахаляву" её не реализовать. Т.е. у nginx есть возможность использования "защищённых" url, когда он перед тем как отдать файл, запрашивает определённый скрипт на предмет разрешения и по заголовку от него понимает, что делать. Поскольку там используются redirect-ы то по идее и проблему с кириллическими именами можно обойти.
А вообще любое решение, если оно решает задачу уже хорошо. Поэтому если вы научили php отдавать такие файлы, то это хорошо, а дальше уже нужно смотреть на то, нужны ли более удобные (или практичные) реализации.
Ура! Нашел решение "корневой"
Ура! Нашел решение "корневой" проблемы, ради которой и затеял сначала обновление :) Опишу его тут, несмотря на то, что (как говорит товарищ qnikst) это извращение - вдруг кому нибудь пригодится :)
Итак, сначала пересобираем php с изменением CFLAGS
после чего функции fopen(), readfile() и filesize() (а может и еще какие нибудь) начинают корректно работать с файлами > 2 Гб. Источник информации тут и автор сулит серьёзные проблемы с apache после такой сборки, но у меня ни одной проблемы обнаружено не было.
После этих действий уже можно качать через php большие файлы (проверял максимум на 11,2 Гб) но тогда при закачке размер файла будет неизвестен браузеру до её окончания, полосы прогресса так же не будет, а всё из за аналогичного ограничения для заголовка Content-length передаваемого функцией header(). Для того, чтобы она работала правильно, применяем к php этот патч, он для версии 5.3.3 поэтому я, чтобы не возиться с редактированием патча, ebuild'ом и т.п. сделал сперва
затем внёс вручную изменения в нужные файлы - там и дописать то надо всего 3 символа - и затем просто
Вот и всё :) теперь мы не только без проблем качаем большие файлы, но еще и видим их реальный размер :) ... А вообще отчасти я согласен с qnikst: передача файлов таким образом - немного извращение и в дальнейшем я попробую переделать скрипты, чтобы работало через одноразовые ссылки, как посоветовал slepnoga.
Огромное спасибо всем, кто принял участие в обсуждении и помог советами ;-)