棘手的问题,我不知道SO是否是好空间(也许是AskUbuntu?或SuperUser?)
我在/opt/lampp/
问题,当我需要调用直接bin作为mysqldump
时,我最终调用了我的ubuntu上的默认安装,而不是链接到我的灯泡的那个:
$ mysqldump --user = root test
mysqldump:收到错误:2002:无法连接 通过socket'/var/run/mysqld/mysqld.sock'到本地MySQL服务器(2) 在尝试连接时
如您所见,它会检查/var/run
。
如果我想使用好的,我应该指定路径:
$ / opt / lampp / bin / mysqldump --user = root test
- MySQL转储10.13 Distrib 5.6.21,适用于Linux(x86_64)
我可以在PHP调用中使用完整路径,但我的PHP prod服务器将无法正常工作。
如何将Lampp bin设置为php exec('mysqldump')
使用的默认值?
答案 0 :(得分:0)
你真的有几种选择可以做你想做的事。
您可以创建一个取决于您的环境的配置文件(local,dev,preprod,prod ...)。此文件可以声明一组配置,其中一个是您需要的可执行文件的路径。您的PHP代码将通过检查全局变量(例如$_SERVER
)来了解环境,该变量可以在Web服务器的vhost文件中设置。我认为这是干净的做法。
您可以为可执行文件硬编码路径(让我们说/home/www/mysqldump
)并创建一个带ln -s
的符号链接(如果我没记错,或查看手册页)在您环境的可执行文件/opt/lampp/bin/mysqldump
和/home/www/mysqldump
之间。您必须以这种方式准备所有环境。我认为这有点难看,但速度很快。
我相信还有很多其他解决方案。