LoginSignup
5
6

More than 5 years have passed since last update.

PHP 5.6 + Laravel 5.3用のPHPビルトインサーバ起動スクリプト (php artisan serve)

Last updated at Posted at 2016-10-23

はじめに

Amazon EC2 (Amazon Linux) + PHP 5.6 + Laravel 5.3.11用のPHPビルトインサーバ起動スクリプト、停止スクリプトを作成しましたので以下に記します。

LaravelはPHPビルトインサーバを起動する事で、ApacheがなくてもWebサーバを起動する事が出来ます。Apacheの設定を行わずに、手早くLaravelプロジェクトの表示確認を行いたい便利です。

参考資料

PHPのビルトインサーバで動かしたい
http://recipes.laravel.jp/recipe/51

実行環境

PHP 5.6 + Laravel 5.3.11環境については、以下の手順で作成したAmazon EC2インスタンス(Amazon Linux)を利用しました。

Laravelプロジェクトとして、/var/www/laravel/exampleapp を作成している前提で説明致します。

[ec2-user@example-laravel-server ~]$ cd /var/www/laravel
[ec2-user@example-laravel-server laravel]$ pwd
/var/www/laravel
[ec2-user@example-laravel-server laravel]$
[ec2-user@example-laravel-server laravel]$ laravel new exampleapp
[ec2-user@example-laravel-server ~]$ cd /var/www/laravel/exampleapp
[ec2-user@example-laravel-server exampleapp]$ pwd
/var/www/laravel/exampleapp
[ec2-user@example-laravel-server exampleapp]$ php artisan --version
Laravel Framework version 5.3.19
[ec2-user@example-laravel-server exampleapp]$ 
[ec2-user@example-laravel-server ~]$ php -v
PHP 5.6.26 (cli) (built: Oct  6 2016 19:48:12) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[ec2-user@example-laravel-server ~]$ 

Laravel 5.3のPHPビルトインサーバ起動スクリプト作成

Laravel 5.3のPHPビルトインサーバ起動スクリプトを作成します。

[ec2-user@example-laravel-server ~]$ vi /home/ec2-user/start_laravel.sh
/home/ec2-user/start_laravel.sh
#!/bin/bash

LARAVEL_PROJECT_DIR="/var/www/laravel/exampleapp"
LARAVEL_SERVER_IPADDRESS="0.0.0.0"
LARAVEL_SERVER_PORT="8000"

if [ -d $LARAVEL_PROJECT_DIR ] && [ `ps awux | grep -v grep | grep php | grep $LARAVEL_SERVER_IPADDRESS | wc -l` -eq 0 ] ; then
  echo "start laravel built in server."
  cd $LARAVEL_PROJECT_DIR
  pwd
  php artisan serve --port=$LARAVEL_SERVER_PORT --host=$LARAVEL_SERVER_IPADDRESS &

  sleep 1
  ps awux | grep -v grep | grep php | grep $LARAVEL_SERVER_IPADDRESS
fi 

起動スクリプトに実行権限を付けます。

[ec2-user@example-laravel-server ~]$ chmod 755 /home/ec2-user/start_laravel.sh

Laravel 5.3のPHPビルトインサーバ停止スクリプト作成

今度はLaravel 5.3のPHPビルトインサーバの停止スクリプトを作成します。

[ec2-user@example-laravel-server ~]$ vi /home/ec2-user/stop_laravel.sh
/home/ec2-user/stop_laravel.sh
#!/bin/bash

LARAVEL_PROJECT_DIR="/var/www/laravel/exampleapp"
LARAVEL_SERVER_IPADDRESS="0.0.0.0"
LARAVEL_SERVER_PORT="8000"

if [ `ps awux | grep -v grep | grep php | grep $LARAVEL_SERVER_IPADDRESS | wc -l` -ge 1 ] ; then
  echo "stop laravel built in server."
  kill `ps awux | grep -v grep | grep php | grep $LARAVEL_SERVER_IPADDRESS | awk '{print $2}'`

  sleep 1
  ps awux | grep -v grep | grep php | grep $LARAVEL_SERVER_IPADDRESS
fi

停止スクリプトに実行権限を付けます。

[ec2-user@example-laravel-server ~]$ chmod 755 /home/ec2-user/stop_laravel.sh
[ec2-user@example-laravel-server ~]$ 

Laravel 5.3のPHPビルトインサーバ起動

Laravel 5.3のPHPビルトインサーバ起動スクリプトを実行し、ビルトインサーバを起動してみます。

[ec2-user@example-laravel-server ~]$ ps awux | grep -v grep | grep php
[ec2-user@example-laravel-server ~]$ 
[ec2-user@example-laravel-server ~]$ id
uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)
[ec2-user@example-laravel-server ~]$ pwd
/home/ec2-user
[ec2-user@example-laravel-server ~]$
[ec2-user@example-laravel-server ~]$ /home/ec2-user/start_laravel.sh 
start laravel built in server.
/var/www/laravel/exampleapp
Laravel development server started on http://0.0.0.0:8000/
ec2-user  6325  7.0  3.0 346048 30768 pts/1    S+   22:11   0:00 php artisan serve --port=8000 --host=0.0.0.0
ec2-user  6330  0.0  1.7 334632 17472 pts/1    S+   22:11   0:00 /usr/bin/php-5.6 -S 0.0.0.0:8000 /var/www/laravel/exampleapp/server.php
[ec2-user@example-laravel-server ~]$ 

WebブラウザからLaravel 5.3プロジェクトのページを表示出来る事を確認します。

スクリーンショット 2016-10-23 22.13.28.png

Laravel 5.3のPHPビルトインサーバ停止

Laravel 5.3のPHPビルトインサーバ停止スクリプトを実行し、ビルトインサーバを停止してみます。

[ec2-user@example-laravel-server ~]$ pwd
/home/ec2-user
[ec2-user@example-laravel-server ~]$

[ec2-user@example-laravel-server ~]$ /home/ec2-user/stop_laravel.sh 
stop laravel built in server.
[ec2-user@example-laravel-server ~]$ 
[ec2-user@example-laravel-server ~]$ ps awux | grep -v grep | grep php
[ec2-user@example-laravel-server ~]$ 

以上になります。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6