Linux系统部署ThinkPHP5+Workerman项目

1 篇文章 0 订阅

前段时间写了一篇PHP通过URL和WebSocket两种方法获取火币K线数据,这个项目的开发调试都在Windows平台下完成的,没在linux平台下运行过,所以今天就来从零开始在一台新的linux服务器上部署相应环境,使该项目能够正常运行。话不多说,下面开始配它。

部署环境

服务器是腾讯云的,系统CentOS7.7,1核2G。安装环境:PHP7.2 + MySQL5.7 + Nginx1.16

一、修改 yum 源

1.更新yum源

yum -y update

2.下载mysql源安装包

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

3.安装mysql源

yum -y localinstall mysql57-community-release-el7-9.noarch.rpm

4.检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

5.修改PHP、Nginx安装yum源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Webtatic:https://webtatic.com
MySQL:https://dev.mysql.com/downloa…

二、安装 Nginx、MySQL、PHP

yum -y install nginx
yum -y install mysql-community-server
yum -y install php72w-devel php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-pdo.x86_64 php72w-mysqlnd php72w-fpm php72w-opcache php72w-pecl-redis

三、配置

1、配置 MySQL
启动MySQL服务

systemctl start mysqld

查看MySQL的启动状态

systemctl status mysqld

设置开机启动:

systemctl enable mysqld
systemctl daemon-reload

MySQL 安装完成之后,在 /var/log/mysqld.log 文件中给 root 生成了一个默认密码
通过下面的方式找到root 默认密码,然后登录 MySQL 进行修改:

grep 'temporary password' /var/log/mysqld.log  # 查找默认密码

登录 MySQL,输入上述查询到的默认密码:

mysql -uroot -p

修改root 默认密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyPass1!';

或者:

set password for 'root'@'localhost'=password('123abc'); 

注:
MySQL5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误
在这里插入图片描述
详见 MySQL 官网密码策略详细说明:https://dev.mysql.com/doc/ref…

添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户

添加远程帐户(请谨慎添加

GRANT ALL PRIVILEGES ON *.* TO 'yourname'@'%' IDENTIFIED BY 'YourPassword@123' WITH GRANT OPTION;

配置默认编码为 utf8:
修改 /etc/my.cnf 配置文件,vim /etc/my.cnf,在 [mysqld] 下添加编码配置,配置完成后重启:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
systemctl restart mysqld    # 重启 MySQL

在这里插入图片描述
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket 文件:/var/run/mysqld/mysqld.pid

2、配置 Nginx
安装完成以后查看自己防火墙是否开启,如果已开启,我们需要修改防火墙配置,开启 Nginx 外网端口访问。

systemctl status firewalld

在这里插入图片描述
如果显示 active (running),则需要调整防火墙规则的配置。

修改 /etc/firewalld/zones/public.xml文件,vim /etc/firewalld/zones/public.xml,在zone一节中增加
保存后重新加载 firewalld 服务:

<zone>
    ...
    <service name="nginx"/>
<zone>
systemctl reload firewalld

在这里插入图片描述
修改 Nginx 配置:

vim /etc/nginx/nginx.conf

在 server {} 里添加:

location / {
    #定义首页索引文件的名称
    index index.php index.html index.htm;   
}

# PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
}

在这里插入图片描述
配置完成重启 Nginx:

systemctl start nginx    # 启动 Nginx

注:本文只是简单配置 Nginx,具体更多配置请自行百度。

设置开机启动:

systemctl enable nginx

3、设置开机启动 php-fpm:

systemctl enable php-fpm
systemctl start php-fpm    # 启动 php-fpm

四、测试
在根目录创建www目录

cd /
mkdir -p www

修改nginx的根目录为/www

vim /etc/nginx/nginx.conf

在这里插入图片描述
配置完成重启 Nginx:

systemctl start nginx    # 启动 Nginx

在 /www/ 文件下创建php文件,输出 phpinfo 信息

cd /www/
vim test.php
<?php
echo phpinfo();
?>
chmod -R 777 test.php

浏览器访问 http://<外网IP地址>/test.php,如果看到 PHP信息,说明安装成功
在这里插入图片描述
到此,服务器上安装环境(PHP7.2 + MySQL5.7 + Nginx1.16)已全部完成,下面开始部署项目到服务器上。

部署项目

一、上传项目

1.服务器安装FTP
先确认服务器是否安装vsftpd

rpm -qa | grep vsftpd

如果没有安装,输入下面命令进行安装

yum -y install vsftpd

安装成功
在这里插入图片描述
修改配置文件,vim /etc/vsftpd/vsftpd.conf,禁止匿名登录
在这里插入图片描述
设置开机启动:

systemctl enable vsftpd

启动vsftpd服务

systemctl start vsftpd

查看vsftpd的启动状态

systemctl status vsftpd

ftp服务器已开启,21端口已有监听
在这里插入图片描述
配置vsftpd用户,启用root用户
修改配置文件,vim /etc/vsftpd/ftpusers,注释掉root
在这里插入图片描述
修改配置文件,vim /etc/vsftpd/user_list,注释掉root
在这里插入图片描述
重启vsftpd服务

systemctl restart vsftpd

2.上传项目文件
在 /www/ 下新建huobiwebsocket目录

cd /www/
mkdir -p huobiwebsocket
chmod -R 775 huobiwebsocket/

使用root的登录密码登录FTP(软件FileZilla),定位到/www/huobiwebsocket/,把本地huobiwebsocket项目的代码上传到服务器。
上传成功之后修改项目文件的相应属性和权限

cd /www/huobiwebsocket/
chmod -R 775 *

3.运行项目
先创建MySQL数据库huobiwebsocket,导入数据库文件/www/huobiwebsocket/huobiwebsocket.sql

mysql -u root -p
CREATE DATABASE `huobiwebsocket` CHARACTER SET utf8 COLLATE utf8_general_ci;
use huobiwebsocket
source /www/huobiwebsocket/huobiwebsocket.sql

进入/www/huobiwebsocket/目录,修改数据库配置文件

cd /www/huobiwebsocket/
vim application/database.php

修改火币K线定时任务相关配置,vim application/cli/controller/TradeKlineHuobi.php
在这里插入图片描述
启动K线定时任务

php TradeKlineHuobi.php start

定时任务启动成功,已连接到外网WebSocket服务器(非火币服务器)并能接收到服务器推送。也可以在外网服务器上面部署huobiwebsocket项目,把vim application/cli/controller/TradeKlineHuobi.php中的$flag变量改为true就能启用连接火币WebSocket服务器(在内网无法连接),这样就可以接受火币服务器的K线推送了,具体请参考huobiwebsocket项目代码。
在这里插入图片描述
到此,任务完成!!!
这次我部署的是纯CLI模式的项目,后续我将写一篇关于怎么部署ThinkPHP5的WEB项目,敬请期待…
如果文章有错误或者不合理的地方,欢迎大家留言指正。写的不好,大家见谅!
各位的「三连」就是小弟创作的最大动力,我们下期见!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值