下载项目代码 使用git下载:
yum install git
git clone https://github.com/assimon/dujiaoka.git
不使用git下载的话,下载地址:
源码 https://github.com/assimon/dujiaoka
确认php-cli环境
在终端下执行命令:
php -v
正确返回类似以下:
PHP 7.3.16-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar 20 2020 13:51:21) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.16-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.9.3, Copyright (c) 2002-2020, by Derick Rethans
确保你的终端环境支持php-cli
视频:https://space.bilibili.com/412410407?spm_id_from=333.1007.0.0
(PHP + PHPCLI) version >= 7.3
Nginx version >= 1.16
MYSQL version >= 5.6
Redis (高性能缓存服务)
Supervisor (一个python编写的进程管理服务)
Composer (PHP包管理器)
点击【软件商店】->【PHP设置】->【禁用函数列表】 将以下函数删除!!
putenv,proc_open,pcntl_signal,pcntl_alarm
安装
fileinfo、redis、opcache(后期建议安装)
安装过程时间较长
运行目录/public 伪静态laravel5
一、进入网站根目录,将.env.example重命名为 .env
二、编辑.env文件设置数据库连接信息
进入服务器终端,cd 到你的项目根目录,执行以下命令导入sql:
先CD到网站根目录
cd /www/wwwroot/xxx.com安装环境依赖包composer install
导入数据库/www/server/php/73/bin/php artisan dujiao install
后台/admin 账号 密码admin
下单未付款被锁定了
修改邮箱服务.env
*正式上线需修改.env配置里面的APP_DEBUG设置为false
正式上线后一定要将.env配置里面的APP_DEBUG设置为false
配置守护进程:
步骤:【软件商店】->【Supervisor设置】->【添加守护进程】 如图:
软件商店安装Supervisor
设置 启动用户www 网站根目录
网站根目录 + /artisan queue:work下面是教程例子
/www/server/php/73/bin/php /www/wwwroot/xxx.com/artisan queue:work
命令参考:
/www/server/php/74/bin/php /www/wwwroot/dujiaoka/artisan queue:work
名称:随意填写
启动用户:选择www
运行目录:选择程序根目录
启动命令:/www/server/php/你的php版本/bin/php /www/wwwroot/你的网站根目录/artisan queue:work
请注意你自己的php版本和网站根目录。不要瞎抄照着我的写? 注意命令之间的空格。
Supervisor 是一个 Python 写的进程管理工具,有时一个进程需要在后台运行,并且意外挂掉后能够自动重启,就需要这么一个管理进程的工具。在 Laravel 开发中,也经常使用到队列监听,可以配合 Supervisor 来管理 Laravel 队列进程。
Supervisor 的安装
使用 pip 工具进行安装:
sudo pip install supervisor
Ubuntu 系统使用 apt-get
sudo apt-get install supervisor
还有其他的安装方式,请见官网(http://supervisord.org/)
Supervisor 的配置
运行这个命令可以生成一个默认的配置文件:
echo_supervisord_conf > /etc/supervisord.conf
生成成功后,打开编辑这个文件,把最后的 include 块的注释打开,并修改如下:
[include]
files = /etc/supervisor/*.conf
新增的 Supervisor 配置文件放在 /etc/supervisor 目录下,并且以 conf 结尾。
这时我们使用新的配置文件来启动 Supervisor:
supervisord -c /etc/supervisord.conf
如果提示已经有进程在运行,那么先 kill 掉它。
使用 Supervisor 管理 Laravel 队列进程
我们使用 Laravel 队列,会用到 php artisan queue:work 命令,让它监听队列,我们可以通过 nohup 方式让它在后台运行,但是进程如果意外中断是不会自动重启的,所以使用 Supervisor 来监控进程是个很好的方式。
首先在 /etc/supervisor 目录下新增一个 Supervisor 的配置文件,如下:
[program:laravel-worker]
process_name=%(programname)s%(process_num)02d
command=php /usr/share/nginx/html/tanteng.me/artisan queue:work –tries=3
autostart=true
autorestart=true
user=vagrant
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-queue.log
这里 user 填写网站运行进程的用户,如 vagrant,numprocs 表示启动多少个进程来监听 Laravel 队列。
一切就绪后,我们使用如下命令就可以启动队列进程的监听了:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
但是在这一步,发生了错误,提示如下:
laravel-worker:laravel-worker_00: ERROR (spawn error)
laravel-worker:laravel-worker_01: ERROR (spawn error)
laravel-worker:laravel-worker_02: ERROR (spawn error)
laravel-worker:laravel-worker_03: ERROR (spawn error)
laravel-worker:laravel-worker_04: ERROR (spawn error)
laravel-worker:laravel-worker_05: ERROR (spawn error)
laravel-worker:laravel-worker_06: ERROR (spawn error)
laravel-worker:laravel-worker_07: ERROR (spawn error)
经过一番折腾,解决方法是,把 Supervisor 的日志文件,和新增的队列配置文件中的日志文件,用 chown 把用户和组设置为正确的,如本例是 chown vagrant:vagrant file_name,另外把日志文件权限设置为 777.
再次经过上述步骤,成功开启进程管理:
laravel-worker:laravel-worker_00: started
laravel-worker:laravel-worker_01: started
laravel-worker:laravel-worker_02: started
laravel-worker:laravel-worker_03: started
laravel-worker:laravel-worker_04: started
laravel-worker:laravel-worker_05: started
laravel-worker:laravel-worker_06: started
laravel-worker:laravel-worker_07: started
可以看到 Laravel 队列开始正常运行了,这里值得注意的是,如果 Laravel 处理队列的代码更改了,需要重启 Supervisor 的队列管理才能生效。