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项目页面。
停止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 ~]$
以上。