我有一个预装了 PHP、Apache2 和 MySQL 的自定义虚拟机基础盒。所以我可以使用这个盒子启动虚拟机,它不需要从 Chef Cookbooks 安装上述任何内容。
但是,我正在尝试安装一本 Chef Cookbook,但它失败了。我尝试安装的 Cookbook 运行一个 PHP 脚本,该脚本连接并使用 MySQL 数据库。
它失败的原因是因为PHP无法连接到mysql服务器。我认为这是因为在脚本尝试连接时 MySQL 尚未启动(或准备好)。它仅在我启动 VM 时失败。当我提供它(流浪者提供)时,它可以工作。所以这就是为什么我认为当 PHP 脚本尝试连接时 MySQL 还没有准备好。
错误:
mysql_connect(): 无法通过socket '/var/run/mysqld/mysqld.sock' (2) in .....
厨师食谱食谱中的代码:
execute "doInstall" do
cwd "/vagrant"
command "php path/to/my/script.php"
end
有任何想法吗?