Linux系统部署ThinkPHP5+Workerman项目
前段时间写了一篇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项目,敬请期待…
如果文章有错误或者不合理的地方,欢迎大家留言指正。写的不好,大家见谅!
各位的「三连」就是小弟创作的最大动力,我们下期见!
Linux系统部署ThinkPHP5+Workerman项目相关推荐
- 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...
阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...
- linux系统部署微服务项目
1.安装Centos7 1.1 官网下载centos7镜像.centos7官网下载地址 1.2 虚拟机安装镜像.(百度,不再赘述) 2.linux系统安装jdk 2.1 下载jdk 链接:https: ...
- linux部署项目文档,Linux系统部署项目
Linux系统部署项目 在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服 ...
- apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!
在 linux 系统部署apache.mysql.Laravel 环境 一.在 CentOS 7.2 服务器下 部署 apache yum clean all --- 功能是:清除系统垃圾 yum - ...
- Linux中部署Spring Cloud项目
Linux中部署Spring Cloud项目 文章为本人在学习的过程中,记录部署过程,仅供参考学习.因本人经验不足,教程或有不妥之处,还望指正. 保姆级教程,敬请食用!!! 简介 在学习过程中,部署时 ...
- Ubuntu下Linux系统部署fisco时bash操作报错权限不足(permission denied) failed to run command ‘........‘
Ubuntu下Linux系统部署fisco时bash操作报错权限不足(permission denied) failed to run command '-' 例如这里就指的是fisco-bcos这个 ...
- 基于Linux系统部署新世纪版五笔输入法
基于Linux系统部署新世纪版五笔输入法 出于工作需要,突然生出学习五笔的想法.五笔有三个版本:86/98/新世纪. 按照新手上路,有新学新的想法,选择了新世纪版. 然后发现了个坑:公司电脑是Linu ...
- linux+jexus 部署.net core项目报500或502错误
linux+jexus 部署.net core项目,出现 502 BAD GATEWAY 或者 返回 500 等 5xx 错误码,表示服务器在尝试处理请求时发生内部错误. 解决方法: 1.确保项目编译 ...
- linux系统部署web项目
十二.Linux下安装软件[重点] 12.1 安装JDK 在Linux下安装JDK,并配置JAVA_HOME环境变量-- 12.1.1 下载JDK的压缩包 去逛网下载压缩包,由于oracle官网更新, ...
最新文章
- cv2.dnn读取模型报错
- 数字线索: F-35单价已低于四代机,其成本控制是如何实现的?
- php pdo 怎么循环,php – 在循环内绑定PDO语句的参数
- 【学习笔记】14、标准数据类型—字典
- JavaScript实现浏览器菜单的一些功能
- Dapr牵手.NET学习笔记:发布-订阅
- 2018-2019-2 网络对抗技术 20165227 Exp4 恶意代码分析
- eclipse New菜单项的显示问题
- LVS_TUN 实验
- 连接共享打印机0xc00000bcb
- Zeppelin0.8.1上操作hive(使用jdbc解释器)
- Full CAN与Basic CAN主要区别
- CF Stressful training优先队列加二分搜答案
- PlatformIO开发之STM32点灯(基于arduino框架)
- 大华linux密码,Linux用户和组的实战练习
- [NOIP] [最短路] NOIP2012Junior 文化之旅 (culture)
- 图论入门六:哥尼斯堡七桥问题
- (转)利用Office里面的OWC组件进行画图
- 【C语言】让你不再害怕指针——C指针详解(经典,非常详细)
- 最新今日头条抢红包福袋脚本下载