php artisan serve stop

revert ‘php artisan serve’ command in laravel

I have a laravel app. I ran ‘php artisan serve’ command for local testing and my app was served at localhost:8000. But now I want to stop serving it at localhost:8000 ie., I want it not to serve now.

I closed the command line, restarted the server but it is still serving. How can it be done?

Note: I am using windows for testing purposes.

10 Answers 10

here is what i do press ctrl + c

to check if the port is busy or not if any process is listening to the port 8000 it will be displayed with port id

kill the process that listen to that port id

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Reopen the command-line and start back the server.

I used Ctrl + C in my mac for stop the command php artisan laravel serve

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

For windows user, type this command for showing the list of current running php artisan process:

Look up PID number (XXXX), and type this to kill the process:

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

When I use cygwin to run my php artisan serve on Windows machine, pressing ctrl + c does not kill the process. To stop it, use @jsalonen’s solution. Basically you are looking for this then kill it:

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Windows 10 with XAMPP server depending on what shell you use to run:

In Windows CMD: CTRL + C
In XAMPP Shell: CTRL + Pause/Break

In Ubuntu and RedHat/CentOS terminal it’s: CTRL + C

Ctrl + Pause|Break should do it for Windows.

If your using VS Code, simply do the following:

This deletes the shell and kills the server.

Источник

Laravel Framework Russian Community

Установка

При помощи установщика Laravel

Поставьте при помощи composer установщик Laravel, лучше глобально:

/.composer/vendor/bin ( C:\Users\username\AppData\Roaming\Composer\vendor\bin в случае Windows) был добавлен в PATH.

При помощи Сomposer

Laravel использует Composer для установки пакетов-зависимостей. Если он еще у вас не стоит, установите его.

Чтобы установить Laravel вам нужно выполнить эту команду в командной строке:

Либо можно скачать архив хранилища с GitHub. Дальше, установите Composer, запустите composer install в корневой папке вашего проекта. Она загрузит и установит зависимости фреймворка.

Разрешение на запись

После установки вам надо открыть для записи папку app/storage со всеми подпапками. См. секцию Установка.

Запуск веб-сервера

Структура каталогов

Маршрутизация

Маршруты также могут быть привязаны к классу контроллера. Например:

Создаём шаблон

Теперь создадим users.blade.php :

Замечательно! Вы создали шаблон маршрута, который наследует разметку страницы (шаблон layout). А теперь перейдём к работе с базой данных.

Создаём миграцию

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

Для создания миграции мы воспользуемся утилитой командной строки Artisan. Выполните следующую команду в корневой папке вашего проекта:

Давайте создадим такую миграцию:

Теперь, когда у нас есть таблица, начнём загружать данные.

Eloquent ORM

Итак, изменим наш маршрут /users :

Посмотрим, что здесь происходит. Сперва мы получаем все записи в таблице ‘users’ через метод ‘all’ модели ‘User’. Дальше мы передаём эти записи шаблону через его метод ‘with’. Этот метод принимает имя переменной и её значение и таким образом делает данные доступными внутри своего кода.

Отлично. Теперь мы готовы к тому, чтобы показать пользователей в нашем шаблоне!

Отображаем данные

Теперь, когда мы сделали переменную ‘users’ доступной для нашего шаблона мы можем отобразить её таким образом:

Примечание: Код выше открыт для XSS-атак. Blade, как и простой код на PHP, не экранирует вывод, поэтому вам нужно следить, чтобы выводимые строки содержали экранированый HTML.

Это только начало. В этом руководстве вы ознакомились с самыми основами Laravel, но у него есть ещё очень много интересных вещей, которые вам стоит узнать. Продолжайте читать документацию и глубже узнавать возможности, предоставляемые Eloquent и Blade. А может вам больше интересны очереди и юнит-тесты. Или же вам хочется размять мускулы с контейнером IoC. Выбор за вами!

Источник

Laravel. Установка, настройка, создание и деплой приложения

Итак, у вас есть желание попробовать или узнать о фреймворке Laravel.

Если вы хорошо знакомы с другими PHP фреймворками — для вас это не составит особого труда, если же нет — это отличный выбор для первого фреймворка.

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Статья очень большая. Рекомендую читать ее полностью во время выходных.

Установка

Установка окружения будет происходить в среде *nix (на сайте так же есть мануал по установке на Windows, плюс к этому вам нужен будет сервер, например WAMP и Git).

Предположим, что у Вас совсем чистенькая ОС. Тогда откройте терминал и введите эти строчки скопируйте и вставьте

Создадим проект laravel в папке habr

Перейдем в созданный проект и убедимся, что все работает, запустив команду php artisan serve

Локальный сервер будет доступен по адресу http://localhost:8000.

Перейдя по адресу http://localhost:8000 вы должны увидеть красивую заставку как в начале поста.

Настройка

Для соединения с базой данных (далее БД) у Laravel есть конфигурационный файл database.php, находится он в папке app/config/.
Сначала создадим БД и пользователя в MySQL

Отлично! У нас есть все данные для доступа к MySQL : пользователь habr с паролем my_password и БД habr на хосте localhost. Перейдем в файл конфигурации БД и изменим наши настройки.

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

В Laravel есть отличные инструменты — Миграции и Построитель Схем.

Во первых создадим таблицу миграций:

Если настройки соединения с БД правильны, то мы готовы создавать миграции и таблицы.
Но перед этим хочу вас познакомить с установкой дополнительных пакетов, которые можно использовать для более эффективного и быстрого создания веб приложения.

Laravel 4 Generators

Мега полезный инструмент — generators от Jeffrey Way. GitHub.

Он добавляет в список artisan много полезных команд, таких как:

Установка пакета

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

Последним штрихом будет занесение в кофигурационный файл app/config/app.php в список провайдеров приложения строки

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

Предположим, что мы создаем некий блог сайт со скидками. Для этого нам нужно:

Набросаем схему таблиц в БД. У меня получилось что-то такое:
php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

За это спасибо generator‘у. Так как все, что я сделал — это прописал 10 строк, кстати, вот и они:

Я надеюсь этот пример использования генератора достаточно наглядно показал, каким образом его использовать и насколько он полезен.

Чего нам еще не хватает — так это некоторых связок между таблицами.

Важно знать! При добавлении foreign key к колонке в таблице нужно убедится, что колонка является unsigned.

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

Взгянув на схему БД видим ситуацию по лучше
php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

На данный момент все ссылки на ресурсы являются открытыми, и по ним можно переходить всем кому угодно.
Допустим, добавим роль admin. По ссылке http://localhost:8000/roles видим следующую картину:
php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Немного о шаблонах и шаблонизаторе Blade в Laravel.
Для файлов шаблонов используется раширение .blade.php. Заглянув в файл app/views/layouts/scaffold.blade.php мы видим

Первым делом подумаем о защите всех ресурсов. Для этого нам нужно ввести авторизацию.

Создадим новый контроллер LoginContoller в папке app/controllers

И добавим для него несколько шаблонов

Hash — это класс шифрования, который использует метод bcrypt, чтобы пароли в БД хранились в зашифрованом виде (Laravel Security).

Метод нашего Контроллера login() авторизирует пользователя по email или username и перенаправляет на страницу, с которой он попал под фильтр авторизации. В случае не совпадения данных, перенаправляет обратно с входящими данными, сообщением о ошибке, но без пароля.

Таким образом у нас есть Контроллер, который отвечает за авторизацию.

Следующим шагом для скрытия всех ресурсов от доступа будет изменение файла app/routes.php, который содержит маршруты приложения.

Ко всем маршрутам, заключенным в Route::group(array(‘before’ => ‘admin.auth’)) будет применятся фильтр admin.auth, который проверяет, является ли пользователь гостем, или нет, и в случае, если является — отправит его на страницу входа. Про фильтры можно почитать тут, а про группировку маршрутов тут. Другой фильтр Route::group(array(‘before’ => ‘un_auth’)) будет проверять, является ли пользователь вошедшим на сайт, и если проверка выполнятся — то он его разлогинивает.

Для нормальной работы изменим файлы логина и регистрации:

Что же, теперь можна заняться ресурсами. Начнем с городов. Первым делом изменим в Модели City правила валидации:

Для удобства перехода между ссылками добавим меню в app/views/layouts/scaffold.blade.php, а так же добавим jQuery и jQuery-UI для будующих нужд

Далее перейдем к редактированию правил валидации в Модели Offer :

Как работают селекты можно глянуть тут Forms & Html (Dropdown Lists). Таким образом мы имеем возможность выбирать из существующих городов и компаний в БД.

Чего нам еще не хватает — так это добавление тегов к скидкам. Тут нам поможет jquery-ui с autocomplete для добавления нескольких значений. Для этого расширим файл с скриптами app/views/offers/create.blade.php:

Последнее, что нам нужно сделать — это изменить логику создания скидок.

Во первых, расширим правило expires, что бы скидка заканчивалась не раньше завтрашнего дня, и не позже, чем через 1 месяц. Далее выделим все id тегов в отдельный массив, проверив их наличие в БД. После идет небольшая проверка, введены ли теги. А под самый конец очень интересный прием: в Eloquent для связки таблиц можна использовать разные отношения (Eloquent Relationships), к примеру, у Модели Offers может быть много тегов, соответсвенно пропишем это в Модели

Осталось изменить файл app/views/offers/index.blade.php

И мы видим отличную картину, которая полностью отображает структуру скидки:
php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Теперь осталось изменить app/views/offers/edit.blade.php, app/views/offers/show.blade.php и метод update в app/controllers/OfferController.php.

Код для app/views/edit.blade.php

Изменим метод update в OfferController :

Далее изменим файл app/views/offers/show.blade.php:

Теперь и после изменения скидки у нас будет красиво выводится ее структура с изображением и всеми реляционными данными.

Главная страница сайта

Настало время наконец то для создания главной страницы сайта.

Для начала создадим новый layout :

А так же файл стилей:

Потом переопределим маршрут главной страницы:

Добавим в HomeController недостающий метод index :

Создадим папку app/views/homeи добавим туда файл index.blade.php, а так же создадим файл _preview.blade.php в папке app/views/offers

Далее нужно добавить поиск скидок по тегам, городам и компаниям. Для этого добавим 3 маршрута в файл app/routes.php сразу же за home :

Теперь добавим недостающие методы в HomeController :

Что бы все это дело заиграло, изменим файл app/views/offers/_preview.blade.php, добавив ссылок:

Кликаем, переходим, скидки сортируются и выводятся в соответствии с критериями.

Теперь сделаем представление для просмотра отдельной скидки:

Для того, чтобы можно было просматривать скидку полностью, добавим маршрут и метод, а так же в конце я добавил форму для комментариев. Для ее работоспособности также нужно добавить маршрут и метод в нужном контроллере:

Далее идет работа с промежуточной таблицей offers для скидки и пользователя. Эту связь нужно указать в Модели Offer

Как видите, мы тут явно задаем таблицу comments как промежуточную, и указываем, что так же в этой таблице содержатся дополнительные колонки body и mark + в этой таблице используются штампы времени (создания и обновления).

Используя проверку, есть ли уже комментарий к конкретной скидке от текущего пользователя (метод contains()), перенаправляем обратно. Если же нет — то прикрепляем новый комментарий от пользователя к скидке с его оценкой и текстом.

Для вывода комментариев на странице скидки изменим немного файл app/views/offers/_show.blade.php

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

Следующим шагом будет распределить права доступа к сайту. Для начала укажем связь между пользователями и ролями:

Далее добавим в админке управление ролями пользователей:

Помним, что в Модель User нужно добавить связь с ролями:

Создадим контроллер UserController :

Создадим папку app/views/users и добавим туда 3 файла:

А так же изменим немного метд index контроллера RolesController

Теперь автодополнение работает.

Далее, для того, что бы у нас с вами не было разбежностей, откатим все миграции и воспользуемся отличным инструментом, который нам предоставляет Laravel — это DatabaseSeeder. С помощью него мы можем наполнить нашу БД какими-то конфигурационными, или стартовыми / тестовыми данными. Для этого сначала создадим класс UsersTableSeeder в папке app/database/seeds:

Логика такова: очищаем таблицу, создаем массив данных и вставляем в БД.

Проделаем то же самое с RolesTableSeeder :

Далее создадим еще один класс Seeder :

Таким образом мы добавили роль admin нашему первому пользователю.

Чтобы очистить БД и заполнить ее нашими начальными данными сначала изменим файл app/database/seeds/DatabaseSeeder.php таким образом:

И для принятия всех изменений запустим через консоль команду (находясь в папке /workspace/php/habr/):

Далее выстроим логику на права. Внесем изменения в Модель User :

Далее изменим файл маршрутов, что бы он соответствовал правам пользования сайтом:

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

Изменим метод login() контроллера LoginController :

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

Изменим немного навигационное меню для администрации:

Отлично — теперь каждой роли будут видны те ресурсы, к которым у них есть доступ.

Emails

Важным аспектом для web приложения является отправка почты.

Laravel использует SwiftMailer для создания писем (Laravel Mail).

Параметр pretend отвечает за то, нужно ли отправлять письма. Если его выставить в true, то оправка писем происходить не будет, но в логах сайта (app/storage/logs) будут сохраняться отчеты об отправке.

Первым делом я хочу, чтобы при регистрации пользователю отправлялось письмо с приветствием, для этого создам шаблон в папке app/views/emails:

Далее изменим метод store() нашего LoginController :

Функция trans() — вспомогательная функция, которая выводит локализированную строку из конфигурации. Можете заглянуть в папку app/lang/en/reminders.php и увидить какие ошибки могут выводиться. Для смены локализации на, допустим, русский язык вам понадобится изменить в файле app/config/app.php значение locale с en на ru и добавить папку app/lang/ru, в которой воссоздать файлы как в папке app/lang/en.

Далее добавим 4 маршрута:

Для перехода на восстановление так же добавим ссылку на странице логина:

А так же недостающие методы в LoginController :

Теперь любой пользователь может восстановить свой пароль.

Добавим еще ссылку для входа и регистрации на сайт на главной странице:

Для того, что бы ограничить вывод на страницах только тех скидок, которые еще не закончились нам понадобится добавить еще один метод в Модель Offer :

Пагинация

Таким образом на одной странице будут выводиться только 15 результатов, и внизу будут переходы по страницам. Количество результатов легко изменяемо — достаточно передать нужное число в метод, например paginate(1) даст 1 результат на страницу.

Ничего вроде сложного в этом нет.

Для удобства так же сделаем и в админ панели.

Последнее, что хочется добавить к сайту — так это вывод последних комментариев на страницах и закладки из скидок, к которым пользователь оставил комментарии.

Начнем с добавления комментариев в каркасе страницы:

А так же создадим сам шаблон comment :

Не забываем добавлять связь между Моделью Comment User и Offer :

А так же вспомогательная функция для сокращения и избавлением от html-тегов комментария.

Осталось добавить закладки для пользователя:

Деплой

Процес регистрации там довольно прост.

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Далее создаем новое приложение.

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

Окружение запущено и работает.

php artisan serve stop. Смотреть фото php artisan serve stop. Смотреть картинку php artisan serve stop. Картинка про php artisan serve stop. Фото php artisan serve stop

fortrabbit замораживает не активные приложения. То, как разморозить приложение можно почитать тут.
Теперь для того, чтобы залить наше приложение на fortrabbit идем в терминал:

После всего, осталось зайти через ssh и запустить миграции. Итак:

Потом введите свой пароль и вы на сервере.
Перейдите в папку htdocs и выполните:

Если настройка БД была правильной — никаких проблем возникнуть не должно.

Для работы с Composer на хостинге можно даже не использовать ssh — достаточно в коммите добавить такой триггер:

Кстати, в своем репозитории на GitHub я добавил еще seeds и картинки для скидок.

Поиграться можно тут: Habra Offers.

Заключение

Надеюсь вам было интересно это читать, и полезно это делать. Laravel — отличный фреймворк для разработки веб приложений разной сложности.

Основные, и даже больше, аспекты я постарался объяснить. И для интереса дам домашнее задание:

Пожалуй неплохие таски, как считаете?

Об авторе
Сбор статистики

Все грамматические ошибки пишите, пожалуйста в личку.

Haters gonna die (Поспорил, что напишу это).

Источник

Php artisan serve stop

I currently host all of my sites in DigitalOcean and use one domain mainly for testings Laravel, what I do is basically delete an recreate the Laravel project every time I want to test something in Laravel, it works fine but what I would like to do is be able to create a new Laravel project, use php artisan serve and then view it in the browser. \n

Is it possible use php artisan serve from your remote server (from DigitalOcean)? If yes, how do I view it in the browser? \n

You’ll have to do some router settings. Forward a port in the router to your pc’s ip and port. \n

What exactly is the context of your question? You might be overthinking something or missing some information. Cause a server calling home is not something you see very often. \n»,»bodyInMarkdown»:»You’ll have to do some router settings. Forward a port in the router to your pc’s ip and port. \r\n\r\nWhat exactly is the context of your question? You might be overthinking something or missing some information. Cause a server calling home is not something you see very often.»,»replies»:[],»user»:<"id":6499,"username":"xsmall","avatar":"\/\/unavatar.now.sh\/github\/xtrasmal","experience":<"award_count":"3","level":11,"points":"54,885","pointsUntilNextLevel":"115">,»achievements»:[],»reported»:null,»profile»:<"github":"xtrasmal","twitter":"xtrasmal","full_name":null,"website":"ilovelaravel.com","bio":null>,»dateSegments»:<"created_diff":"7 years ago">>,»likes»:[«fsdolphin»],»created_at»:»2015-10-12T11:17:59.000000Z»,»links»:<"delete":"\/discuss\/replies\/105997","like":"\/discuss\/replies\/105997\/likes","best_answer":"\/discuss\/conversations\/21671\/best">,»best_answer»:false,»dateSegments»:<"createdDiff":"5 years ago">>,<"id":106002,"conversation_id":21671,"body":"

You don’t say if php artisan serve returns any errors? \n

Assuming it starts correctly you should be blocked from doing anything else in that session until you press control-C \n

Assuming also that you are not running any other web server (apache or nginx) \n

Laravel development server started on http:\/\/503.246.895.41:8125\/ \n \n

Yes I think so, but if you have setup firewall rules on your server it may be dropped? \n

Of course replace host and port with your own. \n

What I’m trying to do is basically stop the page currently being served and serve a different Larval page. \n

Does any one out there know how to stop artisan serve on a remote server? It is serving correclty but I would like to serve a different page. \n

Could not open input file: app\/console\n \n

try killing the process by using ps to show running processes \n

Look for the entry mentioning php and server.php note the pid \n

This is what I see when I run ps \n

PID TTY TIME CMD \n40685 pts\/4 00:00:00 bash \n40685 pts\/4 00:00:00 ps \n \n

This is what I see after pressing ctrl-c \n

. but that’s not a message, the prompt just changes from \n

OK so thats just your bas prompt. Control-c will not work there. \n

Are you logged in as the same user as when you started the php artisan serve since the process does not show up. \n

Yes, I’m logged as the same user. \n

This is what I see; \n

I could kill 9904 and then 9900 will stop on its own \n

I have a feeling that the main reason it got locked had something to do with the way I served the page, this is how I originally did it. \n

and I have a feeling that you don’t have to use the port number as long as you make sure port 8000 is open. This is what I’m using that seem to be working. \n

Please note that besides the port number I also got rid of the =http:\/\/ \n

Again I don’t know if what I’m describing here had something to do with the fact that I couldn’t stop it with ctrl-c or not but that’s my story. \n

Again thanks a lot, you are AWESOME! \n

sudo ufw allow 8000 \n

I had the same problem in Windows that php artisan serve showed a blank page. \n

When I retried it on another port it was showing me the view as expected. \n

Now when you start a CMD (as administrator) you can enter: \n

It will show you what ports are occupied. In my case port 8000 was already taken by PHPStorm. Just try it in case you see a blank page when not expected. \n

In that case you could do: \n

Yes I think so, but if you have setup firewall rules on your server it may be dropped? \n

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *