在php调用中使用Lampp mysqldump作为默认值
这个棘手的问题,我不知道这是否是一个好的空间(也许是AskUbuntu?或者超级用户?) 我已经在我的ubuntu上设置了Lampp在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服务器
/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代码将通过检查全局变量来了解环境,例如
,该变量可以在web服务器的vhost文件中设置。我认为这是干净的做法$\u SERVER
- 您可以为您的可执行文件(比如说
)硬编码一个路径,并在您环境的可执行文件/home/www/mysqldump
和/opt/lampp/bin/mysqldump
之间创建一个带有/home/www/mysqldump
(如果我没记错,或者查看手册页)的符号链接。您必须以这种方式准备所有环境。我觉得有点难看,但是很快ln-s
我确信还有很多其他的解决方案。不是我想要的答案,因为它会将代码绑定到我的机器上;我跳到了另一个方向,机器换成了代码。但我现在接受这一点:-/