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

下面是在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日

相关文章

  • VMware虚拟机CentOS系统网络设置

    下面是VMware虚拟机CentOS系统网络设置的攻略: 1. 安装VMware Tools 在CentOS系统中,为了获取更好的VMware虚拟机性能和功能,需要先安装VMware Tools。首先,选择VMware虚拟机菜单栏中的“虚拟机”->“安装VMware Tools”选项,会自动将Tools安装包挂载到CentOS中的光驱。然后,通过终端执…

    Linux 2023年5月24日
    00
  • ubuntu编译字符设备

    前言 创建一个简单的字符设备驱动程序。 ​ 本文命令的运行基本上都需要root权限,使用root账号,或者在命令前面加上sudo。 ​ 如果你使用ssh远程连接的服务器进行代码编写。那么不要在root用户下创建文件或者文件夹。这会导致你ssh连接vscode编写代码的权限问题。可以在普通用户创建好所有的文件,然后编写。 代码 驱动程序 hello_drive…

    Linux 2023年4月22日
    00
  • linux apache下虚拟主机配置方法

    以下是“Linux Apache下虚拟主机配置方法”的完整使用攻略,包含两个示例说明。 步骤 打开终端。在系统中,您可以下“Ctrl + Alt + T”组合键来打开端。 创建虚拟主机配置文件。在终端中输入以下命令: bash sudo nano /etc/apache2/sites-available/example.com.conf 将“example.…

    Linux 2023年5月13日
    00
  • 如何在Linux上安装libvirt虚拟化工具

    这里是在Linux上安装libvirt虚拟化工具的完整攻略。 1. 安装libvirt 在命令行终端中执行以下命令以安装libvirt: sudo apt-get install libvirt-daemon-system libvirt-clients 2. 安装虚拟化工具 你可以选择KVM、VirtualBox、QEMU等虚拟化工具。在这里,我们以KVM…

    Linux 2023年5月24日
    00
  • PHP程序员玩转Linux系列 CentOS安装使用教程

    关于“PHP程序员玩转Linux系列 CentOS安装使用教程”的完整攻略,以下是详细的讲解。 1. 安装CentOS操作系统 安装CentOS操作系统前需要先下载CentOS的ISO镜像,然后将镜像写入U盘或者刻录到光盘上。将U盘或光盘插入电脑,启动电脑,进入BIOS设置,设置U盘或光盘为启动设备。进入CentOS的安装向导,按照向导提示选择语言、时区、硬…

    Linux 2023年5月24日
    00
  • 嵌入式Linux开发教程:获取Linux环境

    获取Linux环境是进行嵌入式Linux开发教程的第一步,本文将详细讲解获取Linux环境的完整攻略。 获取Linux环境 安装虚拟机 VirtualBox是一款免费的虚拟机软件,我们可以使用它来创建虚拟机来模拟Linux环境。以下是使用VirtualBox安装Linux环境的步骤: 下载并安装VirtualBox软件。 下载一个Linux发行版的ISO镜像…

    Linux 2023年5月24日
    00
  • 如何在Linux系统上管理系统服务?

    在Linux系统上管理系统服务一般使用Systemd来实现。下面是Linux系统上管理系统服务的完整攻略: 1. Systemd简介 Systemd是一个用于管理Linux系统中系统和服务启动,停止和管理的系统,是Linux发行版中最常用的系统初始化和进程管理工具之一,它可以通过systemctl命令来启动、停止、重启、热重新加载以及查看服务的状态等。 2.…

    Linux 2023年4月19日
    00
  • Linux中basename和dirname命令的妙用

    有同学问,如何/dir1/dir2/dir3/file中的,前半部分:/dir1/dir2/dir3和最后部分file,这个用字符串分隔及${str//}来处理还比较难办,这个时候basename和dirname命令就很方便了。 [dirname] 手册页“Print NAME with its trailing /component removed; if…

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