-
Apache虚拟主机配置是多站点运行的核心,需通过VirtualHost块设置独立DocumentRoot和ServerName,配合正确权限、PHP-FPM池隔离及SELinux上下文,而非修改PHP本身。
-
需显式配置实现PHP版本信息透传与暴露:一、PHP脚本中用header('X-PHP-Version:'.PHP_VERSION);二、Nginxfastcgi_param注入;三、Nginxmap+add_header硬编码版本;四、日志格式记录响应头;五、Perl/Lua模块动态获取CLI版本。
-
Apache配置PHP后页面空白,通常因PHP错误被静默屏蔽、BOM头、输出缓冲或Apache处理器配置错误所致;应先用phpinfo()确认PHP运行,再依次检查display_errors、error_reporting、UTF-8BOM、output_buffering及AddType/SetHandler配置。
-
Swoole是高性能C扩展,适合中高并发生产环境;Workerman是纯PHP实现,部署轻量、兼容性广,适合快速验证或中小负载场景。
-
用$_SERVER['HTTP_REFERER']判断请求来源不可靠,仅适合轻量级过滤;应结合filter_var校验、parse_url提取host并统一转小写比对,或在.htaccess中用RewriteCond早于PHP层拦截。
-
PHP中全局变量管理有五种方法:一、用global关键字在函数内访问外部变量;二、通过$GLOBALS数组直接读写全局变量;三、用define()定义不可变全局常量;四、用static声明函数内持久化变量;五、用require引入配置文件批量声明全局变量。
-
PHP原生amqp扩展(1.x)不支持发布确认,因其底层librabbitmq-c0.8.x未实现confirm.select协议帧,调用confirmSelect()会报“undefinedmethod”;必须改用php-amqplib并调用confirm_select()和wait_for_confirms()。
-
version_compare()语义正确且安全,仅在纯数字无后缀的极少数场景下比PHP_VERSION_ID略慢;后者虽快但无法处理RC/beta等合法版本,误用将导致逻辑错误。
-
PHP局部变量在函数内直接赋值声明(如$name='alice')即生效,无需关键字;其作用域为整个函数而非代码块,无块级作用域;不支持局部变量类型声明,需靠严格类型模式、注释和测试保障安全。
-
必须指定redis-5.3.7及以上版本并严格匹配TS/NTS、x64/x86、VS16/VS17三项参数,否则扩展无法加载;Windows下需从PECL下载对应DLL,Linux/macOS需用peclinstallredis-5.3.8并确保phpize与php-config同源。
-
400BadRequest多因messages格式错误:必须为含role(仅"system"/"user"/"assistant")和content的数组套数组,缺一不可;PHP中需用json_encode($data,JSON_UNESCAPED_UNICODE)避免中文转义。
-
foreach兼容性底线在于类型校验:PHP5.3–5.6对非法遍历仅发Notice,7.0+抛TypeError,8.0+对未定义变量报Warning并转空数组;安全写法是foreach((array)$dataas$k=>$v)。
-
phpEnv不支持批量删库,需用SQL查询information_schema.SCHEMATA生成DROPDATABASE语句,加IFEXISTS确保安全,执行前须确认库存在、权限足够且无活跃连接。
-
CodeIgniter3的Email类是Library而非Helper,需用$this->load->library('email')加载;SMTP配置必须显式设置protocol、host、port、user、pass、crypto;调试须用print_debugger()查具体错误;charset必须小写'utf-8',HTML邮件需设mailtype='html'并正确编码中文主题。
-
Workerman不存在send_buffer_roll_back错误或回调,该字符串未出现在官方源码、文档或任何稳定版本中;实际应为error2sendbufferfull日志或业务代码/中间件误输出。