Статьи

Начало работы с Laravel на Nitrous.io

12 февраля Nitrous.IO, облачная среда разработки, позволяющая мгновенно настраивать виртуальные блоки и использовать их с любой платформы через их Web IDE, наконец, добавила поддержку PHP — то, к чему стремились пользователи.

Вы можете прочитать больше об этом в объявлении , но я думаю, что лучше, если мы продемонстрируем пример и запустим приложение Laravel.

Примечание. В этом руководстве предполагается базовое знание терминалов Unix.

Начиная

Создайте учетную запись на Nitrous.io, если у вас ее еще нет, или перейдите по этой ссылке, чтобы сделать это (полное раскрытие, это дает мне азот — валюту, используемую для вывода в сеть более мощных виртуальных машин). После уточнения вашего профиля я призываю вас зайти в публичные ключи и добавить свой собственный публичный ключ SSH, если вы обычно используете их для соединений SSH и подобных. Подробное руководство доступно на GitHub .

Создание коробки

Давайте зайдем в коробки и нажмем «Новая коробка». Выберите PHP, ближайший к вам регион, и выделите столько ресурсов, сколько пожелаете — вы можете потратить на это весь свой баланс Nitrous, если захотите, — когда вы завершаете работу с боксом, ваш закись возвращается.

После нажатия кнопки «Создать ящик», ваш ящик будет подготовлен — почти как в Vagrant. Вы просто не увидите столько результатов, и это будет намного быстрее.

После этого вас встретит дружественный и смутно знакомый интерфейс, а также вводный файл, который поможет вам настроить остальные.

Вы также можете запустить окно PHP, используя любой другой шаблон, а затем с помощью меню Autoparts -> Install Parts для установки связанных с PHP инструментов, таких как Apache, PHP, MySQL и т. Д. В шаблон окна PHP включены эти части. Если вы теперь используете включенную консоль для вывода версии PHP, вы должны увидеть 5.5.8:

«Детали» — это что-то вроде настраиваемого менеджера пакетов Nitrous, и вы используете его для запуска сервисов и установки деталей. Компоненты также могут автоматически установить WordPress для вас, но кто бы этого хотел?

PhpInfo

Откройте папку рабочей области и создайте файл index.phpwww

 <?php
    phpinfo();

Затем перейдите в Preview -> Port 3000 (по умолчанию). Вы должны увидеть следующий экран PhpInfo в вашем браузере:

Обратите внимание, что другие порты не будут работать, если вы не настроите их таким образом. Первый (3000 SSL) — это расширенная функция, и вам придется заплатить за нее, в то время как все остальные могут быть определены, если вы используете консоль для редактирования httpd.conf

 vim /home/action/.parts/etc/apache2/httpd.conf

Обратите внимание, что вы также можете получить доступ к этим файлам через файловый браузер, просто не забудьте нажать «Показать скрытые» в нижней части файлового браузера. Хотя мне проще пройти через командную строку.

Установка библиотек PECL

Composer нужна библиотека Zip для работы, и установить ее на наш ящик очень просто, согласно инструкциям

 pear config-set php_ini /home/action/.parts/etc/php5/php.ini
pecl config-set php_ini /home/action/.parts/etc/php5/php.ini     
pecl install zip

Чтобы вставить в консоль, не забудьте нажать CTRL + SHIFT + V вместо CTRL + V. Сборка и установка могут занять пару минут, подождите.

Но наличие папки www Почти пахнет общим хостом, не так ли? Давайте про это.

Настройте виртуальный хост

Здесь можно выбрать два пути. Одним из них является определение нескольких виртуальных хостов, как это принято в Apache. Другой — переименование папки wwwpublicworkspace Я не фанат последнего, потому что это накладывает некоторые ограничения на мои готовые приложения, так что давайте перейдем к первому.

Еще раз, войдите в httpd.confvim /home/action/.parts/etc/apache2/httpd.conf

В нижней части файла добавьте следующий блок:

 <VirtualHost *:4000>
    ServerName doesnotmatter
    DocumentRoot "/home/action/workspace/myapp/public"
    ServerAdmin bruno.skvorc@sitepoint.com
        <Directory "/home/action/workspace/myapp/public">
            Options Indexes FollowSymLinks
            AllowOverride All 
            Require all granted
            Order allow,deny
            Allow from all
        </Directory>
</VirtualHost>

Буквально добавьте его в конец файла httpd.conf

Кроме того, в верхней части файла, где написано Listen 0.0.0.0:3000Listen 0.0.0.0:4000 Сделайте это для каждого порта, который вы хотите прослушать.

В качестве альтернативы можно поместить все это в подпапку confighttpd.conf Выбери свой яд, либо работает.

Теперь создайте папку, упомянутую в этой конфигурации.

 mkdir -p /home/action/workspace/myapp/public

Параметр -p Теперь добавьте тот же файл index.phpphpinfo(); содержимое в эту папку. Сокращенная команда, чтобы сделать это это:

 cd /home/action/workspace/myapp/public/
echo "<?php phpinfo();" > index.php

Перезапустите Apache с parts restart apache2

Вы можете настроить другие виртуальные хосты таким же образом.

Установка Composer

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

Теперь, когда мы избавились от виртуальных хостов и можем запускать несколько приложений в одной коробке, если захотим, давайте установим Composer. Мы будем устанавливать его глобально — устанавливать его один раз в каждом приложении абсолютно бессмысленно, особенно на коробках с таким ограниченным пространством на жестком диске.

Ящики Nitrous.io ограничены в том, что вы не можете создавать папки вне вашей домашней папки. Чтобы обойти это ограничение, мы просто установим его в папку внутри нашей домашней папки и добавим указанную папку в $PATH

 mkdir ~/.tools
cd ~/.tools
curl -sS https://getcomposer.org/installer | php
vim ~/.bashrc

После того, как vimmed, отредактируйте .bashrc

 export PATH=$PATH:$HOME/.tools/

Затем перезагрузите файл .bashrcsource ~/.bashrc

Благодаря этому Composer был установлен по всему миру, и вы можете использовать его из любого приложения, которое вам нужно. Попробуйте это, выполнив следующие команды:

 cd /home/action/workspace/myapp
composer self-update

Создание примера приложения Laravel

Композитор, проверь. Виртуальный хост, проверьте. Давайте запустим Laravel, не так ли? К вашему сведению, я выбрал Composer в качестве метода установки Laravel, потому что он полезен гораздо больше, чем просто Laravel, и вам в конечном итоге он понадобится и для других проектов, не относящихся к Laravel.

Во-первых, давайте удалим папку myapp. Composer не будет создавать проект в папке, которая не является пустой, поэтому это позволит начать его с нуля.

 rm -rf /home/action/workspace/myapp

Затем инициируйте команду create-project:

 cd /home/action/workspace
composer create-project laravel/laravel myapp --prefer-dist

Через минуту или две все должно быть загружено. Посещение того же порта 4000 на нашей коробке должно дать нам экран приветствия Laravel.

Следуя инструкциям по быстрому запуску , мы добавляем маршрут закрытия в /testapp/routes.php

 Route::get('test', function()
{
    return 'Test!';
});

Теперь посещение {$URL}:4000/test

Подключение Laravel к MySQL

Давайте сначала проверим, работает ли наша база данных. Попробуйте ввести команду mysql -u rootSHOW DATABASES; изменить базу данных для testUSE test; а затем перечислите таблицы в этой базе данных с помощью SHOW TABLES; (результат должен быть пустым), вы готовы.

Laravel по умолчанию настроен на использование тех же небезопасных настроек, которые использует Nitrous — имя пользователя базы данных «root» без пароля. Таким образом, соединение готово по умолчанию — все, что вам нужно сделать, это изменить имя базы данных в файле конфигурации на «образец», как это мы будем использовать в следующем примере.

Естественно, вы должны изменить свои учетные данные — в MySQL добавьте пользователя, которому разрешено связываться только с определенной базой данных, и добавьте этого пользователя в файл app/config/database.php Прочитайте этот ответ для пользовательских привилегий базы данных. Мы не будем делать это только для демонстрации.

Мы могли бы последовать примеру миграции в кратком руководстве, но я бы предпочел сделать все это за один раз и подготовить образцы данных мгновенно. Чтобы создать sampletest

 wget -O- -q https://gist.github.com/Swader/8994154/raw/9bb8d253f92791de77fa01138febd404a306ccc6/sample.sql | mysql -u root

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

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

В файле routes

 Route::get('test', function()
{
  var_dump(DB::select('select * from test'));
});

Обновляя URL / test, мы получаем вывод базы данных:

Вывод

Эта статья доказала, как просто настроить и запустить конфигурацию Laravel на Nitrous.io. Поиграйте, посмотрите документацию, попробуйте сломать вещи. Если вы это сделаете, просто прекратите и заново создайте окно — это так просто.

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