我读了这个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
来确保我写正确的路径并且问题仍然存在。
答案 0 :(得分:4)
在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