飞天惊鸿 發表於 2023-12-2 00:00:00

Ubuntu/Debian上安装Nginx+php环境详细教程

<p>
        尽管Apache已经占据半片江山,但很多人仍然在寻找其他的方式去托管他们的站点,Apache不只是一个选择,其他很多优秀的服务器程序例如lighthttp和nginx也是不错的选择。本教程将要向您展现如何在Ubuntu操作系统上面安装,教程同样适用在Debian,尽管有一点点小差别,但并没有太大影响。怎么样,下面我们开始吧。</p>
<p>
        <strong>0.开始注意</strong></p>
<p>
        为了完成教程中提到的操作,我们假设您已经安装了一个基本的Debian或者Ubuntu操作系统。怎么安装系统这是不同的教程了,这里就不再详细说明。本教程主要介绍如何简单获取Nginx+php的运行环境。</p>
<p>
        <strong>1.安装Nginx</strong></p>
<p>
        第一步要做的就是从库中下载,这个操作是非常简单的。</p>
<p>
        sudo apt-get install nginx</p>
<p>
        更改默认的虚拟站点配置,文件在:</p>
<p>
        sudo vim /etc/nginx/sites-available/default</p>
<p>
        一个漂亮的关键配置是:</p>
<p>
        server {</p>
<p>
        listen 80;</p>
<p>
        server_name localhost;</p>
<p>
        access_log /var/log/nginx/localhost.access.log;</p>
<p>
        ## Default location</p>
<p>
        location / {</p>
<p>
        root /var/www;</p>
<p>
        index index.php;</p>
<p>
        }</p>
<p>
        ## Images and static content is treated different</p>
<p>
        location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {</p>
<p>
        access_log off;</p>
<p>
        expires 30d;</p>
<p>
        root /var/www;</p>
<p>
        }</p>
<p>
        ## Parse all .php file in the /var/www directory</p>
<p>
        location ~ .php$ {</p>
<p>
        fastcgi_split_path_info ^(.+.php)(.*)$;</p>
<p>
        fastcgi_pass backend;</p>
<p>
        fastcgi_index index.php;</p>
<p>
        fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;</p>
<p>
        include fastcgi_params;</p>
<p>
        fastcgi_param QUERY_STRING $query_string;</p>
<p>
        fastcgi_param REQUEST_METHOD $request_method;</p>
<p>
        fastcgi_param CONTENT_TYPE $content_type;</p>
<p>
        fastcgi_param CONTENT_LENGTH $content_length;</p>
<p>
        fastcgi_intercept_errors on;</p>
<p>
        fastcgi_ignore_client_abort off;</p>
<p>
        fastcgi_connect_timeout 60;</p>
<p>
        fastcgi_send_timeout 180;</p>
<p>
        fastcgi_read_timeout 180;</p>
<p>
        fastcgi_buffer_size 128k;</p>
<p>
        fastcgi_buffers 4 256k;</p>
<p>
        fastcgi_busy_buffers_size 256k;</p>
<p>
        fastcgi_temp_file_write_size 256k;</p>
<p>
        }</p>
<p>
        ## Disable viewing .htaccess &amp; .htpassword</p>
<p>
        location ~ /.ht {</p>
<p>
        deny all;</p>
<p>
        }</p>
<p>
        }upstream backend { server 127.0.0.1:9000;}</p>
<p>
        好了,我们完成到这里,下面我们需要安装PHP所需要的文件。</p>
<p>
        <strong>2.安装PHP</strong></p>
<p>
        很多站点都使用PHP提供动态内容,他们可能是一个wiki一个博客,或者一个论坛什么的。</p>
<p>
        如果你现在运行的是Ubuntu,我们首先需要解决两种不同的deb包,如果你运行的是amd64版本,那需要更改i386为amd64</p>
<p>
        注意:如果是debian则不需要做这些</p>
<p>
        cd /tmp</p>
<p>
        wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb</p>
<p>
        wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb</p>
<p>
        sudo dpkg -i *.deb</p>
<p>
        再次说明,这个只需要在Ubuntu上面操作就可以了,如果是最新版本的12.04可以省略掉这个。</p>
<p>
        下面剩余部分将在Ubuntu和Debian上面都通用。</p>
<p>
        我们需要增加APT源来增加deb包,所以我们可以使用php5.3和php-fpm</p>
<p>
        sudo echo "deb http://php53.dotdeb.org stable all" &gt;&gt; /etc/apt/sources.list</p>
<p>
        更新apt:</p>
<p>
        sudo apt-get update</p>
<p>
        下面我们开始安装PHP(第一部分)</p>
<p>
        sudo apt-get install php5-cli php5-common php5-suhosin</p>
<p>
        我们需要安装命令行,不然接下来就会出现些小问题</p>
<p>
        sudo apt-get install php5-fpm php5-cgi</p>
<p>
        如果你打算使用数据库或者一些需要的模块(例如:mcrypt,ldap,snmp等)你同样可以安装他们。</p>
<p>
        好了,我们现在已经安装完了nginx和php</p>
<p>
        一个注意点:如果你使用"php的短标记(<!--?)",你需要在php.ini中开启(fpm和cli同样),如果你不改变这些,你将看到代码以文本的方式显示。</p--></p>
<p>
        <strong>3.完成</strong></p>
<p>
        重启nginx服务器</p>
<p>
        sudo /etc/init.d/nginx restart</p>
<p>
        配置完成php.ini后需要重启php5-fpm,使用命令</p>
<p>
        sudo /etc/init.d/php5-fpm restart</p>
<p>
        全部完成,你可以运行了。</p>
<p>
        <strong>4.测试</strong></p>
<p>
        我们可以在/var/www中创建一个index.php的文件,内容如下:</p>
<p>
        <!--?php phpinfo(); ?--></p>
<p>
        通过浏览器访问,你可以看到php的一个大致的信息,如果没有则说明一些配置错误,需要重新检查。</p>
<p>
        <strong>5.问题和最终提示</strong></p>
<p>
        如果你没有看到phpinfo,可能会出现一些错误,那可以执行:</p>
<p>
        sudo tail /var/log/nginx/error.log</p>
<p>
        查看错误日志,另外每次当你修改了php.ini后,需要重启php5-fpm。无需重启nginx。</p>
<p>
        在默认的配置中nginx是启用了fastcgi的错误日志的,如果看到一个严重的错误(例如出现"cannot redeclare class xyz"),nginx可以看到这个“漂亮的”错误页面,那可能是一些错误发生了。</p>
<p>
        如果这样你可以关闭,如果php5-fpm不能运行,你的php文件将不会被解析,并且nginx会显示一个错误页面。</p>
<p>
        好了,我猜你已经完成了,并且现在使用nginx作为你的web服务器,nginx是一个小巧、漂亮并且你可以配置很多东西的一个东东,如果你需要伪静态,注意nginx不会运行 .htaccess 文件,你需要伪静态更改vhost配置。</p>
<p>
        如果对在Linux下感兴趣的朋友可以查看《Linux下的DedeCMS站点高级安全策略》</p>
<p>
        翻译:天涯</p>
<p>
        原文:http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian</p>
頁: [1]
查看完整版本: Ubuntu/Debian上安装Nginx+php环境详细教程