在php调用中使用Lampp mysqldump作为默认值

在php调用中使用Lampp mysqldump作为默认值,php,mysql,linux,ubuntu,mysqldump,Php,Mysql,Linux,Ubuntu,Mysqldump,这个棘手的问题,我不知道这是否是一个好的空间(也许是AskUbuntu?或者超级用户?) 我已经在我的ubuntu上设置了Lampp/opt/Lampp/ 问题是,当我需要以mysqldump的形式调用direct bin时,我最终调用的是ubuntu上默认安装的bin,而不是链接到lampp的: $mysqldump--user=root测试 mysqldump:获取错误:2002:无法连接 通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器

这个棘手的问题,我不知道这是否是一个好的空间(也许是AskUbuntu?或者超级用户?)

我已经在我的ubuntu上设置了Lampp
/opt/Lampp/

问题是,当我需要以
mysqldump
的形式调用direct bin时,我最终调用的是ubuntu上默认安装的bin,而不是链接到lampp的:

$mysqldump--user=root测试

mysqldump:获取错误:2002:无法连接 通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器 当尝试连接时

如您所见,它检查
/var/run
。 如果我想使用好的,我应该指定路径:

$/opt/lampp/bin/mysqldump--user=root测试

--MySQL转储10.13发行版5.6.21,适用于Linux(x86_64)

我可以在PHP调用中使用完整路径,但我的PHP prod服务器将无法工作


如何将Lampp bin设置为默认值,供php与
exec('mysqldump')
一起使用?

您确实有多种选择来做您想做的事情

  • 您可以创建一个配置文件,该文件取决于您的环境(local、dev、prepod、prod…)。此文件可以声明一组配置,其中一个是所需可执行文件的路径。php代码将通过检查全局变量来了解环境,例如
    $\u SERVER
    ,该变量可以在web服务器的vhost文件中设置。我认为这是干净的做法

  • 您可以为您的可执行文件(比如说
    /home/www/mysqldump
    )硬编码一个路径,并在您环境的可执行文件
    /opt/lampp/bin/mysqldump
    /home/www/mysqldump
    之间创建一个带有
    ln-s
    (如果我没记错,或者查看手册页)的符号链接。您必须以这种方式准备所有环境。我觉得有点难看,但是很快


我确信还有很多其他的解决方案。

不是我想要的答案,因为它会将代码绑定到我的机器上;我跳到了另一个方向,机器换成了代码。但我现在接受这一点:-/