私はこれに従っています ここで非常に詳細な手順 、私は単にwww-dataユーザーからApacheユーザーに変更し、/ home/userの代わりに/ var/www/hosts/sitename/public_htmlを使用しています/ public_html
ただし、phpファイルのコンテンツが正しく解析されずに表示される理由を理解するために、丸一日かけて費やしました。私はこれを理解することができないようです。以下は私の現在の設定です:
/etc/httpd/conf.d/fastcgi.conf
User Apache
Group Apache
LoadModule fastcgi_module modules/mod_fastcgi.so
# dir for IPC socket files
FastCgiIpcDir /var/run/mod_fastcgi
# wrap all fastcgi script calls in suexec
FastCgiWrapper On
# global FastCgiConfig can be overridden by FastCgiServer options in vhost config
FastCgiConfig -idle-timeout 20 -maxClassProcesses 1
# sample PHP config
# see /usr/share/doc/mod_fastcgi-2.4.6 for php-wrapper script
# don't forget to disable mod_php in /etc/httpd/conf.d/php.conf!
#
# to enable privilege separation, add a "SuexecUserGroup" directive
# and chown the php-wrapper script and parent directory accordingly
# see also http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/
#
FastCgiServer /var/www/www-data/php5-fcgi
#AddType application/x-httpd-php .php
AddHandler php-fcgi .php
Action php-fcgi /fcgi-bin/php5-fcgi
Alias /fcgi-bin/ /var/www/www-data/
#FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization
#DirectoryIndex index.php
#
<Location /fcgi-bin/>
# Order Deny,Allow
# Deny from All
# Allow from env=REDIRECT_STATUS
SetHandler fcgid-script
Options +ExecCGI
</Location>
/etc/httpd/conf.d/vhost.conf
<VirtualHost>
DirectoryIndex index.php index.html index.shtml index.cgi
SuexecUserGroup www.mysite.com mygroup
Alias /fcgi-bin/ /var/www/www-data/www.mysite.com/
DocumentRoot /var/www/hosts/mysite.com/w/w/w/www/
<Directory /var/www/hosts/mysite.com/w/w/w/www/>
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
PS:1.また、PHP5.5では、FPMも必要ですか、それともすでに含まれていますか? 2. mod_fastcgiを使用していますが、これが問題かどうかわからないので、mod_fcgidに切り替える必要がありますか?どちらが良いかを考えると、インターネット上で矛盾する記録があるようです。マシン上で実行されている多くの仮想ホストがあり、各ユーザーに独自のopcacheを提供できることを望んでいます
まず第一に、あなたはそれを殺しすぎています。
基本的に同じことを行うため、suphp + php-fpmは必要ありません。
マルチユーザー、マルチ仮想ホスト環境が必要な場合は、次のスタックを使用する必要があります。
Apache + mod_fastcgi + php-fpm
php-fpmを使用すると、まったく異なるphp設定を使用して、異なるユーザーで実行できるプールを定義できます。
その構成では、Apacheを基本構成に戻す必要があります。
user Apache
group Apache
ユーザーのhomedirs public_htmlフォルダーでvhostsを実行すると仮定します
Chmod/home /%user%を755に変更し、public_htmlのグループをApacheに変更する必要があります
chown %user%:Apache /home/%user%/public_html
chomod 755 /home/%user%
次に、ユーザーのphp-fpmプールを定義します
[%user%]
listen = /var/run/php-fpm/%user%.socket
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = web
listen.group = www
listen.mode = 0666
user = %user%
group = %userg%
#pm.status_path = /fpm-status
pm = ondemand
pm.max_children = 20
#pm.start_servers = 6
#pm.min_spare_servers = 5
#pm.max_spare_servers = 10
pm.max_requests = 500
request_terminate_timeout = 600s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
php_admin_value[error_log] = /home/%user%/fpm-error.log
php_flag[display_errors] = on
php_flag[display_startup_errors] = on
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 128M
php_value[session.save_handler] = files
php_value[session.save_path] = /tmp
これはサンプルファイルです。本番マシンで使用する前に変更することをお勧めします
Mod_fastcgiをインストールして構成したら、次のように、ユーザーごとに特別なphpハンドラーを追加する必要があります。
nano /etc/httpd/conf.d/php-fpm.conf
Action fcgi-php-fpm /fcgi-php-fpm virtual
Alias /fcgi-php-fpm /fcgi-php-fpm
FastCgiExternalServer /fcgi-php-fpm -socket /var/run/php-fpm/web.socket -pass-header Authorization -idle-timeout 180
そしてあなたのvhostファイルに
<VirtualHost *:80>
ServerName beforeafter.local
ServerAlias www.beforeafter.local
DocumentRoot /home/web/public_html/before
DirectoryIndex index.htm index.html index.php
ErrorLog /home/web/ba.error.log
CustomLog /home/web/ba.access.log combined
UseCanonicalName Off
Options FollowSymlinks +Indexes
RewriteEngine On
AddType text/html .php
AddHandler fcgi-php-fpm .php
<Directory />
AllowOverride All
</Directory>
</VirtualHost>
機能するには、アクション名とハンドラー名が一致している必要があります。
その後、各ユーザーは独自の名前でphpを実行します。
スピードアップのためにすべての不要なApacheモジュールを無効にし、設定に精通していない場合はSELinuxをオフにすることをお勧めします。