使用openshift在Apache服务器上设置身份验证

时间:2014-08-25 17:34:47

标签: apache authentication openshift

我读了这个http://www.apacheweek.com/features/userauth,我尝试在Openshift中完成同样的事情,但我不知道如何做。

我正在使用rhc,我试图通过ssh连接到我的应用,但我没有权限使用sudo su所以我无法继续。

例如,当我尝试创建文件nano /usr/local/etc/httpd时,我无法理解,因为我没有root权限。

> ls -la /usr/local/etc
total 20
drwxr-xr-x.  2 root root 4096 jun  5 20:58 .
drwxr-xr-x. 14 root root 4096 dic 11  2013 ..
-rw-r--r--.  1 root root 1807 may 19 15:23 oom-kill-disable.conf
-rw-------.  1 root root 1675 may 21 14:51 ops_file_transfer_upload_id_rsa
-rw-r-----.  1 root root  399 jun  5 20:58 partitioner_disk_definitions.yaml

如果我有错误的方法,我将不胜感激,你可以指导我。

更新 正如@davelopercorey建议我现在使用.htaccess文件

AuthType Basic
AuthName "Authentication"
AuthUserFile ${OPENSHIFT_REPO_DIR}.htpasswd
Require valid-user

添加用户及其密码

htpasswd -cb .htpasswd myuser mypass

正在显示身份验证提示,但我的用户和通行证未正确验证。

我使用whereis htpasswd来确保我写正确的路径并且问题仍然存在。

4 个答案:

答案 0 :(得分:4)

最终解决方案。感谢@developercorey

在openshift中有一个名为$ OPENSHIFT_REPO_DIR的环境变量,是您工作目录的路径,即/var/lib/openshift/myuserlongid/app-root/runtime/repo/

我创建了一个名为SECURE的新环境变量包装文件夹路径。

rhc set-env SECURE=/var/lib/openshift/myuserlongid/app-root/data --app myappname

最后我用ssh连接到我的应用

rhc ssh myappname

创建.htpasswd文件

htpasswd -c $SECURE/.htpasswd <username>

注意:htpasswd的-c选项会创建一个新文件,覆盖任何现有的htpasswd文件。如果您打算将新用户添加到现有的htpasswd文件,只需删除-c选项。

.htaccess文件

AuthType Basic
AuthName "Authentication"
AuthUserFile ${SECURE}/.htpasswd
Require valid-user

答案 1 :(得分:1)

如果您使用的是其中一个支持.htaccess文件的盒式磁带(例如python或php),则可以将.htpasswd文件放在文件系统的任何位置。我建议将它放在〜/ app-root / data目录中,然后你可以从该位置的.htaccess文件指向它并根据你在.htaccess文件中放入的规则使用你想要的身份验证文件类型或目录等。

答案 2 :(得分:0)

首先使用ssh连接服务器:

rhc ssh yourappname

然后转到app目录:

cd ${OPENSHIFT_REPO_DIR}

运行以下命令,然后复制结果:

${OPENSHIFT_REPO_DIR}

并在此目录文件中创建.htaccess:

nano .htaccess

但是在先前复制的上面替换“/ var / lib / openshift / xxxxxxxxxxxxxxxxxxxxxxxx / app-root / runtime / repo /”,它应该在文件中.htaccess:

AuthType Basic
AuthName "Authentication Required"
AuthUserFile "/var/lib/openshift/xxxxxxxxxxxxxxxxxxxxxxxx/app-root/runtime/repo/.htpasswd"
Require valid-user

然后创建.htpasswd文件:

htpasswd -c .htpasswd yourusername

然后你保存它。

答案 3 :(得分:-1)

我们可以使用内部 OPENSHIFT_DATA_DIR 变量,因此对于〜/ app-root / data / .htpasswd 在我的情况下就足够了:

AuthType Basic
AuthName "Authentication"
AuthUserFile ${OPENSHIFT_DATA_DIR}/.htpasswd
Require valid-user