Ошибка PHP при загрузке скрипта в виде простого текста - PullRequest
1 голос
/ 19 февраля 2011

Мне трудно поверить, что этот вопрос раньше не задавался, но я не смог найти что-нибудь подходящее.

Иногда при загрузке довольно большого PHP-скрипта я получаю фатальную ошибку, похожую на что-то вроде:

Ошибка разбора: синтаксическая ошибка, неожиданный конец $ в [file] в строке [line]

Быстрое обновление позже, и ошибка, конечно, исчезает по завершении загрузки. Простое решение состоит в том, чтобы переключить режим передачи моего FTP-клиента на двоичный , но это выглядит немного странно, поскольку сценарий - ASCII.

Я привык загружать файлы ASP.NET поверх простого текста, когда сервер просто ждет завершения передачи, прежде чем доставить страницу.

Какая лучшая практика?

Ответы [ 3 ]

3 голосов
/ 19 февраля 2011

Вы должны перенести свои скрипты в промежуточный каталог на вашем сервере и использовать команды ftp move, чтобы переместить их вживую после того, как они были должным образом протестированы в промежуточном режиме.

1 голос
/ 20 февраля 2011

Если вы развертываете сценарии в реальной среде, вы можете рассмотреть возможность использования rsync.

Это намного быстрее, чем FTP, потому что сначала сравниваются и цель, и источник, и перемещаются только файлы, которыеновее в исходной локации.Это также должно устранить проблемы, которые возникают у вас с большими PHP-скриптами, загружаемыми не полностью.

В качестве альтернативы вы можете использовать rsync для перемещения файлов из исходного местоположения назначения в тестовый каталог в целевой сети.сервер.После этого вы можете запустить rsync на живом веб-сервере для синхронизации файлов из тестового каталога в оперативный.Преимущество здесь в том, что вторая rsync будет почти мгновенной, что еще больше сократит время перезаписи файлов.

Конечно, rsync доступен только на серверах Linux, но Robocopy может быть использован дляаналогичное влияние на среду Windows

0 голосов
/ 19 февраля 2011

Сценарий ломается, потому что не все это находится на сервере, поэтому файл заканчивается в середине скрипта. Вы должны просто набраться терпения и дождаться его загрузки. Если вы находитесь в ситуации, когда вы будете во время этого, пока сервер работает, и пользователи будут получать доступ к этой странице (я, честно говоря, не могу представить, когда это когда-либо произойдет), вы можете просто изменить разрешения, чтобы они не читались веб-сервер во время загрузки, а затем исправьте разрешения после загрузки.

...