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
    • 最新
    • 标签
主页 / server / 问题 / 949098
Accepted
Ta Coen
Ta Coen
Asked: 2019-01-15 22:26:03 +0800 CST2019-01-15 22:26:03 +0800 CST 2019-01-15 22:26:03 +0800 CST

Suexec/Apache 用户不是 php-fpm 'user'

  • 772

Suexec/Apache 用户不是 php-fpm 'user'。

在我的 php-fpm 池中:

[cdnmin]
user = cdnmin
group = cdnmin
listen = /run/php/php7.0-fpm.cdnmin.sock
listen.owner = cdnmin
listen.group = cdnmin
listen.mode = 0666
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

我为测试创建了“index.php”:

<?php 
file_put_contents('test.txt','Test');
echo exec('whoami');
echo '<hr>Current script owner: ' . get_current_user();
phpinfo();
?>

php-fpm 有效,但权限错误,如我的 error.log 所示

AH01071: Got error 'PHP message: PHP Warning:  file_put_contents(test.txt):
failed to open stream: Permission denied ...'

php 'get_current_user()' return 'cdnmin' 这是 php-fpm 池用户。但 'whoami' 返回 www-data (apache2)

在 /run/php 里面:

 srw-rw-rw-  1 cdnmin   cdnmin     0 Jan 15 15:18 php7.2-fpm.cdnmin.sock

工作目录 (/var/www/cdn) 归 cdnmin:cdnmin 所有,为 755。

 SuexecUserGroup cdnmin cdnmin 

在虚拟主机的 (apache) 指令上。

我可以找出为什么 'whoami' 和 get_current_user() 不一样。

我错过了什么?

php-fpm
  • 1 1 个回答
  • 842 Views

1 个回答

  • Voted
  1. Best Answer
    Ta Coen
    2019-01-16T08:54:16+08:002019-01-16T08:54:16+08:00

    我正在使用不支持 fastcgi 的 ubuntu 18.04。仿生使用proxy_fcgi。我没有看到来自 fastcgi 的任何错误,因为我使用它总是将请求发送到默认值(www.conf),这就是它变成“www-data”的原因。

    问题就解决了。

    这里有一些片段

    我的 virtualhost.conf :

        <VirtualHost *:80>
        DocumentRoot /var/www/cdn
        ServerName cdn.wx.dz.co
        ServerAdmin webmaster
        ErrorLog /var/www/cdn/.log/error.log
        CustomLog /var/www/cdn/.log/access.log combined
    
        SuexecUserGroup cdnmin cdnmin
    
        <Directory /var/www/cdn>
                Options +ExecCGI
                IncludeOptional /dbc/vhost/common-set.conf
        </Directory>
    
        <Directory /var/www/cdn/.log>
                deny from all
        </Directory>
    
        <FilesMatch ".+\.ph(p[345]?|t|tml)$">
                SetHandler "proxy:unix:/run/php/php7.2-fpm.cdnmin.sock|fcgi://localhost/"
        </FilesMatch>
    
    
       </VirtualHost>
    

    在 fpm/pool.d 中:

        [cdnmin]
        user = cdnmin
        group = cdnmin
        listen = /run/php/php7.2-fpm.cdnmin.sock
        listen.owner = www-data
        listen.group = www-data
        listen.mode = 0666
        pm = dynamic
        pm.max_children = 5
        pm.start_servers = 2
        pm.min_spare_servers = 1
        pm.max_spare_servers = 3
    

    注意:

        listen.owner = www-data
        listen.group = www-data
        listen.mode = 0666
    
    • 0

相关问题

  • 不小心将 chown “root” 设置为我所有的服务器

  • PHP-FPM + NGINX:PHP-CGI 进程在空闲一段时间后死亡,然后 502 bad gateway 和需要手动重启

  • 如何使程序从源代码保持最新?

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