所以我已经将 MySQL chroot 到 /opt/chroot/mysql,并且一切运行良好。Apache配置正常,运行正常。
我创建了一个连接到 MySQL 守护程序的小型 PHP 脚本,并配置了 PHP,以便使用的默认套接字是 chroot 套接字。当 SELinux 被禁用时,脚本能够正常连接。但是,启用 SELinux 后,脚本无法连接(错误号为 13),审核日志告诉我 SELinux 拒绝了请求。
我发现的每个处理这个问题的教程都告诉我禁用 SELinux。这不是我想做的,所以请不要建议!我想要一个在启用 SELinux 的情况下有效的解决方案......我认为必须存在一个......
我想我可能必须更改 mysql 文件的 SELinux 上下文,但我不确定将它们更改为什么才能使其工作。
我正在运行 nginx 和 php-fpm,我想为每个主机设置监狱。我的设置有点复杂,所以按照网上的教程我一无所获。
每个站点都有一个目录 /var/www/domain.name/
在该目录中,将有一个 public/ 目录作为网站根目录,一个 logs/ 目录将专门存储该站点的 nginx 日志,以及 chroot 文件系统(etc/、usr/ 等)
我遇到的第一个问题是,无论我如何配置它,PHP-FPM 都找不到通过 nginx 传递给它的文件。它们导致“主脚本未知”错误,更糟糕的是,来自 PHP-FPM 的错误消息并不比这更冗长,所以我无法弄清楚 nginx 正在传递什么路径。
主机的 php-fpm 池配置如下所示:
[host]
user = host
group = www-data
chroot = /var/www/domain.name
chdir = /public
listen = 127.0.0.1:900x
Run Code Online (Sandbox Code Playgroud)
'x' 为每个池增加。
该主机的 nginx 配置如下所示:
server
{
listen 80;
server_name domain.name *.domain.name;
root /var/www/domain.name/public;
index index.php index.html index.html;
location ~ \.php$
{
expires epoch;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9001;
}
} …Run Code Online (Sandbox Code Playgroud) 在 Solaris 10 中,我可以使用以下命令配置(和审计) arp_cleanup_interval 变量:
$ ndd -get /dev/arp arp_cleanup_interval
300000
Run Code Online (Sandbox Code Playgroud)
在 Solaris 11(速成版和发行版)中,相同的命令返回“未知属性”错误:
$ ndd -get /dev/arp arp_cleanup_interval
operation failed: Unknown property
Run Code Online (Sandbox Code Playgroud)
有谁知道此变量是否已更改或已从 Solaris 11 中删除?
apache-2.2 ×1
arp ×1
centos ×1
mysql ×1
nginx ×1
php-fpm ×1
selinux ×1
solaris ×1
solaris-10 ×1
solaris-11 ×1