在 php 调用中默认使用 Lampp mysqldump
Use Lampp mysqldump as default in php call
棘手的问题,我不知道 SO 是否好 space(也许是 AskUbuntu?或 SuperUser?)
我在 /opt/lampp/
的 ubuntu 上设置了我的 Lampp
问题,当我需要调用 direct bin 作为 mysqldump
时,我最终调用了 ubuntu 上默认安装的一个,而不是链接到我的 lampp 的那个:
$ mysqldump --user=root test
mysqldump: Got error: 2002: Can't connect
to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
when trying to connect
如您所见,它会检查 /var/run
。
如果我想用好的,我应该指定路径:
$ /opt/lampp/bin/mysqldump --user=root test
-- MySQL dump 10.13 Distrib 5.6.21, for Linux (x86_64)
我可以在我的 PHP 调用中使用完整路径,但是我的 PHP prod 服务器将无法工作。
如何将 Lampp bin 设置为 php 和 exec('mysqldump')
使用的默认值?
你确实有多种选择来做你想做的事。
您可以根据您的环境(本地、开发、预生产、生产...)创建一个配置文件。该文件可能声明一组配置,其中之一是您需要的可执行文件的路径。您的 php 代码将通过检查一个全局变量来了解环境,例如 $_SERVER
,它可以在您的网络服务器的 vhost 文件中设置。我认为这是干净的做法。
你可以为你的可执行文件硬编码一个路径(比如说/home/www/mysqldump
)并创建一个符号link和ln -s
(如果我没记错的话,或者检查手册页)在您环境的可执行文件 /opt/lampp/bin/mysqldump
和 /home/www/mysqldump
之间。您必须以这种方式准备所有环境。我觉得有点丑但是很快
我相信还有很多其他解决方案。
棘手的问题,我不知道 SO 是否好 space(也许是 AskUbuntu?或 SuperUser?)
我在 /opt/lampp/
问题,当我需要调用 direct bin 作为 mysqldump
时,我最终调用了 ubuntu 上默认安装的一个,而不是链接到我的 lampp 的那个:
$ mysqldump --user=root test
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
如您所见,它会检查 /var/run
。
如果我想用好的,我应该指定路径:
$ /opt/lampp/bin/mysqldump --user=root test
-- MySQL dump 10.13 Distrib 5.6.21, for Linux (x86_64)
我可以在我的 PHP 调用中使用完整路径,但是我的 PHP prod 服务器将无法工作。
如何将 Lampp bin 设置为 php 和 exec('mysqldump')
使用的默认值?
你确实有多种选择来做你想做的事。
您可以根据您的环境(本地、开发、预生产、生产...)创建一个配置文件。该文件可能声明一组配置,其中之一是您需要的可执行文件的路径。您的 php 代码将通过检查一个全局变量来了解环境,例如
$_SERVER
,它可以在您的网络服务器的 vhost 文件中设置。我认为这是干净的做法。你可以为你的可执行文件硬编码一个路径(比如说
/home/www/mysqldump
)并创建一个符号link和ln -s
(如果我没记错的话,或者检查手册页)在您环境的可执行文件/opt/lampp/bin/mysqldump
和/home/www/mysqldump
之间。您必须以这种方式准备所有环境。我觉得有点丑但是很快
我相信还有很多其他解决方案。