安装、配置php

一、安装、配置apache、php

 Apache 文档

 Apache 下载站点

下载2.x版本的Apache,并且根据上文选择合适版本的 PHP 下载。本向导仅包含最基础的内容,只能让 Apache 2.x 和 PHP 能够正常工作。

“NN”替换为相应的版本号。

1.从上面列出的地方获取 Apache 源码包,然后解压:

gzip -d httpd-2_x_NN.tar.gz
tar -xf httpd-2_x_NN.tar

 

2.同样,获取 PHP 源码包并解压:

gunzip php-NN.tar.gz
tar -xf php-NN.tar

3.编译并安装 Apache。请参考 Apache 安装文档了解编译 Apache 的更多细节。

cd httpd-2_x_NN
./configure --enable-so
make
make install

 

4.现在已经将 Apache 2.x.NN 安装在 /usr/local/apache2。本安装支持可装载模块 和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器:

/usr/local/apache2/bin/apachectl start

如果成功,可以停止 Apache 服务器并继续安装 PHP:

/usr/local/apache2/bin/apachectl stop

5.现在需要配置并编译 PHP。

在这里可以用各种各样的参数来自定义 PHP,例如启动哪些扩展功能包的支持等。

用 ./configure --help 命令可以列出当前可用的所有参数。

在此例中,将给出一个在有 MySQL 支持的 Apache 2 上进行配置的范例。

如果按照上面的说明从源代码编译了 Apache,下面的例子会正确匹配 apxs 的路径。

如果通过其他方式安装了 Apache,需要相应的调整 apxs 的路径。

注意,在有些发行版本中,可能将 apxs 更名为 apxs2。

cd ../php-NN
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
make
make install

如果决定在安装后改变配置选项,只需重复最后的三步 configure,make,以及 make install,然后需要重新启动 Apache 使新模块生效。Apache 不需要重新编译。

请注意,除非明确有提示,否则“make install”命令将安装 PEAR、各种 PHP 工具诸如 phpize,并安装 PHP CLI 等等。

6.配置 php.ini

cp php.ini-development /usr/local/lib/php.ini 

 

 可以编辑 php.ini 来设置 PHP 运行时的选项。

如果想要把此文件放到另外的位置,需要在步骤 5 添加 --with-config-file-path=/path 选项。

如果选择了 php.ini-production,请务必阅读其中的变更列表,它们将影响 PHP 的执行。

 

7.编辑 httpd.conf 文件以调用 PHP 模块。

LoadModule 达式右边的路径必须指向系统中的 PHP 模块。

以上的 make install 命令可能已经完成了这些,但务必要检查。

LoadModule php5_module modules/libphp5.so

 

 8.告知 Apache 将特定的扩展名解析成 PHP,例如,让 Apache 将扩展名 .php 解析成 PHP。

为了避免潜在的危险,例如上传或者创建类似 exploit.php.jpg 的文件并被当做 PHP 执行,我们不再使用 Apache 的 AddType 指令来设置。

参考下面的例子,你可以简单的将需要的扩展名解释为 PHP。我们演示为增加.php。

<FilesMatch \.php$>
 SetHandler application/x-httpd-php 
</FilesMatch>

 

或者,你也想将 .php,.php2,.php3,.php4,.php5,.php6,以及 .phtml 文件都当做 PHP 来运行,我们无需额外的设置,仅需按照下面这样来:

<FilesMatch "\.ph(p[2-6]?|tml)$">
 SetHandler application/x-httpd-php 
</FilesMatch>

 

 然后,可以将 .phps 文件由 PHP 源码过滤器处理,使得其在显示时可以高亮源码,设置如下:

<FilesMatch "\.phps$">
 SetHandler application/x-httpd-php-source 
</FilesMatch>

 

mod_rewrite 也有助于将那些不需要运行的 .php 文件的源码高亮显示,而并不需要将他们更名为 .phps 文件:

RewriteEngine On 
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

 

不要在正式生产运营的系统上启动 PHP 源码过滤器,因为这可能泄露系统机密或者嵌入的代码中的敏感信息。

 

9.按照通常的方式启动 Apache 服务:

/usr/local/apache2/bin/apachectl start 

或者

service httpd restart 

 

按照上面的步骤便可以使 Apache 2.x 将 PHP 作为 SAPI 模块了。当然 Apache 和 PHP 都还有很多配置选项,可以在相应的源代码目录中使用./configure --help 获得更多信息。

假如要编译一个多线程版本的 Apache,可在编译时选择用 worker MPM 来替换标准的 prefork MPM。只需在上面的第 3 步使用:

--with-mpm=worker

 

如果不是很明确这样做的后果并且大概理解其含义的话,最好不要进行这一步。更多信息请参考 Apache 文档中关于 » MPM-Modules 的部分。

Note:

Apache MultiViews 常见问题中讨论了在 PHP 中使用 MultiViews。

Note:

要编译多线程版本的 Apache,系统必须支持多线程。这也意味着需要将 PHP 编译为正处在试验阶段的 Zend Thread Safety(ZTS),因此并不是所有的扩展都可以使用了。推荐编译 Apache 使用标准的 prefork MPM-Module。

原文 地址:http://php.net/manual/zh/install.unix.apache2.php

 

二、安装、配置nginx、php

本文档仅包含 Nginx 服务器的基本配置,它将通过 80 端口提供 PHP 应用的处理能力。 如果您需要超出本文档范围的安装配置指导,建议您查阅 Nginx 和 PHP-FPM 的文档。

1.建议您访问 Nginx Wiki » 安装 页面以获取并在您的系统上安装 Nginx。

2.获取并解压 PHP 源代码:

tar zxf php-x.x.x 

3.配置并构建 PHP。在此步骤您可以使用很多选项自定义 PHP,例如启用某些扩展等。 运行 ./configure --help 命令来获得完整的可用选项清单。 在本示例中,我们仅进行包含 PHP-FPM 和 MySQL 支持的简单配置。

cd ../php-x.x.x 
./configure --enable-fpm --with-mysql 
make 
sudo make install 

4.创建配置文件,并将其复制到正确的位置。

cp php.ini-development /usr/local/php/php.ini 
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf 
cp sapi/fpm/php-fpm /usr/local/bin 

5.需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。

将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。

打开 php.ini:

vim /usr/local/php/php.ini 

定位到 cgi.fix_pathinfo= 并将其修改为如下所示:

cgi.fix_pathinfo=0 

6.在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。

vim /usr/local/etc/php-fpm.conf 

 找到以下内容并修改:

; Unix user/group of processes 
; Note: The user is mandatory. If the group is not set, the default user's group 
; will be used. user = www-data group = www-data 

然后启动 php-fpm 服务:

/usr/local/bin/php-fpm 

 

本文档未涵盖对 php-fpm 进行进一步配置的信息,如果您需要更多信息,请查阅相关文档。

 

7.配置 Nginx 使其支持 PHP 应用:

vim /usr/local/nginx/conf/nginx.conf 

修改默认的 location 块,使其支持 .php 文件:

location / { 
root html; 
index index.php index.html index.htm; 
}

 下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:

location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

重启 Nginx。

sudo /usr/local/nginx/sbin/nginx -s stop sudo /usr/local/nginx/sbin/nginx 

8. 创建测试文件。

rm /usr/local/nginx/html/index.html echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php  

打开浏览器,访问 http://localhost,将会显示 phpinfo() 。

通过以上步骤的配置,Nginx 服务器现在可以以 SAPI SAPI 模块的方式支持 PHP 应用了。 当然,对于 Nginx 和 PHP 的配置,还有很多可用的选项, 请在对应的源代码目录执行 ./configure --help 来查阅更多配置选项。

 

 

posted on 2019-02-22 14:05  myworldworld  阅读(184)  评论(0)    收藏  举报

导航