服务端部署
宝塔面板部署-1-推荐使用
强烈推荐正式环境推荐使用宝塔面板部署项目,让部署更方便,减少部署出现问题。
服务器环境设置
- 步骤1: 点击【软件商店】->【运行环境】,安装Nginx、MySQL、PHP-8.0。其中Mysql选择5.7版本。
警告
安装软件的时候,使用极速安装,一定要使用PHP8.0和Mysql5.7,否则无法使用。
- 步骤2: 点击【软件商店】->【已安装】,找到PHP-8.0,然后点击【设置】->【安装扩展】,【安装】fileinfo扩展,【安装】redis扩展。
站点部署
- 步骤1: 打开宝塔面板/www/wwwroot目录,上传下载的压缩包,解压压缩包,解压出来的文件夹就是项目目录。
警告
注意项目目录及子目录用户要为www!如果后续步骤出现问题,重新设置一下项目目录及子目录用户为www。
- 步骤2: 点击【网站】->【PHP项目】->【添加站点】,【域名】项填好已解析到本服务器的域名,【根目录】选择上一步解压好的项目目录的server目录,数据库选择【MySQL】,【数据库帐号】项设置好帐号密码,【PHP版本】选择【PHP-80】,点击【提交】。
警告
站点目录要选择server,请勿选择public,选择public会导致宝塔生成配置错误,等后面设置修改回来也无济于事,只能删除站点新添加。
步骤3: 保存好数据库名、用户、密码,下面步骤13需要用到。
步骤4: 找到网站,点击【设置】->【SSL】->【Let's Encrypt】->【文件验证】->【选择域名】->【申请】,申请SSL证书。
步骤5: 点击【网站目录】->【网站目录】,选择解压的项目目下的"server"目录,点击保存。【运行目录】选择"/public"项目,点击【保存】。
步骤6: 点击【伪静态】-选择【thinkphp】,点击【保存】。
程序安装
步骤7: 访问设置的网站,进入程序安装界面,点击【我已阅读同意】。
步骤8: 进入此步骤,对环境进行检测,一般情况,除了【swoole_loader扩展】,其他项都会通过,说明内容可能提示【非线程安全扩展】或【线程安全扩展】,记住说明内容,下面步骤9、10、11需要用到。
步骤9: 打开宝塔文件,进入项目所在的/server/license目录,上一步说明内容如果是【非线程安全扩展】复制swoole_loader80.so文件,如果是【线程安全扩展】复制swoole_loader80_zts.so文件。
步骤10: 打开宝塔文件,进入/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930目录,粘贴文件,统一改名为swoole_loader80.so 。
步骤11: 打开【软件商店】->【运行环境】->【设置】->【配置文件】,在末尾添加
extension = swoole_loader80.so
信息,【保存】。
打开【服务】->【重启】。步骤12: 回到安装界面,然后点击【重新检测】。【swoole_loader扩展】安装好以后,一般情况环境检测通过,直接点击【继续】。
步骤13: 保存的数据库信息设置好数据库,然后设置后台管理员帐号密码,点击【继续】。
步骤14: 程序安装中,完成以后,可以点击【进入管理平台】,使用安装设置的帐号密码登录之前,需要添加授权文件。
步骤15: 购买后源码,发送域名给客服,获取授权文件,添加授权文件到server/license目录,并命名为:my.license ,如果仍无法使用,请联系客服。
访问地址
管理后台地址:http://域名/admin
PC端地址:http://域名/pc
手机端地址:http://域名/mobile
定时任务
提示
定时任务有多种设置方式,选择其中一种即可。
点击【计划任务】,设置任务类型为 【访问URL】、填写任务名称、执行周期设置为【N分钟】【1分钟】,填写以下shell的命令。,其中URL地址为"https://域名/crontab",请以项目实际域名为准,然后【添加任务】。
通用部署-2
如果你非常熟悉PHP项目的部署安装,可以参考一下信息部署项目。不熟悉可参考其他部署方式。
项目入口
项目入口目录:server/public
项目入口文件:server/public/index.php
PHP扩展设置
项目server/license目录有PHP扩展,都是统一个配置扩展,针对不同系统使用。
swoole_loader80.so //linux系统、PHP非线程安全,一般nginx环境使用
swoole_loader80_zts.so //linux系统、PHP线程安全
swoole_loader80_nzts_x64.dll //windows系统、PHP非线程安全,一般nginx环境使用
swoole_loader80_zts_x64.dll //windows系统、PHP线程安全
nginx配置
nginx全配置
server {
listen 80;
server_name demo.likeadmin.cn;
access_log /logs/demo.likeadmin.cnt_access_nginx.log;
error_log /logs/demo.likeadmin.cn_error_nginx.log;
client_max_body_size 5M;
location / {
root chat/server/public;#入口文件目录
index index.html index.htm index.php;
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ /.*\.php/ {
rewrite ^(.*?/?)(.*\.php)(.*)$ /$2?s=$3 last;
break;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME chat/server/public$fastcgi_script_name; #入口文件目录
include fastcgi_params;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
}
nginx伪静态
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?s=$1 last;
break;
}
apache配置
apache伪静态
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
授权
购买后源码,发送域名给客服,获取授权文件,添加授权文件到server/license目录,并命名为:my.license ,如果仍无法使用,请联系客服。
定时任务
使用crontab命令设置以下命令为定时任务,1分钟运行1次,注意,运行用户要和PHP运行用户一致。
php /www/wwwroot/项目/server/think crontab
访问地址
管理后台地址:http://域名/admin
PC端地址:http://域名/pc
手机端地址:http://域名/mobile
本地Docker部署-3
下载安装docker
打开docker官网网站https://www.docker.com/,下载适合自己系统版本的docker桌面端。
MacOS系统M1、M2芯片下载Apple Chip版,Intel芯片下载Intel Chip版。
Windows系统下载Windows版本,安装后,根据软件要求提示安装linux子系统和开启虚拟化。
设置docker镜像
国内下载镜像速度比较忙,可以将镜像设置为国内镜像。
打开docker设置选项【Settings】->【Docker Engine】,其中的配置内容的registry-mirrors的链接设置为国内镜像,点击【Apply && restart】保存并重启。
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]
}
设置docker-compose
①打开项目目录docker/docker-compose文件,此文件为容器的编排。
②ports为端口设置,红色框80为Nginx主机挂载的端口,如果与主机其中程序的端口不冲突,可以不更改。
③ports为端口设置,红色框9000为PHP主机挂载的端口,如果与主机其中程序的端口不冲突,可以不更改。
④ports为端口设置,红色框3306为Mysql主机挂载的端口,如果与主机其中程序的端口不冲突,可以不更改。
⑤image为容器使用镜像,请根据芯片架构选择镜像,使用#注释或者开启其中一个。
⑥ports为端口设置,红色框6379为Redis主机挂载的端口,如果与主机其中程序的端口不冲突,可以不更改。
配置nginx
打开项目目录docker/conf.d/www.chat.host.conf文件,里面Nginx的配置,其中www.chat.localhost为配置的域名,本地部署可以不更改。如果本地部署使用非chrome浏览器访问,请在host文件中解析该域名到127.0.0.1。
启动docker
打开终端,使用cd命令进入,运行docker-compose命令启动容器,如果启动失败,去掉-d
参数,可以显示启动错误信息。
cd chat/docker
docker-compose -p chat up -d
程序安装
警告
设置容器端口的时候p1:p2,p1是主机挂载端口,p2是容器端口。
访问域名时候,如果Nginx容器挂载主机的端口不是80端口,需要加上端口号访问。
安装的时候,Mysql容器设置的容器端口,非主机端口。
docker启动成功后,访问域名,对程序进行安装。
docker环境已配置好PHP扩展等,一般情况下都可以顺利安装。
其中在填写数据库信息的时候,因为是PHP容器和Mysql容器之间的通讯,Mysql的地址填写Mysql容器名,端口填写Mysql容器端口。
定时任务
运行一下命令可以测试定时任务,如果生产环境设置自动运行,去掉-it参数。
docker exec -it /www/wwwroot/项目/server/think crontab
访问地址
管理后台地址:http://域名/admin:端口
PC端地址:http://域名/pc:端口
手机端地址:http://域名/mobile:端口