在CentOS 7.2上安装SuPHP的详细方法

yizhihongxing

下面是在CentOS7.2上安装SuPHP的详细方法。

环境准备

  • 操作系统:CentOS 7.2
  • Web 服务器:Apache 2.4
  • PHP 版本:PHP 7.0.33

安装必备软件

在安装SuPHP之前需要安装一些必备软件,包括GCC、make、httpd-devel、php-cli、php-devel、rpm-build、httpd。

可以使用以下命令安装:

yum install -y gcc make httpd-devel php-cli php-devel rpm-build httpd

下载SuPHP源码

可以从SuPHP的官网下载最新版本的源码。

wget http://suphp.org/download/suphp-0.7.2.tar.gz

解压并安装SuPHP

tar zxvf suphp-0.7.2.tar.gz
cd suphp-0.7.2
./configure --prefix=/usr --sysconfdir=/etc --with-apxs=/usr/bin/apxs --with-setid-mode=owner
make
make install

在上述的安装过程中,--prefix 参数指定了安装路径,--sysconfdir 指定了配置文件路径,--with-apxs 指定了Apache编译时生成的apxs二进制文件的路径,--with-setid-mode=owner 指定了SuPHP启动时的权限模式。

配置SuPHP

配置suphp.conf文件

vim /etc/httpd/conf.d/suphp.conf

在打开的文件中添加以下内容:

LoadModule suphp_module modules/mod_suphp.so
AddType application/x-httpd-php .php
suPHP_AddHandler application/x-httpd-php
<Directory "/var/www/html">
   suPHP_Engine on
   suPHP_UserGroup apache apache
</Directory>

在其中,LoadModule suphp_module 指定了加载模块,AddTypesuPHP_AddHandler 指定了后缀为.php的文件交由SuPHP处理,<Directory> 块内的指令则指定了SuPHP的处理引擎,及处理用户和组信息。

配置virtual host文件

vim /etc/httpd/conf.d/virtualhost.conf

在打开的文件中添加以下内容:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html
    <Directory "/var/www/html">
        AllowOverride All
        Order Allow,Deny
        Allow from all
        Options FollowSymLinks
        Require all granted
    </Directory>
</VirtualHost>

这份配置文件是一个虚拟主机配置示例,其中 ServerName 为服务器名称,DocumentRoot 为网站文件的根目录,<Directory> 指定了这个虚拟主机的目录权限控制。

启动Apache

启动Apache服务,尝试执行phpinfo.php文件测试是否已成功安装SuPHP。

systemctl start httpd
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

在浏览器中打开 http://example.com/phpinfo.php 可以看到PHP信息页面,其中的“Loaded Modules”一栏会显示已安装的SuPHP模块。

示例1:使用SuPHP管理网站文件

用户Bob的web根目录使用SuPHP管理:

useradd bob
mkdir /home/bob/public_html
echo "<?php phpinfo(); ?>" > /home/bob/public_html/phpinfo.php
chown -R bob:apache /home/bob/public_html
chmod -R 755 /home/bob/public_html

Apache虚拟主机:

<VirtualHost *:80>
    ServerName bob.example.com
    DocumentRoot /home/bob/public_html
    <Directory "/home/bob/public_html">
        AllowOverride All
        Order Allow,Deny
        Allow from all
        Options FollowSymLinks
        Require all granted
        suPHP_Engine on
        suPHP_UserGroup bob bob
    </Directory>
</VirtualHost>

上述配置指定了用户Bob所在的web根目录和管理这个目录的用户和组,用于启用SuPHP的引擎。

示例2:使用SuPHP限制FTP用户文件权限

假设FTP用户的根目录为 /home/ftpuser,使用SuPHP限制他仅能访问该目录下的文件。FTP用户为WWW并且获得作为PHP文件运行的权限。

  1. 将WWW用户加入到Apache组中

    bash
    usermod -a -G apache www

  2. 启动ftp服务,并在配置文件中增加如下内容。该内容指定使用SuPHP对FTP用户进行限制。

    DefaultRoot /home/ftpuser
    <Directory /home/ftpuser/*>
    supervisor ftpuser www
    <Limit ALL>
    DenyAll
    </Limit>
    </Directory>

  3. 访问FTP用户根目录,并新建phpinfo.php文件,输入如下内容:

    php
    <?php phpinfo();?>

  4. 修改该文件用户组,从ftpuser更改为apache

    bash
    chgrp apache /home/ftpuser/phpinfo.php

  5. 在浏览器中打开 http://example.com/phpinfo.php 可以看到PHP信息页面,其中的“Loaded Modules”一栏会显示已安装的SuPHP模块。

经过以上配置后,若FTP用户越权访问作用域范围以外的目录或者其它用户的文件,SuPHP将会进行拦截并报错。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在CentOS 7.2上安装SuPHP的详细方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Mac、Linux 安装 zsh & oh-my-zsh

    Mac、Linux 安装 zsh & oh-my-zsh 这是转载自左岸博客的一篇文章 shell 俗称壳,c 语言编写的命令解析器程序,是用户使用 linux 的桥梁。Linux/Unix 提供了很多种 Shell。常用的 Shell 有这么几种,sh、bash、csh 等。可以通过以下命令,查看系统有几种 shell: $ cat /etc/sh…

    Linux 2023年4月12日
    00
  • Ubuntu系统Flameshot使用问题

    Ubuntu系统Flameshot使用问题 系统:Ubuntu22.04 问题:使用Flameshot,每次都会先截取整个屏幕,提示需要先分享,再使用Flameshot的功能 安装Flameshot sudo apt install flameshot 先说解决方案 开机用户登录时,右下角有设置桌面环境,默认是Ubuntu,修改为Ubuntu on Xorg…

    Linux 2023年4月17日
    00
  • Linux shell脚本读取用户输入的参数

    新建一个test.sh文件 #!/bin/sh echo “1 : For Test” echo “2 : For nohup &”   whiletrue do echo -n “please enter the number:” read line echo “$line” if[[ $line =”1″]];then echo “For Tes…

    Linux 2023年4月16日
    00
  • linux下远程重启apache的方法

    以下是“Linux下远程重启Apache的方法”的完整使用攻略,包含两个示例说明。 步骤 远程登录到服务器。使用SSH客户端连接到服务器,例如PuTTY。 输入以下命令以检查Apache是否正在运行: bash sudo systemctl status apache2 如果Apache正在运行,则会显示“active (running)”状态。 输入以下命…

    Linux 2023年5月13日
    00
  • VMware Workstation Pro 16安装CentOS7超详细图文步骤

    VMware Workstation Pro 16安装CentOS7超详细图文步骤 硬件要求 在安装Linux操作系统时,需要满足以下基本硬件要求: 4GB以上内存,建议8GB以上 50GB以上的硬盘容量 支持64位操作系统的CPU 安装VMware Workstation Pro 16 首先,我们需要安装VMware Workstation Pro 16。…

    Linux 2023年5月24日
    00
  • LINUX磁盘分区、格式化、挂载、卸载详细过程

    下面是详细的攻略: LINUX磁盘分区、格式化、挂载、卸载详细过程 磁盘分区 在LINUX系统中,硬盘是通过分区来管理的。为了分离不同的文件系统和数据,我们需要对硬盘进行分区。磁盘可以分成主分区和扩展分区。每个主分区或扩展分区都可以进一步划分为逻辑分区。 我们可以通过fdisk命令进行磁盘分区操作: # 打印磁盘信息,选择要分区的磁盘 fdisk -l fd…

    Linux 2023年5月24日
    00
  • linux yum安装指定版本mysql的教程详解

    Linux yum安装指定版本MySQL的教程详解 在Linux系统中,yum是一个非常强大的包管理器,可以方便地安装和升级软件包。本文将详细介绍使用yum安装指定版本的MySQL数据库的步骤。 步骤一:安装MySQL官方yum源 MySQL官网提供了自己的yum源,可以从官方yum源中安装特定版本的MySQL。将官方yum源添加到您的系统中的步骤如下: 下…

    Linux 2023年5月14日
    00
  • 16、Linux升级内核4.19

    # 获取kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm地址 http://私有IP/elrepo/kernel/el7/x86_64/RPMS/ # 安装 yum -y localinstall kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm # 重新生成启动配置 vi /etc/def…

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部