Arch Linux 官方仓库不提供 phpMyAdmin,需通过 AUR(推荐 yay)安装,路径为 /usr/share/webapps/phpmyadmin/,Apache 需手动启用配置并解决 mysqli、mbstring 扩展及权限问题。
phpMyAdmin 在 Arch Linux 官源里没有
arch linux 官方仓库(core、extra、community)不提供 phpmyadmin 包。这不是遗漏,是 arch 的维护策略:web 应用类软件通常由用户自行部署,官方更倾向提供底层依赖(如 php、apache、nginx)。
所以你搜 sudo pacman -S phpmyadmin 会报错:error: target not found: phpmyadmin。别试了,直接跳到 AUR。
从 AUR 安装 phpMyAdmin(推荐 yay)
AUR 是 Arch 用户实际安装 phpMyAdmin 的唯一可靠途径。用 yay 最省事(比 paru 更常见,社区支持更稳):
- 先确保已装
yay:yay --version能输出版本号;没装就按官网步骤装好(需先配好base-devel和 Git) - 运行:
yay -S phpmyadmin—— 它会自动拉取 PKGBUILD、检查依赖、编译并安装 - 安装后文件默认放在
/usr/share/webapps/phpmyadmin/,不是/var/www或其他常见 Web 根目录 - 注意:AUR 包不会自动配置 Web 服务器或数据库权限,这步必须手动做
Apache + PHP 配置 phpMyAdmin 访问路径
Arch 的 phpmyadmin AUR 包自带 Apache 配置片段,但默认不启用。你得手动链接:
- 确认已启用
php模块:sudo systemctl restart httpd前检查/etc/httpd/conf/httpd.conf里有LoadModule mpm_event_module modules/mod_mpm_event.so和LoadModule php_module modules/libphp.so - 启用 phpMyAdmin 配置:
sudo ln -sf /etc/webapps/phpmyadmin/apache.conf /etc/httpd/conf/extra/phpmyadmin.conf - 在
/etc/httpd/conf/httpd.conf末尾加一行:Include conf/extra/phpmyadmin.conf - 重启服务:
sudo systemctl restart httpd - 访问
http://localhost/phpmyadmin—— 如果看到 404,大概率是路径别名没生效;如果看到 500,通常是 PHP 扩展缺失(比如没开extension=mysqli或extension=mbstring)
常见报错和权限坑点
装完打不开?八成卡在这几个地方:
立即学习“PHP免费学习笔记(深入)”;
-
mysqli extension is missing:编辑/etc/php/php.ini,取消注释extension=mysqli和extension=mbstring,然后重启httpd -
Wrong permissions on configuration file, should not be world writable!:AUR 包安装后/etc/webapps/phpmyadmin/config.inc.php权限是 644,但 phpMyAdmin 启动时会检查写权限。别改成 777!正确做法是sudo chmod 644 /etc/webapps/phpmyadmin/config.inc.php并确保属主是root:root - 登录页空白或报
session_start(): open(/var/lib/php/sessions/...)权限错误:检查session.save_path在/etc/php/php.ini是否指向/var/lib/php/sessions,再确认该目录存在且属主为http:http:sudo chown http:http /var/lib/php/sessions - 用 Nginx?AUR 包不带 Nginx 配置,得自己写
location /phpmyadmin转发规则,并注意 alias 路径结尾斜杠和 index 文件顺序
phpMyAdmin 本身不处理用户认证,它完全依赖 MySQL/MariaDB 账户。别指望它像 XAMPP 那样给你预设 root 空密码——MariaDB 默认禁用 root 远程登录,本地登录也建议用 mysql -u root -p 先验证通了再说。



















