前段时间写了一篇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项目,敬请期待…
如果文章有错误或者不合理的地方,欢迎大家留言指正。写的不好,大家见谅!
各位的「三连」就是小弟创作的最大动力,我们下期见!