rh333 - 启用apache的UserDir(~user)支持

1. 版本与SELINUX

[root@server120 ~]# cat /proc/version
Linux version 2.6.18-308.el5xen (mockbuild@x86-010.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Fri Jan 27 17:59:00 EST 2012
[root@server120 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 21
Policy from config file:        targeted
[root@server120 ~]#


2. 编辑httpd配置文件,启用UserDir支持

[root@server120 ~]# grep -i UserDir /etc/httpd/conf/httpd.conf
LoadModule userdir_module modules/mod_userdir.so
# UserDir: The name of the directory that is appended onto a user's home
<IfModule mod_userdir.c>
    # UserDir is disabled by default since it can confirm the presence
    # UserDir disable
    # directory, remove the "UserDir disable" line above, and uncomment
    UserDir public_html
# Control access to UserDir directories.  The following is an example
[root@server120 ~]#


3. 在用户(eg. student)家目录上给予其他用户执行权限

[root@server120 ~]# chmod o+x /home/student/
[root@server120 ~]# ls -dl /home/student/
drwx-----x 4 student student 4096 Mar 30 16:59 /home/student/
[root@server120 ~]# echo student_home > /home/student/public_html/index.html
[root@server120 ~]# cat /home/student/public_html/index.html
student_home
[root@server120 ~]#

4. 开启SELINUX访问家目录的bool值

[root@server120 ~]# setsebool -P httpd_enable_homedirs on
[root@server120 ~]# getsebool -a | grep httpd | grep home
httpd_enable_homedirs --> on
[root@server120 ~]#


5. 更改家目录下public_html文件夹及其下所有文件的SELINUX类型

[root@server120 ~]# chcon -t httpd_sys_content_t /home/student/public_html/ -R
[root@server120 ~]# ls -Z /home/student/ -R
/home/student/:
-rw-------  student student root:object_r:user_home_t        mbox
drwxrwxr-x  student student root:object_r:httpd_sys_content_t public_html

/home/student/public_html:
-rw-rw-r--  student student root:object_r:httpd_sys_content_t index.html
[root@server120 ~]#

6. 测试访问
[root@server120 ~]# elinks -dump server120.example.com/~student
   student_home
[root@server120 ~]#


REF:

1. How to get UserDir (user specific public_html) working for apache in CentOS 6

http://centosforge.com/node/how-get-userdir-user-specific-publichtml-working-apache-centos-6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在arm-linux下交叉编译Apache和PHP的步骤如下: 1. 首先安装交叉编译工具链,例如arm-linux-gcc等工具链。 2. 下载Apache和PHP源码,解压缩到指定目录。 3. 进入Apache源码目录,执行configure命令,指定交叉编译工具链的路径和其他相关参数,例如: ``` ./configure --host=arm-linux --prefix=/usr/local/apache2 --enable-so --disable-ssl --disable-proxy --disable-authn-file --disable-autoindex --disable-dir --disable-env --disable-reqtimeout --disable-userdir --disable-setenvif --disable-status --disable-cgi ``` 其中,--host参数指定目标平台的架构,--prefix参数指定安装目录,--enable-so参数指定支持动态链接库等。 4. 执行make命令编译Apache,然后执行make install命令安装Apache到指定目录。 5. 进入PHP源码目录,执行configure命令,指定交叉编译工具链的路径和其他相关参数,例如: ``` ./configure --host=arm-linux --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --disable-debug --enable-mbstring --enable-zip --enable-bcmath --enable-sockets --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --with-curl --with-gd --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pear ``` 其中,--with-apxs2参数指定Apache的apxs路径,--with-curl参数指定支持curl库,--with-gd参数指定支持gd库等。 6. 执行make命令编译PHP,然后执行make install命令安装PHP到指定目录。 7. 在Apache的配置文件httpd.conf中添加PHP的模块加载语句,例如: ``` LoadModule php7_module modules/libphp7.so AddType application/x-httpd-php .php ``` 其中,libphp7.so是PHP编译生成的动态链接库。 8. 重启Apache服务器,测试PHP是否正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值