-
必须关闭未认证的API接口,因宝塔7.9.x及更早版本默认允许任意IP直接调用GetSystemInfo、ExecShell等高危接口窃取信息或执行命令,已有公开PoC流通;修复核心是关闭裸露接口并启用登录态校验。
-
PHP字符串转日期显示未来时间是因时区处理错误或时间戳符号误用所致,需设置正确时区、避免strtotime解析含时区字符串、校验时间戳正负、使用DateTimeImmutable及标准化输入格式。
-
应使用whereYear()而非手写YEAR()函数,因其自动适配数据库语法、避免索引失效、防止SQL注入及跨库兼容问题;需注意索引优化与范围查询替代方案。
-
phpEnv不提供PostgreSQL安装与管理功能,PostgreSQL需独立安装并配置;PHP连接PostgreSQL前必须启用pgsql扩展、正确配置pg_hba.conf并验证连接返回值。
-
宝塔PHP编译失败“configure:error:xxxnotfound”是因缺少-dev/-devel开发包;链接错误“undefinedreferencetolibiconv_open”需加--without-iconv或指定--with-iconv路径;运行时“errorwhileloadingsharedlibraries”应配置ld.so.conf.d并执行ldconfig;缓存导致重装无效,须清空/src和config.cache后重装。
-
不安全,filter_var()仅适合基础类型校验,不能清洗非法字符;应优先用htmlspecialchars()(显式指定ENT_QUOTES和UTF-8),富文本须用HTMLPurifier等成熟库,数据库只存原始数据、输出时按上下文转义。
-
php.ini里关display_errors是最稳妥的方式PHP8.5没改这个逻辑——display_errors=Off依然是生产环境关闭错误显示的黄金标准。它不依赖代码执行,从请求一开始就不让错误冒出来,连解析错误(ParseError)都不会显示在页面上。找到你的php.ini文件(运行php--ini或phpinfo()查路径)修改两行:display_errors=Off和log_errors=On(必须开日志,否则等于“失明”)error
-
Classnotfound错误主因是命名空间、文件路径与Composerautoload配置三者未对齐;需严格匹配大小写、检查PSR-4映射、执行composerdump-autoload-o、验证文件存在性及权限,并排查Loader::addNamespace或opcache缓存干扰。
-
phpenv是专为CLI设计的PHP版本隔离管理器,通过shims机制按local>shell>global优先级切换版本,不干预Web服务器配置,所有安装、扩展、配置均独立于系统包管理器。
-
必须用composerconfig-g全局配置镜像源,而非改项目composer.json;PHP8.2下下载慢主因是直连不可达的packagist.org,需切阿里云或华为云源并执行clear-cache。
-
phpEnv和phpenv均无法与Nhost配合使用,因二者技术栈无交集:phpEnv是Windows绿色PHP环境,phpenv是PHP版本管理器,而Nhost依赖Docker、Node.js和PostgreSQL,须通过docker-compose独立运行。
-
PDO默认不抛异常,需在构造时通过PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION显式启用;否则execute()等方法仅返回false,try/catch无法捕获。
-
GitHubActions中LaravelCI失败主因是环境未对齐:PHP版本与platform配置冲突、缺失ext-pdo_mysql等扩展、MySQL服务host误配localhost、.env.testing未正确设置DB_HOST=mysql;须用setup-php显式指定版本和扩展,动态生成.env.testing并轮询mysql健康状态。
-
CodeIgniter可作纯后端API服务:需禁用视图自动加载(构造函数调用unset_template())、统一JSON响应结构(封装response()方法并启用JSON_UNESCAPED_UNICODE)、正则配置路由(如$route['api/v1/(:any)']='api/$1')、设置uri_protocol为REQUEST_URI,并适配CSRF(改用Header传Token)与Session(切至database/redis)。
-
宝塔面板删除站点失败时,需依次解除.user.ini锁定、停止Nginx/PHP-FPM服务、强制删除目录、清理数据库残留记录,并可选FTP绕过删除。