AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-102949

David Tonhofer's questions

Martin Hope
David Tonhofer
Asked: 2024-06-01 20:06:23 +0800 CST

Fedora 40:Apache Httpd 拒绝写入“/home”文件系统,但我检查了 SELinux 设置

  • 6

我正在Fedora 40 机器上安装FosWiki 。 FosWiki 顶级目录应为/home/wikis/foswiki_company.下面有各种内容目录以及log目录。

/home是一个单独的文件系统(不是NFS,只是本地机器上的一个单独的分区)

FosWiki 是一组廉价且令人愉悦的 Perl CGI 脚本,因此它只是通常的 CGI 设置。

事实证明,我什至无法进入FosWiki的设置页面,因为设置脚本无法创建日志文件(即Perl的open()调用失败)。明显的问题是“文件系统是只读的”。

SELinux 已启用,我正在检查 AVC 拒绝消息。好像没有。

下面是文件系统的相关结构。

  • 橙色元素是日志文件应该存放的位置,但事实证明这样做是不可能的。我也尝试过tmp子目录,同样的问题。
  • 棕色元素是一个实验,我修改了 CGI 脚本,以便将日志文件写入(适当许可的)目录/home/tmp,但失败了。
  • 绿色元素是一个实验,我修改了 CGI 脚本,以便将日志文件写入(适当许可的)目录/var/www/tmp。这有效。

另外,允许httpd访问主目录的SELinux布尔值,通常是关闭的,已经打开了,没有区别,似乎与这个问题无关:

# semanage boolean -l -C
SELinux boolean                State  Default Description

httpd_can_network_connect      (on   ,   on)  Allow httpd to can network connect
httpd_enable_homedirs          (on   ,   on)  Allow httpd to enable homedirs
selinuxuser_execmod            (on   ,   on)  Allow selinuxuser to execmod

此外,如果我(在 中su - apache为用户配置 shell 之后),我可以创建或写入任何日志文件。apache/etc/passwd

所以这是一个与流程相关的事情,而不是与用户相关的事情。

此外,我尝试禁用 SELinux,但遇到了同样的问题。

所以不太可能是SELinux。

我缺少什么?什么可以阻止 Apache httpd 写入/home文件系统?

当前文件系统

apache-2.4
  • 1 个回答
  • 84 Views
Martin Hope
David Tonhofer
Asked: 2018-07-21 10:50:17 +0800 CST

Apache 与 PHP 运行 CGI 模式:php 可执行进程本身,我需要在配置中更改什么

  • 0

我正在尝试在现代Apache 2.4.6中安装 pre-Iraq-Surge 4.4.9 PHP ,并希望在 CGI 模式下运行它。

当前配置如下:

PHP 可执行文件是/usr/local/php-4.4.9/bin/php

虚拟服务器中存在一个测试文件$documentroot/phphere/index.php,它包含:

<?php
 phpinfo();
?>

如果我执行index.phpusing php,一切都是 hunky dory。

跑步

/usr/local/php-4.4.9/bin/php $documentroot/phphere/index.php | less

产量

X-Powered-By: PHP/4.4.9
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #

等等

出色的!

但是,通过 Web 客户端调用index.php会导致:

Warning: Unexpected character in input: '' (ASCII=1) state=1 in /usr/local/php-4.4.9/bin/php on line 277

Warning: Unexpected character in input: '' (ASCII=15) state=1 in /usr/local/php-4.4.9/bin/php on line 277

Parse error: syntax error, unexpected T_STRING in /usr/local/php-4.4.9/bin/php on line 277

如果一个人自己处理php可执行文件,这正是一个人得到的输出,即输出

/usr/local/php-4.4.9/bin/php /usr/local/php-4.4.9/bin/php

(减去额外生成的任何标题)。

好的,所以 Apache 设置中存在一些问题。但是什么?

配置如下:

AddType application/x-httpd-php        .php
AddType application/x-httpd-php-source .phps

ScriptAlias /outsidephp             /usr/local/php-4.4.9/bin
Action      application/x-httpd-php /outsidephp/php

如果我理解正确,AddType会标记任何.php以 MIME type结尾的文件application/x-httpd-php。

如果 PHP 应通过 CGI 约定运行,则每当application/x-httpd-php请求具有 MIME 类型的文件时运行的可执行文件用Action指示。ScriptAlias给出了php可执行文件所在目录的URL 路径。(虽然这种语法听起来很尴尬,为什么没有一个命令呢?)

此外,该选项ExecCGI已在包含的目录中设置,index.php并且该文件系统树上的 SELinux 上下文标有httpd_sys_script_exec_t.

请注意,绝对没有

AddHandler cgi-script .php

在配置中,因为这使 Apache 尝试.php直接执行以脚本结尾的文件,这可以预见地失败并出现错误 500:

Error message:
End of script output before headers: index.php 

究竟出了什么问题?

如何让 Apache 运行

php index.php

代替

php php

(即很可能php php index.php)

php
  • 2 个回答
  • 1379 Views
Martin Hope
David Tonhofer
Asked: 2018-01-26 05:24:10 +0800 CST

MySQL通用查询日志分析

  • 0

目前在 MySQL 5.6 的旧版安装上执行软件考古。我有几个月的MySQL 一般查询日志,并且想统计一下谁运行了哪些查询,因为已经设置了来自各地的各种“未记录”自动机来访问所述数据库。我必须在这方面使用所有 Perl 还是有现成的分析工具?

mysql
  • 1 个回答
  • 1350 Views
Martin Hope
David Tonhofer
Asked: 2016-12-09 11:52:01 +0800 CST

我如何信任 Amazon EC2 上提供的社区 AMI

  • 3

我想在 Amazon EC2 上启动 Fedora 24 实例。Fedora Cloud 下载页面不再提供指向 Fedora 24 AMI的链接,而是提供指向“Fedora 25 Atomic Host”镜像的链接(这些是新东西,现在变化太快了)。

在 Amazon EC2 服务页面上,我可以在“社区 AMI”子集中搜索 Fedora AMI。这提供了许多标记为“Fedora”的 AMI

亚马逊上的 Fedora AMI

我为什么要相信这些图像?我怎样才能知道它们是否是真实的交易?

amazon-ec2 amazon-ami
  • 1 个回答
  • 1406 Views
Martin Hope
David Tonhofer
Asked: 2013-12-21 09:35:07 +0800 CST

正确设置主机名 - Amazon EC2 上的 Fedora 20

  • 12

语境

我有一个在 Amazon EC2 上运行的Fedora 20 云映像(以下称为“实例”)。而且我对持续设置其主机名有些不确定。

目标

在这种情况下,假设我想将实例的主机名设置为penpen.homelinux.org。(这个名称也将使用 注册在 DynDNS ddclient,但这是我们在这里不感兴趣的另一个方面。)

主机名当然可以在引导完成后手动设置(使用hostnamectl等)。但是我们希望在第一次登录之前设置正确的主机名。

传统上,要持久配置主机名,需要修改/etc/hostname. 不幸的是,这在这里不起作用。

默认系统行为

默认情况下,实例将其主机名设置为内部 EC2 名称。启动后,我们可以查看产生主机名的所有不同的地方,我们发现:

Kernel hostname via 'sysctl'                      : ip-10-164-65-105.ec2.internal
Kernel domainname via 'sysctl'                    : (none)
File '/etc/hostname'                              : contains 'ip-10-164-65-105.ec2.internal'
File '/etc/sysconfig/network'                     : exists but has no 'HOSTNAME' line
According to the shell                            : HOSTNAME = ip-10-164-65-105.ec2.internal
Nodename given by 'uname --nodename'              : ip-10-164-65-105.ec2.internal
Hostname ('hostname')                             : ip-10-164-65-105.ec2.internal
Short hostname ('hostname --short')               : ip-10-164-65-105
NIS domain name ('domainname')                    : (none)
YP default domain ('hostname --yp')               : [hostname --yp failed]
DNS domain name ('hostname --domain')             : ec2.internal
Fully qualified hostname ('hostname --fqdn')      : ip-10-164-65-105.ec2.internal
Hostname alias ('hostname --alias')               : 
By IP address ('hostname --ip-address')           : 10.164.65.105
All IPs ('hostname --all-ip-addresses')           : 10.164.65.105 
All FQHNs via IPs ('hostname --all-ip-addresses') : ip-10-164-65-105.ec2.internal 
Static hostname via 'hostnamectl'                 : ip-10-164-65-105.ec2.internal
Transient hostname via 'hostnamectl'              : ip-10-164-65-105.ec2.internal
Pretty hostname via 'hostnamectl'                 : 

因此,让我们尝试写入 /etc/hostname ...

如果将所需的主机名写入/etc/hostname,则此更改会在下次引导时再次丢失。让我们检查一下引导过程,该过程由systemd.

示例运行

写入rorororoor.homelinux.org,/etc/hostname然后重新启动。

使用journald我们发现(请注意,日志行并非完全按时间排序):

引导过程以主机名作为localhost开始,然后切换为 root,此时主机名变为rorororoor.homelinux.org。

Dec 26 15:12:08 localhost systemd[1]: Starting Cleanup udevd DB...
Dec 26 15:12:08 localhost systemd[1]: Started Cleanup udevd DB.
Dec 26 15:12:08 localhost systemd[1]: Starting Switch Root.
Dec 26 15:12:08 localhost systemd[1]: Reached target Switch Root.
Dec 26 15:12:08 localhost systemd[1]: Starting Switch Root...
Dec 26 15:12:08 localhost systemd[1]: Switching root.
Dec 26 15:12:08 localhost systemd-journal[67]: Journal stopped
Dec 26 15:12:12 rorororoor.homelinux.org systemd-journal[155]: Runtime journal is using 8.0M
Dec 26 15:12:12 rorororoor.homelinux.org systemd-journal[155]: Runtime journal is using 8.0M
Dec 26 15:12:12 rorororoor.homelinux.org systemd-journald[67]: Received SIGTERM
...........
Dec 26 15:12:12 rorororoor.homelinux.org kernel: SELinux: initialized
Dec 26 15:12:12 rorororoor.homelinux.org systemd-journal[155]: Journal started
Dec 26 15:12:08 rorororoor.homelinux.org systemd-cgroups-agent[128]: Failed to get D-Bus connection: Failed to connect to socket /run/systemd/private: No such file or directory
Dec 26 15:12:10 rorororoor.homelinux.org systemd[1]: systemd 208 running in system mode.
Dec 26 15:12:10 rorororoor.homelinux.org systemd[1]: Detected virtualization 'xen'.
Dec 26 15:12:10 rorororoor.homelinux.org systemd[1]: Set hostname to <rorororoor.homelinux.org>.
Dec 26 15:12:10 rorororoor.homelinux.org systemd[1]: Failed to open private bus connection: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
Dec 26 15:12:11 rorororoor.homelinux.org systemd[1]: Mounted Debug File System.

我们看到systemd将主机名设置为rorororoor.homelinux.org,显然随着日志的主机列更改成功。发出一些错误,可能是因为hostnamectl此时无法联系 DBus。

我不确定是谁在这里命名;systemd的一些内部部分?无论如何,继续浏览日志,我们发现主机名很快被设置回 EC2 内部名称:

Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] util.py[DEBUG]: Running command ('resize2fs', '/dev/xvda1') with allowed return codes [0] (shell=False, capture=True)
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] cc_resizefs.py[DEBUG]: Resizing took 0.067 seconds
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] cc_resizefs.py[DEBUG]: Resized root filesystem (type=ext4, val=True)
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] helpers.py[DEBUG]: config-set_hostname already ran (freq=once-per-instance)
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] helpers.py[DEBUG]: Running config-update_hostname using lock (<cloudinit.helpers.DummyLock object at 0x2559210>)
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] cc_update_hostname.py[DEBUG]: Updating hostname to ip-10-164-65-105.ec2.internal (ip-10-164-65-105)
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] util.py[DEBUG]: Running command ['hostname'] with allowed return codes [0] (shell=False, capture=True)
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] __init__.py[DEBUG]: Attempting to update hostname to ip-10-164-65-105.ec2.internal in 1 files
Dec 26 15:12:33 rorororoor.homelinux.org cloud-init[485]: [CLOUDINIT] util.py[DEBUG]: Running command ['hostnamectl', 'set-hostname', 'ip-10-164-65-105.ec2.internal'] with allowed return codes [0] (shell=False, capture=True)
Dec 26 15:12:33 rorororoor.homelinux.org dbus-daemon[226]: dbus[226]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service'
Dec 26 15:12:33 rorororoor.homelinux.org dbus[226]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service'
Dec 26 15:12:34 rorororoor.homelinux.org systemd[1]: Starting Hostname Service...
Dec 26 15:12:34 rorororoor.homelinux.org dbus-daemon[226]: dbus[226]: [system] Successfully activated service 'org.freedesktop.hostname1'
Dec 26 15:12:34 rorororoor.homelinux.org dbus[226]: [system] Successfully activated service 'org.freedesktop.hostname1'
Dec 26 15:12:34 rorororoor.homelinux.org systemd[1]: Started Hostname Service.
Dec 26 15:12:34 rorororoor.homelinux.org systemd-hostnamed[598]: Changed static host name to 'ip-10-164-65-105.ec2.internal'
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal systemd-hostnamed[598]: Changed host name to 'ip-10-164-65-105.ec2.internal'
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal systemd[1]: Started Initial cloud-init job (metadata service crawler).
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal systemd[1]: Starting Cloud-config availability.
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal systemd[1]: Reached target Cloud-config availability.
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal systemd[1]: Starting Apply the settings specified in cloud-config...
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal [485]: [CLOUDINIT] helpers.py[DEBUG]: Running config-update_etc_hosts using lock (<cloudinit.helpers.DummyLock object at 0x2559350>)
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal [485]: [CLOUDINIT] cc_update_etc_hosts.py[DEBUG]: Configuration option 'manage_etc_hosts' is not set, not managing /etc/hosts in module update_etc_hosts
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal [485]: [CLOUDINIT] helpers.py[DEBUG]: config-rsyslog already ran (freq=once-per-instance)
Dec 26 15:12:34 ip-10-164-65-105.ec2.internal [485]: [CLOUDINIT] helpers.py[DEBUG]: config-users-groups already ran (freq=once-per-instance)

此处的主机名设置是通过“systemd-hostnamed”单元完成的。“systemd-hostnamed”的“单元文件”/usr/lib/systemd/system/systemd-hostnamed.service包含:

[Unit]
Description=Hostname Service
Documentation=man:systemd-hostnamed.service(8) man:hostname(5) man:machine-info(5)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/hostnamed

[Service]
ExecStart=/usr/lib/systemd/systemd-hostnamed
BusName=org.freedesktop.hostname1
CapabilityBoundingSet=CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_SYS_PTRACE

上面调用的程序/usr/lib/systemd/systemd-hostnamed实际上是一个二进制文件(为什么!)。但是可以找到源代码。

关键是我们回到了ip-10-164-65-105.ec2.internal

做什么?

amazon-ec2
  • 5 个回答
  • 5234 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve