1Panel 避坑/使用指南-比1Panel官方教程还有用

   日期:2024-12-27    作者:u11xu 移动:http://mip.riyuangf.com/mobile/quote/65506.html

你应该点击对应网站的配置按钮

image1872×969 80.6 KB

随后点击配置文件

找到类似下面这行

image1872×969 64.1 KB

如果找不到,你可以按下Ctrl + F打开查找,并输入"Strict-Transport-Security"

image1872×969 66.9 KB

输入内容后点击一下next即可自动定位到该行

请重点观察本行是否有"includeSubdomains; preload"的字样,以及max-age等号后的数字是否大于31536000(1年,但推荐63072000

如果未来1Panel更新了其他原生兼容的web服务器(而不是ols这样的社区套壳,请参考此文章来做出对应web服务器的配置修改

WordPress启用HSTS,增强用户信任和网站安全性-风屿岛 (biliwind.com)

请首先尝试将CDN、WAF的上游(回源)服务器配置为https地址

image665×695 15 KB

上图为雷池WAF的示例

如果依然不行,请尝试将此处改为“http可直接访问”

image1872×969 64.2 KB

请仔细检查你的网站根目录中是否含有一个叫做“.user.ini”的文件

image1872×969 80.2 KB

image1872×969 66.6 KB

如果有,删除它,因为它可能包含了错误的执行位置限制路径

可以,你可以在服务器上同时安装1Panel和宝塔,也可以在1Panel中安装宝塔,或者在1Panel中安装1Panel

image1872×969 52.1 KB

但这么做的前提是你已经引入了第三方应用商店

因为宝塔虚拟主机使用了LXD技术,这是宝塔所支持的,但1Panel依赖docker,LXD虚拟化中不能运行docker容器化,所以不支持

但雨云的云服务器、游戏云是支持的,因为其使用了KVM技术

可能是由于未使用的docker镜像占据了大量空间

image1872×969 84.1 KB

以上操作可以释放镜像,但当镜像过多时,1Panel有bug

此bug复现方式很简单,当你所在的页面没有状态是“未使用”的镜像时,点击清理镜像会无效

image1872×969 74.7 KB

临时修复方法是寻找其他分页,找到有“未使用”状态的镜像后再次清理即可清理全部未使用镜像

但是此方法可能会删掉你创建的运行环境镜像

此方法多半由于站点是由反向代理访问的,解决方法是不在服务器上生成证书,而是使用第三方服务生成

此操作在宝塔上并不可行,但1Panel可以这样做

如果你的a应用需要PHP80+扩展X,b应用需要PHP80+扩展Y,但扩展X和扩展Y不支持共存,那么你可以使用两个运行环境

你只需要在创建运行环境时修改镜像名即可

image1872×969 56.9 KB

创建完成后的两个运行环境互相独立,互不影响

根据官方文档介绍,如果你要找的PHP扩展不在扩展选择列表中,可以手动输入然后选择第一个

image1872×969 49.9 KB

如扩展“zip”不在此列表中,我可以手动输入zip并选择第一个

image1872×969 54.8 KB

但如果不在PHP扩展列表中,那么需要手动安装

以魔方财务开心版为例,需要安装一个叫做idcsmart.so的扩展,但其并不在官方的扩展列表中,所以我们需要按照正常流程创建完运行环境和网站,并且在容器页面根据镜像名、容器名以及运行时间来判断哪个是刚刚创建的网站的容器

image1872×969 87 KB

假设这个容器就是要增加自定义插件的容器

image1872×969 79.3 KB

首先要点击容器名

image1872×969 82.1 KB

向下拉,复制MergedDir后面引号中的内容

image1872×969 78.7 KB

访问这个目录,分别点进/usr/local/lib/php/extensions目录中,之后打开里面这个no开头的文件夹

image1872×969 54.2 KB

将自定义扩展上传至此目录

image1872×969 64.3 KB

在对应网站的PHP配置文件行末添加一个引用语句即可

image1872×969 59 KB

一般情况下,需要添加的内容为

 

注意是包含扩展名的全名

也有可能是

 

注意,此路径需要根据实际进行修改,例如此处可以修改为

 

之后重启此容器即可
注意,这种方式添加的扩展会在重建容器后丢失

新手可能会问,这是我网站的访问端口吗?我是需要反向代理这个端口吗

都不是,这是web服务器与PHP通信用的端口,宝塔默认使用套接字连接,所以你压根看不到这个设置,而1Panel使用TCP连接,所以需要这个端口来让PHP与web服务器进行通信

1Panel官方支持且能用的web服务器只有openresty

image1872×969 62.3 KB

虽然官方有ols web服务器,但这东西是从社区搬过来的,并没有做出适配,你需要自己为ols写配置文件、编译lsphp等,1Panel中的任何操作都无法同步进ols中

当然,你可以使用nginx、openresty、tengine等基于nginx(或完全兼容nginx配置文件的web服务器

首先你需要他们的docker镜像,但是我建议使用dockerfile构建一个并加入lua模块

之后找到openresty的docker容器,点击编辑

image1872×969 85.3 KB

之后选择你刚刚构建好的镜像,点击确认完成替换

image1872×969 88.4 KB

其实某些操作并不需要重建,而是使用update语句

证据:未持久化的数据并没有丢失,且更改生效,并且运行时间也正常(没有几秒前启动等明显的重启痕迹

这多数出现在PHP网站项目中或任何1Panel的应用中

这是因为1Panel中的所有docker部署的应用都会默认归为一个名为1panel-network的桥网络中

image1872×969 52.4 KB

并且1Panel在创建数据库等容器时指定了host名,所以需要通过mysql:3306,redis:6379来连接,而不是使用127.0.0.1这样的回环IP,因为回环IP只是相对于运行环境所在容器的,并不是相对于主机的,所以无法建立连接

openresty属于一种特殊的应用,它默认是host网络,即与服务器主机共享一个IP地址,但此共享并不是NAT(网络地址转换)共享IP,而是让容器内的进程直接获得与宿主机相同的网络权限,可以直接占用宿主机的网络端口,直接使用宿主机的IP地址,所以在反向代理时可以使用127.0.0.1

这种问题一般出现在某些项目中,原因是项目的验证逻辑认为mysql并不是一个有效的网络地址,而类似127.0.0.1,example.com才是有效的网络地址,我们可以将mysql的ip地址填进去

image1872×969 67.6 KB

找到你的MySQL容器,即可看到此容器在这个桥网络中的内网IP地址,使用此地址连接即可(但不稳定,易受到外界因素干扰,如容器非正常顺序启动

如果不希望使用此方法,可以将你的应用改为host网络,这样就可以使用127.0.0.1这样的回环IP进行连接(我在赫兹监控上使用的就是这种方法

你很可能将cron目录填写错了

image1872×969 91.3 KB

这虽然是正确的网站目录,但却是从容器中映射出来的,在容器中执行cron时肯定找不到这个路径

正确的方法是使用cron时选择网站所在的PHP容器,并且使用以下的执行命令

image885×667 16.4 KB

 


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号