Как мне устранить неполадки в локальных средах разработки php и RoR в Mac osx? RoR-сайты не работают

#php #ruby-on-rails #macos #localhost #development-environment

#php #ruby-on-rails #macos #localhost #среда разработки

Вопрос:

У меня возникли проблемы с тем, чтобы мои локальные среды разработки php и rails хорошо взаимодействовали друг с другом в OSX 10.7.

Разработка — это хобби, а я полный новичок. Я использую MAMP для разработки на PHP. Несколько месяцев назад я решил дать RoR ход и настроить среду разработки с помощью Passenger.

Пару недель назад я переустановил MAMP, когда заметил, что не могу получить доступ к сайтам MAMP.

Теперь я не могу получить доступ к сайтам RoR. Я попытался переустановить Passenger. Я все еще получаю сообщение об ошибке «Oops! Google Chrome не удалось найти app.local» при вводе локального URL. Если я перейду на localhost, я получу страницу «Это работает!», Значит, что-то обслуживается.

Я экспериментировал с Pow. Сервер, похоже, работает, если я перейду на localhost, но когда я захожу в приложение, я получаю ошибку rake not found. Странно, поскольку все драгоценные камни работали под управлением Passenger. С тех пор я удалил Pow.

Итак, у меня есть три вопроса.

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

2) Каков наилучший способ настроить локальную среду разработки, чтобы я мог легко переключаться между RoR и PHP? (Я знаю, что виртуализация — это вариант, но предпочел бы не идти по этому пути, если для этого нет очень веской причины).

3) Кто-нибудь может порекомендовать хорошее руководство или источник информации для начинающих по настройке сред разработки? Я прочитал много разных вещей в Интернете, но мне нужно лучше понять основы, то есть понять, где устанавливаются файлы gem и т. Д., Правильное использование файлов bash, macports vs homebrew, passenger vs pow и т. Д.

Спасибо, что нашли время помочь разочарованному новичку.

Энди

Комментарии:

1. Хотя я не использую Mac, я думаю, что это проблема с портом

2. На вашем месте я бы не использовал Passenger для разработки. Я просто использую WEBrick, который поставляется с rails и запускается по умолчанию на порту 3000. Ваше приложение будет доступно через http://localhost:3000/ . Для PHP вы можете использовать MAMP, который работает на порту 80 и, таким образом, будет доступен через http://localhost/ . Если вы запустите свои веб-серверы на разных портах, я не думаю, что у вас возникнут какие-либо проблемы.

3. @mischa спасибо за предложение. В чем преимущества webrick перед mongrel? Изначально я выбрал passenger из-за простоты переключения между приложениями для разработки без перезапуска серверов.

4. Passenger отлично подходит для локальной разработки, если у вас много приложений, над которыми вы работаете. Но огромное преимущество webrick в том, что вы можете использовать отладчик. Для меня это сводит на нет любое удобство, заключающееся в том, что не нужно запускать / останавливать серверы или отслеживать порты для разных приложений. Для разработчиков я бы не стал использовать mongrel против webrick. Просто «rails s» и вперед.

5. @JofoCodin спасибо за совет. Я еще раз взгляну на встроенные серверы. Можете ли вы порекомендовать какие-либо рекомендации по запуску и использованию отладчика?

Ответ №1:

Хорошо, я собираюсь ответить на свой собственный вопрос. У меня есть приложения rails, запущенные локально, но я все еще не уверен, что полностью понимаю, что происходит.

Это то, что я сделал.

Удаленный пассажир

 gem uninstall passenger
  

Удалите предварительную панель пассажира, щелкнув правой кнопкой мыши в настройках системы.

Обновлены все системные жемчужины

 gem update --system
  

cd’d в каталог приложений и обновил все драгоценные камни приложений

 bundle update
  

Переустановленный пассажир

 gem install passenger
passenger-install-apache2-module
  

Перекомпилировал предварительную панель пассажира для OSX 10.7 с помощью xcodebuild и установил.

Удаленные и повторно загруженные приложения для предварительной настройки пароля.

Я не уверен, что это исправлено, но приложения теперь запущены. Это то, что, я думаю, произошло. Каким-то образом конфигурация между Passenger и Apache была повреждена, и переустановка prefpane добавила правильные строки обратно в файл конфигурации Apache.

Проблема в том, что я все еще не знаю, какой клиент установки Apache использует — mac default, macports или MAMP. Я думаю, что это то, что смущало меня раньше, поскольку файл конфигурации, который я проверял, был неправильным.

В качестве побочного продукта я узнал, что некоторые из моих драгоценных камней не были обновлены или отсутствовали зависимости. Это может объяснить трудности, с которыми я столкнулся с Pow. Если это так, то Pow кажется гораздо более простой альтернативой Passenger.

Итак, все запущено, но мне еще предстоит пройти долгий путь, прежде чем я пойму, как работают все эти файлы конфигурации. Я все еще не думаю, что использую установку Apache, которую я предпочел бы использовать!

Редактировать

PS: MAMP также все еще работает для разработки PHP, и я могу легко переключаться между ними, отключив общий доступ к веб-ресурсам в системных настройках и запустив MAMP. Итак, на данный момент все проблемы решены!