天天看點

學習筆記---Ubuntu上搭建web伺服器

Note from 2014-06-28 17:57:14.400

Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

利用http://www.linuxidc.com/Linux/2014-05/102351.htm 文檔做為安裝的參考文檔,并錄制視訊來完成整個安裝和測試

============

1 安裝前的提示

   修改自己的主機名 并記錄下你的IP,友善後面測試使用。

   另外,安裝中我們使用root使用者,先進行使用者切換

   指令:sudo su  (輸入密碼就可以了,這樣做可以減少後面安裝軟體時經常輸入密碼)

2 安裝mysql 5資料庫

   指令是:

    apt-get install mysql-server mysql-client

    安裝過程中會通路建立root賬号的密碼,連續輸入兩次:

   提示如下:

    New password for the MYSQL "root" user: 輸入你的密碼

    Repeat password for the MYSQL "root" user:再輸入一次

3 安裝Nginx

   在安裝Nginx前,先檢查一下是否安裝了apache 2,安裝了再删除,指令如下:

     server apache2 stop

    update-rc.d -f apache2 remove

    apt-get remove apache2

    apt-get install nginx

   啟動nginx,service nginx start

   測試是否啟動成功: 在浏覽器裡輸入

    http://localhost or http://ip ,

    如果出現welcome to nginx! 頁面就是安裝成功了!!!

   Note:在Ubuntu 14.04中預設的根目錄為

    /usr/share/nginx/html

4 安裝PHP 5

    我們必須通過PHP-FPM才能讓PHP5正常工作,安裝指令:

    apt-get install php5-fpm

    php-fpm是一個守護程序

5 配置nginx

    使用vi打開配置檔案/etc/nginx/nginx.conf,指令如下:

    vi /etc/nginx/nginx.conf

    配置不是很容易明白,可以參考相關網頁,如:

    http://wiki.nginx.org/NginxFullExample

    我們調整:工作程序數:

    worker_processes 4;

    keepalive_timeout 2;

    預設虛拟主機設定檔案/etc/nginx/sites-available/default 指令如下:

    vi /etc/nginx/sites-available/default

    配置如下:

    server {

        listen 80;

        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;

        index index.php index.html index.htm;

        # Make site accessible from http://localhost/

        server_name _;

        location / {

                # First attempt to serve request as file, then

                # as directory, then fall back to displaying a 404.

                try_files $uri $uri/ /index.html;

                # Uncomment to enable naxsi on this location

                # include /etc/nginx/naxsi.rules

        }

        location /doc/ {

                alias /usr/share/doc/;

                autoindex on;

                allow 127.0.0.1;

                allow ::1;

                deny all;

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests

        #location /RequestDenied {

        #       proxy_pass http://127.0.0.1:8080;

        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page 500 502 503 504 /50x.html;

        location = /50x.html {

                root /usr/share/nginx/html;

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        location ~ .php$ {

                try_files $uri =404;

                fastcgi_split_path_info ^(.+.php)(/.+)$;

                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:

                #fastcgi_pass 127.0.0.1:9000;

                # With php5-fpm:

                fastcgi_pass unix:/var/run/php5-fpm.sock;

                fastcgi_index index.php;

                include fastcgi_params;

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        location ~ /.ht {

}

    取消同時偵聽ipv4 和ipv6的80端口

    erver_name _; 預設主機名 (當然你可以修改,例如修改為: www.example.com).

index首頁這一行我們加入 index.php。

PHP 重要配置配置 location ~ .php$ {} 這幾行我們需要啟動,反注釋掉。另外再添加一行:try_files $uri =404。

(其他配置檢視http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP 和 http://forum.nginx.org/read.php?2,88845,page=3).

儲存檔案并重新加載 nginx 指令:

service nginx reload

如果加載失敗,直接用删除所有配置内容,用上面的資訊替換。

打開配置檔案 /etc/php5/fpm/php.ini… 

vi /etc/php5/fpm/php.ini

… 如下設定 cgi.fix_pathinfo=0:

[...]

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok

; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting

; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting

; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

; http://php.net/cgi.fix-pathinfo

cgi.fix_pathinfo=0

    重新加載 PHP-FPM:

    service php5-fpm reload

    現在建立一個探針檔案儲存在 /usr/share/nginx/html目錄下

    vi /usr/share/nginx/html/info.php

<?php

phpinfo();

?>

   浏覽器下通路探針檔案 (e.g. http://localhost/info.php):

    正如你看到的 PHP5 正在運作,并且是通過 FPM/FastCGI,向下滾動,我們看看那些子產品已經啟動,MySQL是沒有列出這意味着我們沒有MySQL支援PHP5。

6 下面讓 PHP5 支援 MySQL

    先搜尋一下,看看那些子產品支援:

    apt-cache search php5

    然後使用下面的指令安裝:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

    APC是一個自由和開放的PHP操作碼緩存器緩存和優化PHP的中間代碼。這是類似于其他PHP操作碼cachers,如eAccelerator、XCache。這是強烈建議有一個安裝加速你的PHP頁面。

    使用下面的指令安裝 APC:

    apt-get install php-apc

    現在重新加載 PHP-FPM:

    重新整理 http://localhost/info.php 向下滾動看看子產品是否支援:

7 讓 PHP-FPM 使用 TCP 連接配接

   預設情況下 PHP-FPM 偵聽的是 /var/run/php5-fpm.sock,要讓 PHP-FPM 使用 TCP 連接配接,需要打開編輯配置檔案 /etc/php5/fpm/pool.d/www.conf…

    vi /etc/php5/fpm/pool.d/www.conf

按照下面的修改資訊

;listen = /var/run/php5-fpm.sock

listen = 127.0.0.1:9000

    這将使php-fpm偵聽端口9000上的IP 127.0.0.1(localhost)。確定你使用的端口不在你的系統上使用。

    下面通過配置 nginx 修改主機,更改這一行注釋掉 fastcgi_pass unix:/var/run/php5-fpm.sock; 這一行反注釋 fastcgi_pass 127.0.0.1:9000;,按照下面的設定:

                fastcgi_pass 127.0.0.1:9000;

                #fastcgi_pass unix:/var/run/php5-fpm.sock;

    重新加載 nginx:

    service nginx reload

8 CGI/Perl Scripts

    如果你想 Nginx支援 CGI/Perl 腳本服務,可閱讀此教程 Serving CGI Scripts With Nginx On Debian Squeeze/Ubuntu 11.04

    推薦的方法是使用fcgiwrap(4章)

-------------------------------

另外收藏ubuntu 12.04 下lamp安裝配置教程,這個我在32位的14.04上安裝成功:

 參考:http://www.linuxidc.com/Linux/2012-05/61079.htm

指令如下:

1 lamp 安裝:

    sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql 

    根目錄在/var/www

    修改目錄權限:sudo chmod 777 /var/www/

2 phpmyadmin 安裝:

    sudo apt-get install phpmyadmin

     安裝過程中web server:apache2

    配置密碼

    建立與apache2的連接配接:

    sudo ln -s /usr/share/phpmyadmin /var/www

    測試:http://localhost/phpmyadmin

3 Apache 配置:

    啟用mod_rewirte子產品: sudo a2enmod rewrite 

    重新開機:sudo /etc/init.d/apache2 restart

    測試:test.php

    内容如下:

    <?php

    $link=mysql_connect("localhost","root","mysql_password");

    if(!$link){

    die('could not connect:',mysql_error());

    }

    else echo "mysql已經正确配置";

    mysql_close($link);

    ?>

    測試時出現中文亂碼解決方法如下:

    sudo gedit /etc/apache2/apache2.conf

    在最後添加: addDefaultCharset UTF-8

    儲存,并重新開機apache 就可以了

===========================

Ubuntu+Nginx+Mysql+Php(ubuntu 12.04)

來自:http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=241301&sid=65af77cf69180787da232f3343ca2fb8

-------------------

由于最新的php內建了fpm,ubuntu12.04及以上版本安裝更簡單了,安裝過程如下:

1、安裝網站系統

代碼:

sudo apt-get install nginx php5-common php5-fpm php-apc php5-mysql php5-gd mysql-server

2、修改nginx配置檔案

sudo vi /etc/nginx/sites-enabled/default

把其中的:

                root   /var/www;

                index  index.html index.htm;

改為:

                root   /var/www/nginx-default;

                index  index.php index.html index.htm;

其中的:

   #location ~ \.php$ {

   #   fastcgi_pass 127.0.0.1:9000;

   #   fastcgi_index index.php;

   #   include fastcgi_params;

   #}

        location ~ \.php$ {

                fastcgi_pass  127.0.0.1:9000;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;

                include  fastcgi_params;

3、重新開機系統、上傳檔案,網站建立成功!試試吧!

附:系統及部分軟體管理操作

1、作業系統:

sudo reboot now //重新開機系統

sudo halt //關閉系統

2、nginx配置修改及生效:

sudo vi /etc/nginx/nginx.conf //修改配置

sudo vi /etc/nginx/sites-enabled/default //修改配置

sudo service nginx restart //重新開機nginx

3、php配置修改及生效:

sudo vi /etc/php5/fpm/php.ini //修改配置

sudo service php5-fpm restart //重新開機fastcgi程序

3、網站目錄:

/var/www/nginx-default

===============================

本文轉自孤舟夜航之家部落格51CTO部落格,原文連結http://blog.51cto.com/cysky/1432038如需轉載請自行聯系原作者

cysky