我看到了同样的问题,许多解决方案都指向添加类型处理程序,但那是针对 Apache 的。
我正在使用 Arch Linux、Nginx、PHP 和 PHP-FMP,但我无法弄清楚为什么 php 文件正在下载而不是运行。
这是我的 nginx.conf:
#user http;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / { …Run Code Online (Sandbox Code Playgroud) 我在我的笔记本电脑上运行Arch Linux作为开发机器,我需要授予用户组RW权限到文件夹:/srv/http及其下的所有文件和文件夹。
我确保 ACL 已安装,然后将其添加到我的 fstab 中:
/dev/sda7 / ext4 rw,relatime,data=ordered,acl 0 1
Run Code Online (Sandbox Code Playgroud)
然后我运行了以下命令:
sudo setfacl -m group:users:rw- -R /srv/http
Run Code Online (Sandbox Code Playgroud)
它在我的台式机上工作正常,为什么在我的笔记本电脑上工作不一样?使用上面的 setfacl 命令后,用户甚至不再具有对文件或文件夹的读取访问权限。
当我像这样删除 ACL 记录时:
sudo setfacl -bR /srv/http
Run Code Online (Sandbox Code Playgroud)
在该命令之后,用户可以打开文件,但不能修改它们。
我在这里做错了什么吗?
这是“ls -l /srv/http”的输出
[shane@arch-mobile ~]$ ls -l /srv/http/
total 4
drwxr-xr-x 9 http http 4096 Aug 7 11:04 drupal7
Run Code Online (Sandbox Code Playgroud)
“zcat /proc/config.gz | grep -i acl”的输出:
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CIFS_ACL=y
CONFIG_9P_FS_POSIX_ACL=y
Run Code Online (Sandbox Code Playgroud)