本身動手搭建lnmp環境

如何配置lnmp
(本人在ubuntu環境下)
安裝nginx,php,php-fpm(php5-fpm),mysql,fastcgi,(php-cli,命令行工具)
安裝不是問題,apt-get install就能夠,問題是配置,php

配置過程當中有幾個命令挺有用的:
nginx -t、php5-fpm -t、fastcgi -t,等等
就是檢測配置文件的語法
關於查看程序運行狀態、啓動、重啓等有的支持service 程序名 {start|restart|stop|…}(彷佛是在/etc/init.d/*的程序),有的是:程序名 {start|restart|stop|…}(彷佛是/etc/下的程序),
還有一些是要指定目錄下的程序(木有配置環境變量)html

本人安裝nginx是1.4.6版本,配置文件(find / -name nginx.conf自行查找)會include來include去的,要注意include的文件,
彷佛include了兩個文件,include /etc/nginx/sites-enabled/*是主站,另一個include至關於配置虛擬主機,固然經過改配置也能夠倒過來,
還能夠改文件名,路徑等mysql

nginx配置文件的默認用戶和用戶組爲www-data,剛安裝好彷佛就能訪問了,打開瀏覽器訪問127.0.0.1就o了,
可是此時並不支持php,若是你編輯一個php文件並在瀏覽器中訪問就會發現程序會下載,那麼,此時咱們須要安裝php、
php-cli,有了這兩個以後能夠在命令行模式下運行php(php 文件名,php –help查看幫助),可是仍是不能在瀏覽器中運行,
接下來須要安裝fastcgi,nginx

fastcgi是什麼東東呢?據說是:
首先請求從瀏覽器發起,(中間省略一堆過程…),那麼此時php文件(程序)中須要接受參數,參數又從url地址中傳輸過來,這只是最基本的,還有ip地址,瀏覽器信息等等會被封裝
成特定的格式,而fastcgi就能夠識別這些格式的數據,經過這一步而後再到php執行程序中,(此處又略去幾萬字),還有一個提一提,與php CGI同樣fastcgi也須要載入php.ini配置初始化程序,不一樣的是CGI是每次處理php程序都要載入php.ini,而fastcgi是開啓監聽端口或採用unix socket監聽,
好了,fastcgi安裝好後回到配置中了,nginx的默認配置站點是include /etc/nginx/sites-enabled/*,我的把它註釋掉,而後在http{}之間加入server{},
固然,保持默認也是同樣的,
server{
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;#路徑不必定是tmp
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
注意此時有個fastcgi.conf須要引入,代碼大體以下
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;sql

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;ubuntu

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;瀏覽器

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;socket

配置好後要記得nginx -t,沒問題後從新啓動程序tcp

find / -name php(5)-cgi.sock,看是否存在,不存在果斷註釋掉,採用tcp,就是監聽9000或其餘沒有佔用的端口,接下來開啓一個screen,
screen -S www
php-cgi -b 127.0.0.1:9000(php(5)-cgi –help,具體看你的版本)
監聽好後不要ctrl+c,ctrl+a+d即可後臺運行(具體搜索screen的使用)
ok,能夠在瀏覽器中輸入站點url了(http://127.0.0.1/index.php),不出意外的話此時能夠訪問了,php-fpm

好了,雖然能夠運行,但這樣的作法不利於站點維護,流行的作法是給fastcgi一個進程管理程序,這裏用php-fpm,
一般,據說新的php版本集合了php-fpm(本人的是php5-fpm),但個人並木有(仍是老方法,find / -name php*-fpm),可能要經過編譯安裝,
安裝完後能夠find一下,找到php-fpm.conf,找到以後注意有木有include其餘配置文件,
一下幾個基礎配置
listen = 127.0.0.1:9000#與server{}裏fastcgi_pass設置一致
#fpm監聽端口,即nginx中php處理的地址,通常默認值便可。可用格式爲: ‘ip:port’, ‘port’, ‘/path/to/unix/socket’. 每一個進程池都須要設置.

listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket設置選項,若是使用tcp方式訪問,這裏註釋便可。

user = www
group = www
#啓動進程的賬戶和組

配置好以後不要忘記語法檢查,最後啓動中止和重啓,
如今能夠到www screen中把把監聽停掉了
#測試php-fpm配置
/usr/local/php/sbin/php-fpm -t
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t

#啓動php-fpm
/usr/local/php/sbin/php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

#關閉php-fpm
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`#程序啓動時會把分配的pid的第一個進程寫入到這裏

#重啓php-fpm
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
(說明:關於路徑請根據本身的具體狀況,以上php-fpm還有多是php5-fpm)

總結:

1.安裝nginx,php,php-fpm(php5-fpm),mysql,fastcgi,(php-cli,命令行工具)

2.配置

3.因爲本人實驗沒作到MySQL,就留到之後寫吧

原文地址:http://wp.iyouths.org/233.html

相關文章
相關標籤/搜索