#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. Итак, на данный момент все проблемы решены!