Apache, php-fpm 및 mod_fcgid를 설치하고 파일을 쓰려고 합니다.
저는 PHP 풀을 생성했으며 이는 구성 파일입니다.
[test.internal.innovisage.com]
...
user = test
group = test
...
listen.owner = test
listen.group = test
...
listen = /run/php-fpm/test.internal.innovisage.com.sock
이것은 내 Apache 구성 파일입니다.
<Directory /var/www/html/test.internal.innovisage.com/public_html>
Require all granted
</Directory>
<virtualhost *:80>
ServerName test.internal.innovisage.com
ServerAlias test.internal.innovisage.com
DocumentRoot /var/www/test.internal.innovisage.com/public_html
ErrorLog /var/log/httpd/test.internal.innovisage.com-error.log
CustomLog /var/log/httpd/test.internal.innovisage.com-access.log combined
DirectoryIndex index.php
<IfModule mod_fcgid.c>
Options +ExecCGI
FcgidConnectTimeout 20
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
ProxyPassMatch " ^/(.*\.php(/.*)?)$" "unix:/run/php-fpm/example.com.sock|fcgi://localhost/var/www/html/example.com/public_html/"
</IfModule>
</virtualhost>
풀 목록은 다음과 같습니다.
[root@almalinux-8 test]# ps aux | grep test.intern
test 2814 0.0 0.3 425492 12344 ? S 18:06 0:00 php-fpm: pool test.internal.innovisage.com
test 2815 0.0 0.3 425492 12344 ? S 18:06 0:00 php-fpm: pool test.internal.innovisage.com
test 2816 0.0 0.3 425492 12344 ? S 18:06 0:00 php-fpm: pool test.internal.innovisage.com
test 2817 0.0 0.3 425492 12344 ? S 18:06 0:00 php-fpm: pool test.internal.innovisage.com
test 2818 0.0 0.3 425492 12344 ? S 18:06 0:00 php-fpm: pool test.internal.innovisage.com
스크립트 소유자가 테스트라고 나와 있습니다.
<?php
echo "<p>Current User ID: ".getmyuid()."</p>";
echo "<p>Current Script Owner: ".get_current_user()."</p>";
phpinfo();
?>
스크립트를 실행할 때시험사용자는 명령줄에서 파일에 씁니다. 그러나 웹 브라우저에서 실행하면 파일이 생성되지 않습니다.
스크립트를 파일에 작성하기 위해 변경해야 할 다른 사항이 있습니까?
답변1
여기서 이 줄을 수정하는 것을 놓쳤습니다.
ProxyPassMatch " ^/(..php(/.)?)$" "unix:/run/php-fpm/example.com.sock|fcgi://localhost/var/www/html/example.com/public_html/"
이를 올바른 도메인으로 바꾸면 이제 허용되는 모든 위치에 파일을 쓸 수 있습니다.
ProxyPassMatch " ^/(..php(/.)?)$" "unix:/run/php-fpm/test.internal.innovisage.com.sock|fcgi://localhost/var/www/test.internal.innovisage.com/public_html/"