-
Apache多端口下RewriteEngine不生效的典型现象是:新增端口(如8080)的VirtualHost中未显式启用RewriteEngineOn且未配置AllowOverrideAll,导致.htaccess重写规则完全静默失效,表现为404或暴露真实路径。
-
PHP8.0+已彻底移除内置xmlrpc扩展,无法通过php.ini启用;推荐使用thecodingmachine/xml-rpc或phplang/xmlrpc等纯PHP库替代,仅依赖已启用的ext-xml和ext-simplexml。
-
需在模型中设置protected$createTime='created_at';protected$updateTime='updated_at';并确保protected$autoWriteTimestamp=true;同时字段必须在$schema中声明或表结构存在,否则时间戳不会写入。
-
XAMPP的httpd-vhosts.conf本身不支持多端口,真正生效需在httpd.conf中配置Listen指令并确保Include行未被注释;否则即使VirtualHost写对也无法访问。
-
ReflectionClass::getShortName()直接返回不带命名空间的类名,适用于PHP5.3+,对匿名类返回空字符串,需配合isAnonymous()判断;传入ReflectionClass构造函数的类名必须为完全限定名(FQN),推荐使用ClassName::class获取。
-
cURL默认超时为0(永不超时),需显式设置CURLOPT_TIMEOUT和CURLOPT_CONNECTTIMEOUT;file_get_contents()超时须通过stream_context_create()配置,与php.ini设置无关;PHP-FPM和Nginx层超时会优先触发终止。
-
MySQL默认排序规则在phpEnv的MySQL\my.ini文件[mysqld]段中修改,添加character-set-server=utf8mb4和collation-server=utf8mb4_unicode_ci并重启服务。
-
Laravel中不存在“EloquentAttributeDataMeshStates”概念,实际需求是用Eloquent访问器/修改器结合状态字段(如status)实现集中、可扩展的状态管理。
-
应替换宝塔面板自签名证书为受信IPHTTPS证书,方法包括:一、用acme.sh为公网IP申请Let'sEncrypt证书;二、手动覆盖SSL目录证书文件;三、通过面板内置SSL功能申请;四、导入自签名证书至本地信任库。
-
需同步调整PHP、Web服务器及宝塔前端三处限制:一、修改PHP的upload_max_filesize和post_max_size为512M并重启;二、Nginx加client_max_body_size512M,Apache加LimitRequestBody536870912;三、修改/database.js中maxSize为536870912并强制刷新;四、超大文件建议用mysql命令行导入。
-
PHP核心语言中不存在VIEW常量,它通常由框架或开发者通过define()或const自定义,用于解耦模板路径,但需注意路径安全校验与环境兼容性。
-
Swoole4是协程用于真实业务的分水岭,因它修复了Swoole3在__destruct等场景调用协程导致崩溃的问题,采用双栈模型解耦协程与ZendVM,支持安全嵌套调度及内置连接池,而Swoole3存在调度语义、连接复用和兼容性等根本缺陷。
-
PHP探针本身不支持批量检测,需通过外部脚本并发请求已知公开探针URL(如/phpinfo.php),解析响应中的“PHPVersion”等特征来识别有效站点。
-
date_default_timezone_set()设置上海时区最直接PHP默认不自动识别系统时区,date()、strtotime()等函数全靠它驱动。想让时间显示为上海(东八区),必须显式调用date_default_timezone_set(),不能只改php.ini或依赖服务器配置。常见错误是写成date_default_timezone_set('CST')——这在PHP里指美国中部时间,不是中国标准时间;也有人试'PRC',虽旧版兼容但已废弃,PHP8+可能警告。
-
用关联表user_message_reads实现跨端已读同步,PHP通过INSERTIGNORE原子写入,Redis缓存未读ID并强一致失效。