Rocky Linux 9部署Shlink时PHP缺失pdo_sqlite组件的求助
问题
- 系统环境:Rocky Linux 9(RHEL9),已安装PHP 8,正在自行部署Shlink并遵循官方安装指南操作
- 核心问题:无法找到并安装pdo_sqlite组件,尝试通过
sudo dnf install安装以下包均失败:
pdo_sqlite pdo_sqlite3 php_sqlite php_sqlite3 php8.2_sqlite php8.2_sqlite3 php8_sqlite php8_sqlite3
- 补充报错信息:
- 运行Shlink安装程序时的警告:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib64/php/modules/pdo_sqlite (/usr/lib64/php/modules/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/pdo_sqlite.so (/usr/lib64/php/modules/pdo_sqlite.so: undefined symbol: sqlite3_column_table_name)) in Unknown on line 0- 安装程序完成时的错误:
Error writing to "config/params/generated_config.php": file_put_contents(config/params/generated_config.php): Failed to open stream: No such file or directory
解决方法
处理pdo_sqlite组件问题
- 安装对应版本的正确包:
RHEL系系统中,PHP 8.x的pdo_sqlite包名不是你尝试的格式,需根据安装源选择命令:- 若使用系统默认AppStream仓库的PHP 8:
sudo dnf install php-pdo-sqlite - 若使用Remi仓库安装的PHP 8.2:
sudo dnf install php82-php-pdo-sqlite
- 若使用系统默认AppStream仓库的PHP 8:
- 重启PHP相关服务:
# 重启PHP-FPM(对应版本,比如8.2为php82-php-fpm) sudo systemctl restart php-fpm # 或重启Apache服务(若用Apache部署) sudo systemctl restart httpd - 验证组件加载:
输出php -m | grep pdo_sqlitepdo_sqlite即表示加载正常。
处理文件写入失败问题
- 手动创建缺失的目录:
mkdir -p /你的Shlink安装路径/config/params - 设置正确的权限:
确保PHP运行用户(通常是apache或nginx)拥有目录读写权限:# 假设Shlink安装在/var/www/shlink,用户为apache sudo chown -R apache:apache /var/www/shlink sudo chmod -R 755 /var/www/shlink sudo chmod -R 775 /var/www/shlink/config
内容的提问来源于stack exchange,提问作者SeaswimmerTheFsh
相关产品推荐
相关产品推荐

