关于GAE的phpMyAdmin - 身份验证

时间:2013-07-15 00:22:37

标签: php google-app-engine phpmyadmin

我使用@ https://gaeforphp-blog.appspot.com/2013/05/26/setting-up-phpmyadmin-on-app-engine/

提供的教程在GAE上设置了phpmyadmin

可以毫无问题地访问应用程序的版本(phpmyadmin),但我似乎无法对我的Cloud SQL实例进行身份验证。

我已尝试过cookie和配置类型身份验证但没有成功。但是我发现,使用cookie auth,在提交用户名密码后,页面只会重新加载而不会出错。

如果我使用config auth,我会在页面上收到以下错误:

2002 - 无法找到套接字传输“tcp” - 您是否忘记在配置PHP时启用它?

服务器没有响应(或者未正确配置本地服务器的套接字)。

所有谷歌搜索都指向php中的ssl库。有没有人能够让phpmyadmin在GAE上工作?

如果实际的博客条目(@ gaeforphp-blog.appspot.com)会支持评论向作者提出问题,那将更受欢迎,不幸的是不是这样。

3 个答案:

答案 0 :(得分:0)

所以你看到这个错误,因为你使用的连接字符串不正确,我们不知道你正在尝试连接到CloudSQL。

如果您正在使用mysql,请确保在实例名称前面有':/ cloudsql /'。

不知道博客不接受评论 - 我会解决这个问题。

答案 1 :(得分:0)

这是phpMyAdmin 4.1.6.0 config.inc.php文件中更改的行:

$cfg['Servers'][$i]['host'] = ':/cloudsql/<project-id>:<cloudsql-instance>';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['AllowRoot'] = true;

然后我添加了以下几行:

$cfg['McryptDisableWarning'] = true;
$cfg['PmaNoRelation_DisableWarning'] = true;
$cfg['ExecTimeLimit'] = 60;
$cfg['CheckConfigurationPermissions'] = false;

考虑:

  • 通过将$cfg['Servers'][$i]['AllowNoPassword']更改为true,您允许任何人以root身份登录而无需密码。因此,您可能希望仅在第一次登录时使用此选项来创建具有有限权限的新用户/密码,然后再将其更改为false(或者您可以使用“可能控制台”并且根本不更改此设置)。
  • $cfg['Servers'][$i]['extension'] = 'mysql'实际上为我做了伎俩。我不知道为什么,但似乎我的php配置文件中没有启用mysqli。

我使用的链接:

答案 2 :(得分:0)

唯一对我有用的是以下配置。

$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['socket'] = '/cloudsql/project-id:db-instance';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['AllowRoot'] = true;

$cfg['McryptDisableWarning'] = true;
$cfg['PmaNoRelation_DisableWarning'] = true;
$cfg['ExecTimeLimit'] = 60;
$cfg['CheckConfigurationPermissions'] = false;

所有其他配置都因各种错误消息而失败。从未找到套接字到gethostbyaddr错误等。祝你好运!