Intereting Posts
Symfony Circular Reference Exception для Doctrine onFlush Event Listener Service получить список источников данных ODBC в локальном компьютере с помощью PHP Переход к шаблону TWIG Обновить запрос PHP MySQL Codeigniter 2.1.3: sess_destroy () вызывает Неопределенный индекс: session_id и т. Д., Когда «sess_use_database» == TRUE Можете ли вы сказать PHP, чтобы отправлять заголовки (например, 500), когда возникает ошибка? Скрыть div с определенным классом во время загрузки страницы, а затем показать снова после загрузки Ошибка: mysqli :: real_connect (): (08004/1040): Слишком много соединений Paypal Скрытые переменные не работают PHP-клиент для проверки https-сертификатов NGNX + PHP-FPM tmp dir Получить первый месяц месяца для заданного набора дат php form: невозможно обновить базу данных, запрос с множественным соединением Привилегия ZF2 – Как мы можем проверять коллекции в json-данных Динамически вставлять содержимое в pdf-файлы с помощью php

Является ли PHP или Perl правильным выбором для моего веб-проекта?

Я с нетерпением жду некоторых предложений по выбору «правильного» языка (и модулей?), Чтобы реализовать веб-проект из 1 человека (только LAMP, сложность где-то между гостевой книгой и полноценным блогом, разработанная для сайтов с высоким трафиком с 50 000+ показов в день) на основе этих требований:

Для соответствия MVC я уже рассматриваю такие структуры, как Catalyst. Моя единственная проблема в том, что я читал, так это то, что, похоже, требуется собственное серверное приложение. Возможно, эквиваленты PHP имеют лучший способ запуска приложений …?

Отвечая, не просто скажите: «PHP / Perl может делать все это и многое другое», но, пожалуйста, предоставьте небольшую рекомендацию по каждому из этих пунктов.

заранее спасибо

Кэш вывода. Оба языка имеют отличные решения для кеширования.

Веб-сайт: Perl имеет WWW :: Mechanize , лучший такой модуль, который я когда-либо видел.

Объектно-ориентированная обработка мультимедийных файлов: у Perl есть преимущество. CPAN имеет модули для всех видов мультимедийных файлов. PHP, похоже, отсутствует поддержка видеоформатов в частности.

Кодирование: оба должны быть интерпретируемыми для выполнения. Я знаю, что у обоих есть решения, чтобы запутать их, но есть инструменты деобфузии. Я бы рекомендовал просто отказаться от этого, это в основном делает вашу собственную жизнь более трудной.

PS Catalyst не нуждается в собственном веб-сервере, хотя он предлагает специальный сервер для целей разработки . Обычно вы развертываете его с помощью Apache или другого поддерживающего FastCGI веб-сервера.

Я бы рекомендовал против WWW :: Mechanize в качестве искателя и вместо этого использовать Gungho .

Что касается кэширования, он, как правило, зависит от приложения (если только он не «кэширует эту страницу в течение 10 минут»). У вас будет намного легче реализовать его с помощью приложения MVC Perl, чем с PHP. Взгляните на мой несколько умный Angerwhale :: Cache . Вы заметите, что я торгую скоростью для точности здесь – устаревшая страница никогда не будет обслуживаться. Возможно, вы захотите быть более либеральными, и если это так, вы можете отключить приложение из многих запросов. (Например, запустив что-то каждые 5 минут, чтобы обновить статические HTML-страницы).

Catalyst легко выполнит все, что вам нужно. Если вы правильно используете M и V и сохраните C до минимума (как рекомендовано сообществом Catalyst), нет причин для того, чтобы вы не получали требуемую масштабируемость.

Я не знаю, что вы подразумеваете под «кажется, что оно требует своего собственного серверного приложения». Развертывание приложения Catalyst может быть простым

CATALYST_ENGINE=HTTP:Prefork script/myapp_server.pl -p 80 

но он, очевидно, поддерживает и другие варианты.

С помощью Perl вы можете использовать PAR для упаковки своего приложения. Это может упростить развертывание и позволяет использовать модули PAR :: Filter для обфускации. Существует также Apache :: PAR для интеграции PAR с средой mod_perl.

Обновление: ну, как говорится на веб-сайте, PAR является чистым perl (нет компиляции C), поэтому вы можете установить его на любой сервер, на котором вы можете писать файлы. Вы можете загружать модули из файла PAR в свои обычные скрипты perl:

  use PAR; use lib "foo.par"; # the .par part is optional use Hello; # module from the par file. 

Поместите основную часть своей логики в свои модули и используйте простой сценарий запуска, чтобы загрузить их из файла PAR.

Но если вы планируете создать большое сложное приложение, сделайте себе одолжение и получите хост, который либо позволит вам устанавливать модули, либо устанавливать их для вас. Кроме того, используйте mod_perl или FastCgi для ускорения вашего приложения.

У GrokThis хорошие планы. Есть и другие хорошие хосты.

Я думаю, что PHP легко сможет справиться с таким проектом, как сказал Леон, его поддержка мультимедиа может быть не такой хорошей, как perl, но для остальной части она определенно должна быть хорошей.

Множество различных API кеширования и фреймворков для PHP, лично я мог бы рекомендовать CakePHP как очень хорошую структуру, но она довольно громоздка, и решение на заказ может быть лучше.

Лучший веб-паук в PHP, который я использовал, – Sphider .

Не уверен в обработке видео и аудиофайлов на PHP, но для изображений ImageMagick очень хорош.

Множество материалов в php, а также для кодирования, проверяют руководство для этого материала.

Ознакомьтесь с фреймворками MVC Symfony и Cake для PHP. Широко используемый.

Однако имейте в виду, что 50 000 показов звучат много, но это не так. Вам, вероятно, не нужно беспокоиться о кешировании, пока вы действительно не начнете генерировать интенсивный трафик с одновременными пользователями.

Все остальное уже упоминалось. Если ваш сервер заблокирован, ваш исходный код никогда не должен быть изменен – ​​поэтому, если вы не распространяете розничное приложение, я не понимаю, почему вам нужно будет развернуть неизвестность источника. Вы просто добавите дополнительные шаги для внедрения / развертывания и интерпретации вашего сайта / программного обеспечения.

  • PHP-обфускация PHP может быть выполнена с помощью IONCube, но для этого необходим соответствующий модуль на сервере (который не поддерживает хостинг).
  • Для Perl я играл несколько лет назад с компиляторами perl, которые создали Pcode или связали источники с интерпретатором в автономном пакете.
  • Кэш вывода, который вы описываете, звучит как обратный прокси.
  • У PHP нет поддержки видео / аудио, что бы это ни было. Вы должны прибегать к внешним инструментам, таким как FFMpeg или MEncoder, для выполнения внутренней обработки или статистики файлов.