7.4. css 冗余/废弃样式检查

本文介绍了一个用于检测CSS文件中冗余项的工具——CSS冗余检查器,并提供了详细的安装步骤和使用方法。该工具能够帮助开发者提高网站性能,减少不必要的资源加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://code.google.com/archive/p/css-redundancy-checker/

wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/css-redundancy-checker/source-archive.zip
unzip source-archive.zip
gem install hpricot 
ruby css-redundancy-checker.rb [cssfile] [directory of html files OR .txt file listing urls to use]
		
# vim url.txt
http://www.netkiller.cn/zh-cn/
http://www.netkiller.cn/index.html
http://www.netkiller.cn/zh-tw/index.html

ruby css-redundancy-checker.rb your.css url.txt
		





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

<think>好的,我现在需要帮助用户解决PHP-FPM启动失败的问题,特别是由于libonig.so.4缺失导致的错误。用户之前已经提供了一些相关的系统信息和之前的解决方案,我需要综合这些信息,并结合用户提供的站内引用,给出一个有效的解决方法。 首先,我需要回顾用户之前的问题和我的回答。用户之前尝试通过安装oniguruma库来解决libonig.so.4的问题,但可能遇到了版本不兼容或路径问题。用户现在再次遇到同样的问题,可能需要更详细的步骤或不同的方法。 接下来,用户提供的站内引用中有关于Apache配置、安装ruby-dev和build-essential、Homebrew更新以及C语言函数原型的说明。但这些引用似乎与当前的PHP-FPM问题关联不大,可能需要忽略或仅参考部分内容。例如,引用[2]提到安装build-essential,这可能在某些情况下需要,比如编译PHP时。 用户当前的系统是CentOS/RHEL,因此应使用yum包管理器。我需要确保用户正确安装了oniguruma库,并且库文件路径正确。可能的步骤包括通过EPEL仓库安装oniguruma,创建符号链接,更新动态链接缓存,检查PHP-FPM配置,重新编译PHP等。 另外,用户之前提到的状态码78通常与配置错误或依赖问题相关。需要检查PHP-FPM的日志以获取更多信息,使用journalctl或查看特定日志文件。同时,确保PHP-FPM的端口未被占用,配置文件语法正确。 可能还需要验证动态库的链接情况,使用ldd命令检查php-fpm是否找到正确的库文件。如果库路径不正确,可能需要手动设置LD_LIBRARY_PATH或创建符号链接。 用户可能尝试过安装库但未正确配置,或者存在多个版本冲突。需要指导用户彻底检查安装步骤,确保所有路径和符号链接正确无误。此外,如果用户是从源代码编译PHP,确保在配置时指定了正确的oniguruma路径。 最后,如果所有步骤都失败,可以考虑使用Docker容器作为备选方案,避免系统级依赖问题。用户之前也提到了Docker配置,可能需要进一步说明如何部署PHP-FPM容器。 总结,解决方案应包括安装依赖库、配置检查、服务重启、高级排查步骤以及备选方案,确保覆盖所有可能的问题点,并引用相关的参考资料。同时,生成的相关问题应围绕PHP-FPM的依赖、配置优化和日志分析展开。</think>以下是针对**CentOS/RHEL系统**下PHP-FPM因缺少`libonig.so.4`导致启动失败(状态码78)的系统性解决方案: --- ### 一、核心问题定位 根据错误日志`ERROR: unable to bind listening ...(98)`和状态码78,直接原因是: 1. **`libonig.so.4`动态库缺失**(PHP依赖的正则表达式库) 2. **端口冲突**(如9000端口已被其他进程占用) --- ### 二、解决方案步骤 #### 1. **安装`oniguruma`库** 通过YUM安装(优先): ```bash sudo yum install epel-release -y # 启用EPEL仓库[^1] sudo yum install oniguruma -y # 安装包含libonig.so的库 ``` #### 2. **验证库文件路径** ```bash sudo find / -name "libonig.so*" 2>/dev/null ``` - **预期输出**:`/usr/lib64/libonig.so.4` - **若未找到**,手动创建符号链接(适配版本差异): ```bash sudo ln -s /usr/lib64/libonig.so.5 /usr/lib64/libonig.so.4 # 假设存在.so.5版本[^2] ``` #### 3. **更新动态链接器缓存** ```bash sudo ldconfig ``` #### 4. **检查PHP-FPM依赖关系** ```bash ldd $(which php-fpm) | grep onig # 确认libonig.so.4已正确链接 ``` - **正常输出**:`libonig.so.4 => /usr/lib64/libonig.so.4` --- ### 三、修复PHP-FPM配置 #### 1. **检查配置文件语法** ```bash sudo php-fpm -t # 验证配置正确性 ``` - **关键配置**(`/etc/php-fpm.d/www.conf`): ```ini listen = 127.0.0.1:9000 # 确认端口未被占用 user = apache # 确保用户权限正确 group = apache ``` #### 2. **解决端口冲突** ```bash sudo netstat -tulnp | grep 9000 # 查找占用9000端口的进程 sudo kill <PID> # 终止冲突进程 ``` --- ### 四、重启PHP-FPM服务 ```bash sudo systemctl daemon-reload sudo systemctl restart php-fpm sudo systemctl status php-fpm # 检查服务状态 ``` #### 关键日志分析: ```bash journalctl -u php-fpm -n 50 --no-pager # 查看详细错误日志 ``` - **成功标志**:`ready to handle connections` --- ### 五、高级排查(若问题仍存在) #### 1. **手动指定库路径(临时)** ```bash export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH php-fpm -t # 测试配置是否生效 ``` #### 2. **重新编译PHP(适用于源码安装)** ```bash ./configure --with-onig=/usr # 显式指定库路径[^1] make clean && make && sudo make install ``` #### 3. **使用Docker隔离环境(终极方案)** ```dockerfile FROM centos:7 RUN yum install -y epel-release oniguruma php-fpm COPY php-fpm.conf /etc/php-fpm.d/www.conf EXPOSE 9000 CMD ["php-fpm", "-F"] ``` 构建并运行: ```bash docker build -t php-fpm-custom . docker run -d -p 9000:9000 php-fpm-custom ``` --- ### 相关问题 1. 如何通过`strace`追踪PHP-FPM启动时的系统调用? 2. 如何配置PHP-FPM日志以获取更详细的错误信息? 3. 如何修复因`libssl.so.1.1`缺失导致的PHP扩展加载失败? --- : EPEL仓库提供了大量额外的RPM包,是解决依赖问题的首选途径。 [^2]: 符号链接需确保库版本兼容,若`libonig.so.5`与`.so.4`存在ABI不兼容,需降级安装匹配版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值