Apache-2.2

安裝 PHP 後,Apache 在提供靜態內容方面(相對)慢?

  • September 18, 2013

首先是關於我如何安裝 PHP、Apache 和一些 Apache 模組的背景知識:

# apt-get -y install php5 php-pear libapache2-mod-php5 php-apc php5-mysql php5-mcrypt php5-xmlrpc php5-curl php5-imagick php5-gd php5-imap php5-pspell

# apt-get -y install apache2 apache2-doc apache2-utils

# a2enmod setenvif headers deflate filter expires rewrite include

我的 httpd.conf 文件看起來像這樣(即,我基本上禁用了 .htaccess,並在 httpd.conf 中擁有所有規則):

<Directory /var/www/example.com/public>

 AllowOverride None

 [...]

</Directory>

考慮到它可以讓您對我的網路伺服器的設置方式有一個基本的了解,我想繼續提出以下問題:

  1. Apache 在安裝 PHP 的情況下提供靜態內容的速度是否相對較慢?(我猜。)
  2. 可以說,我的網站的根目錄是“/var/www/example.com/public”,並且我在“/var/www/example.com/public/uploads”中擁有所有靜態內容(CSS、JS、圖像) ‘; 如何克服*問題 (1)*而無需將所有靜態內容移動到未安裝 PHP 的伺服器?

這取決於您如何使用 php 配置 apache,如何優化您的配置。如果 php 配置了 CGI 介面,那麼 apache 將僅將某些類型的文件從外部傳遞給 php(例如與 nginx 相同),因此對其他文件的影響為 0,如果是模組,它可能會更快動態頁面,因為它沒有從外部呼叫 php,但對其他人來說可能會更慢,因為 php 模組一直載入 apache,儘管它僅對某些類型的文件仍然有效(根據 mimetype)。

  1. 是/否
  2. 將 mod_fcgid 與 php 一起使用

配置為模組的 php 範例,僅解析 .php 文件(RHEL5/6,Fedora):

[root@main ~]# cat /etc/httpd/conf.d/php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
 LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
 LoadModule php5_module modules/libphp5-zts.so
</IfModule>


#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
AddType application/x-httpd-php-source .phps

引用自:https://serverfault.com/questions/539623