返回首頁
當前位置: 主頁 > 精通Office > Ubuntu教程 >

Ubuntu 從搭建到優化

時間:2018-10-30 14:12來源:知行網www.f1globe.com 編輯:麥田守望者

起步

修改主機名

配置文件 : /etc/hostname

修改服務器端口

為了服務器安全, 可修改登錄服務器的端口, 端口默認是 22, 配置文件 vim /etc/ssh/sshd_config 找到 Port 22 修改

修改完之后, 執行 reboot 重啟服務器.

軟件安裝方法

Ubuntu 安裝軟件非常簡單 apt-get install, 不過安裝之前先更新源, apt-get update, 衍生命令 apt-get dist-upgrade 這是更新系統中所有的軟件, 在執行這個命令之前要 apt-get update 更新源更新之后再更新軟件.

起步軟件安裝

  • apt-get install curl
  • apt-get install wget
  • apt-get install mcrypt
  • apt-get install openssl

安裝

安裝 Nginx 服務器

執行 apt-get install nginx, Nginx 的默認安裝目錄是 /etc/nginx

Nginx 配置文件

主配置文件 /etc/nginx/nginx.conf, 不過 Ubuntu 系統自動為我們的 Nginx 配置文件做了分片, 這樣方便我們閱讀, 編輯主配置文件.

vim /etc/nginx/nginx.conf  

主配置放置一些配置信息, 新手暫時不用理會, 在配置文件 70 行有如下配置

include /etc/nginx/conf.d/*.conf;  
include /etc/nginx/sites-enabled/*;  

/etc/nginx/conf.d/*.conf

這里值得注意的是 conf.d 目錄下放的也是 Nginx 的配置, 在加載順序上 conf.d 里面的配置在最下面, 它會覆蓋原有配置文件里面的配置, 如果我們需要去修改配置, 要在 conf.d 里面修改, 而不是直接修改主配置文件, 這樣就算改錯了也能恢復.

/etc/nginx/sites-enabled/*

sites-enabled 是虛擬機主機配置文件, 我們去添加一個站點的不會再 nginx.conf 里面進行修改, 當然也不會再 sites-enabled 里面, 而是在 sites-available 文件夾里面, 從兩個文件夾的字面意思也能知道 sites-available 是可用站點, sites-enabled 是已用站點.

現在通過 IP 就能訪問到我們默認的 Nginx 服務器.

安裝 PHP

執行命令 apt-get install php5, apt-get install php5-fpm

安裝完 PHP 之后暫時是不能執行 PHP 文件的, 因為 Nginx 還沒有配置'識別' PHP 文件

配置 Nginx '識別' PHP

打開 Nginx 站點默認配置文件 vim /etc/nginx/sites-available/default 開始配置

server {  
        listen 80 default_server; // 監聽80端口, 默認站點
        listen [::]:80 default_server ipv6only=on; // IPV6 開啟

        root /usr/share/nginx/html; // 網站站點目錄

        index index.php index.html index.htm; // 默認首頁, 這里添加 index.php

        server_name localhost; // 域名

        location / {
                try_files $uri $uri/ =404; // 首頁訪問規則
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        // 開啟這塊的注釋
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                // 兩種方式 : 1.監聽 9000 端口, 2.sock 鏈接, 推薦使用 1
                fastcgi_pass 127.0.0.1:9000;
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

如果是設置的 fastcgi_pass unix:/var/run/php5-fpm.sock fpm 配置文件不需要修改, 如果是監聽 9000 端口就需要修改 fpm 配置文件 vim /etc/php5/fpm/pool.d/www.conf.

// 注釋掉 sock 添加監聽 9000 端口
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000  

fpm 配置文件修改之后, 需要重啟 fpm 才能生效 service php5-fpm start, 如果想要檢測 9000 端口是否開啟成功運行 netstat -tln

運行 PHP 文件

Nginx 的站點默認目錄 /usr/share/nginx/html/

// 進入站點目錄
cd /usr/share/nginx/html  
// 編輯一個 PHP 文件
vim index.php

// 內容如下
<?php  
    phpinfo();
?>

優化

php-fpm 優化

php-fpm 配置文件在 /etc/php5/fpm/pool.d/www.conf

php-fpm.conf 重要優化參數詳解

// 查看配置文件
cat /etc/php5/fpm/pool.d/www.conf  

pm = dynamic

pm 參數指定了進程管理方式, 有兩種可供選擇: static 或 dynamic, 分別為靜態或動態方式.

  • static 靜態方式: 在php-fpm 啟動的時候就創建了指定數目的進程, 在運行過程中不會再有變化 (并不是真的就永遠不變)
  • dynamic 動態方式: 在運行過程中動態調整, 當然并不是無限制的創建新進程, 受 pm.max_spare_servers 參數影響, 動態適合小內存機器, 靈活分配進程,省內存. 靜態適用于大內存機器, 動態創建回收進程對服務器資源也是一種消耗.

pm.max_children = 24

static 模式下創建的子進程數或 dynamic 模式下同一時刻允許最大的 php-fpm 子進程數量.

pm.start_servers = 16

動態方式下的起始 php-fpm 進程數量

pm.minspareservers = 12

動態方式下服務器空閑時最小 php-fpm 進程數量

pm.maxspareservers = 24

動態方式下服務器空閑時最大 php-fpm 進程數量

一般 php-fpm 進程占用 20~30m 左右的內存就按 30m 算. 如果單獨跑 php-fpm, 動態方式起始值可設置物理內存 Mem/30M, 由于大家一般 Nginx、MySQL 都在一臺機器上, 于是預留一半給它們, 即 php-fpm 進程數為 $Mem/2/30。

// LNMP在一臺機器上參數(僅供參考,建議壓力測試得出)
Mem=`free -m | awk '/Mem:/{print $2}'` #這臺機器內存是 987M  
sed -i "s@^pm.max_children.*@pm.max_children = $(($Mem/2/20))@" $php_install_dir/etc/php-fpm.conf  
sed -i "s@^pm.start_servers.*@pm.start_servers = $(($Mem/2/30))@" $php_install_dir/etc/php-fpm.conf  
sed -i "s@^pm.min_spare_servers.*@pm.min_spare_servers = $(($Mem/2/40))@" $php_install_dir/etc/php-fpm.conf  
sed -i "s@^pm.max_spare_servers.*@pm.max_spare_servers = $(($Mem/2/20))@" $php_install_dir/etc/php-fpm.conf

// 987M 內存:
pm = dynamic  
pm.max_children = 24  
pm.start_servers = 16  
pm.min_spare_servers = 12  
pm.max_spare_servers = 24  

上面代碼塊是一個自動計算的腳本 $php_install_dir/etc/php-fpm.conf 這里替換為你 php-fpm.conf 的路徑, 或者帶有有上述參數的配置文件, 然后就會自動替換參數, 下面還有更簡單的辦法.

家目錄生成一個文件

cd /root  
vim 1.conf  

添加一下內容

pm = dynamic  
// 以下的參數隨意填寫, 后面會計算出來.
pm.max_children = 24  
pm.start_servers = 16  
pm.min_spare_servers = 12  
pm.max_spare_servers = 24

自動計算最優參數

// 以下代碼一行一行復制至命令行執行
Mem=`free -m | awk '/Mem:/{print $2}'`  
sed -i "s@^pm.max_children.*@pm.max_children = $(($Mem/2/20))@" /root/1.conf  
sed -i "s@^pm.start_servers.*@pm.start_servers = $(($Mem/2/30))@" /root/1.conf  
sed -i "s@^pm.min_spare_servers.*@pm.min_spare_servers = $(($Mem/2/40))@" /root/1.conf  
sed -i "s@^pm.max_spare_servers.*@pm.max_spare_servers = $(($Mem/2/20))@" /root/1.conf  

執行完成之后 1.conf 文件的內容會根據當前服務器配置, 自動計算出最佳參數, cat 1.conf 查看文件, 按照里面的參數填寫到你的 fpm 配置文件當中. 值得一提的是如果你的服務器內存是 1G 計算出的結果不會改變. (這里指上面 1.conf 的參數)

這是我機器計算出來的結果

// 當前機器內存為 : 1984M
pm = dynamic  
pm.max_children = 49  
pm.start_servers = 33  
pm.min_spare_servers = 24  
pm.max_spare_servers = 49  
------分隔線----------------------------
標簽(Tag):Ubuntu Ubuntu從搭建到優化
------分隔線----------------------------
推薦內容
猜你感興趣
99久久免费高清热精品