PHP 5.6 + Laravel 5.3版本的PHP内置服务器启动脚本 (php artisan serve)

首先

因为创建了适用于 Amazon EC2 (Amazon Linux) + PHP 5.6 + Laravel 5.3.11 的 PHP 内置服务器启动脚本和停止脚本,请将其内容如下。

Laravel可以通过启动PHP内置服务器而不需要Apache来启动Web服务器。它非常便捷,可以快速验证Laravel项目的显示,而无需进行Apache的设置。

请参考下列资料。

我想在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
#!/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
#!/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 ~]$ 

以上。

广告
将在 10 秒后关闭
bannerAds