安装PHP 5.3,Nginx和PHP-fpm在Ubuntu / Debian

在Ubuntu / Debian上安装PHP 5.3,Nginx和PHP-fpm

版本1.1
在推特上关注我

由于Apache大部分时间都是内存空闲的过程,所以人们开始寻找不同的方式来托管他们的网站。 Apache显然不是唯一可用的网络服务器。 一些很好的例子是lighttpd和nginx。 在本教程中,我将向您展示如何在Ubuntu服务器上安装它。 但是本教程也适用于Debian。 只有很小的差异。

准备? 我们开始吧

步骤0 - 初步说明

为了完成本教程,我假设您已经安装了Debian或Ubuntu的基本系统。 如何做到这一点,可以在不同的教程中阅读。 本教程只集中在使nginx + php运行没有太多麻烦。

第1步 - Nginx

安装nginx是我们必须做的第一步。 这可以通过从存储库下载来轻松完成。

sudo apt-get install nginx

为了正常工作,必须更改默认的vhost。

sudo vim /etc/nginx/sites-available/default

你的配置的一个很好的起点是:

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

## Default location
    location / {
        root   /var/www;
        index  index.php;
    }

## Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }

## Parse all .php file in the /var/www directory
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }
}
upstream backend {
server 127.0.0.1:9000;
}
 

好的,我们在这里完成 现在我们将为PHP安装所需的文件。

第2步 - 安装PHP

许多网站依靠PHP为他们提供动态内容,无论这是一个维基,论坛软件,博客或完全不同的东西。

如果您正在运行Ubuntu,我们首先必须解决dotdeb包所需的两个依赖关系。 如果您正在运行amd64版本,您应该使用amd64替换i386

对于Debian,您不必这样做!

cd /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo dpkg -i *.deb

再次, 只有在Ubuntu上需要这样做。

本教程的其余部分适用于Ubuntu和Debian。

我们必须将dotdeb存储库添加到APT源,所以我们可以使用他们打包的PHP 5.3和php-fpm:

sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list

更新apt:

sudo apt-get update

生成的文本应包括dotdeb。

现在我们将安装PHP(第1部分):

sudo apt-get install php5-cli php5-common php5-suhosin

我们必须在其余的时间之前安装cli,因为以后会导致问题。

sudo apt-get install php5-fpm php5-cgi

如果您打算使用数据库或需要特定的模块(mcrypt,ldap,snmp等),那么也可以安装它们。

好的,所以现在我们有了nginx和PHP。

一个小问题:如果您使用“php短标签”( <? ),您应该在php.ini文件(对于fpm和cli)中启用它们。 如果你不改变这个,你会看到你的代码纯文本!

第3步 - 敲定

重新启动nginx以赶上我们之前做的配置更改。

sudo /etc/init.d/nginx restart

重启应该没有任何问题。

安装php5-fpm后,应该已经开始了。 如果您更改了php.ini文件,则必须重新启动php5-fpm。

sudo /etc/init.d/php5-fpm restart

好吧。 他们现在应该都跑了。

第4步 - 测试

为了测试PHP的执行情况是否正常,请在/ var / www中创建一个index.php文件,内容如下:

<?php phpinfo(); ?>

访问您的网络服务器,您应该可以看到生成的phpinfo。 如果没有,出现问题。

第5步 - 疑难解答和最终注释

如果您没有看到phpinfo,可能会有问题。 为了跟踪出了什么问题,你可以检查nginx错误日志:

sudo tail /var/log/nginx/error.log

记住,如果你改变了php.ini,你必须重新启动php5-fpm。 重新启动nginx不是必需的。

在我的示例配置中,我启用了fastcgi错误拦截。 如果发生严重错误(例如“不能重新声明类xyz”),nginx可以捕获此页面并显示出错的页面。 这样一来,如果发生了严重的错误,那么给出的信息较少。

如果你不喜欢这个,你可以把它关掉。

如果php5-fpm未运行,您的PHP文件将无法解析,并且nginx会向用户显示错误页面。

嗯,我想我们已经完成了,现在你可以使用新的基于nginx的网络服务器来为PHP服务。 Nginx很漂亮,你可以配置很多。 如果需要重写,请注意,nginx不支持.htaccess文件。 您将需要更改您的vhost设置,以便重写工作。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏