最近,回到公司,發現電腦都換成linux系統了。。。很無力。。。
配置環境,跑起項目來就花了一天。。。額。。。在這里記錄一下~~
系統是Ubuntu 12.04。
一、安裝nginx1:ubuntu因為安全策略,一般是禁用了root用戶,所以每次執行命令時一般需要加上sudo去操作。為了方面后面其他步驟操作,可首先切換到root用戶,這樣后面不需要每次都加sudo了。sudo su – (切換用戶)2:默認ubuntu默認是官方的源,國內用戶訪問可能會比較慢,所以將官方的源修改為163的源,修改方法此處不做介紹,可查ubuntu官方的wiki幫助手冊。訪問地址:http://wiki.ubuntu.org.cn/Qref/Source3:源修改完畢后記得要刷新列表:apt-get update下面就開始安裝nginx了安裝nginx的方式有多種,可以通過官方下載nginx源碼包編譯安裝,也可以通過ubuntu軟件包的形式安裝,個人覺得都可以。大致考慮如下幾點因素:1)如果本身系統就是通過源碼編譯安裝的,那么系統的性能將是比較高的,那么這種情況,通過源碼來安裝軟件,性能是比較好的。而如果系統采用的是ubuntu等發行版安裝的,那么軟件通過源碼編譯并不能帶來非常明顯的性能提升。當然如果你想鍛煉一下,或者自我滿足一下,也可以試試通過源碼安裝。2)如果本身搭建環境的目地是為了測試、學習或小型的網站搭建,那么也不建議通過源碼的方式來安裝,源碼安裝的方式出現的問題會比較多,同時也增加了小型站長日后維護的難度。3)本身ubuntu系統支持的在線包管理機制,技術肯定已經非常成熟了,沒有必要過分擔心其穩定性與安全性。4)當然通過源碼編譯的方式帶來的好處是,定制性比較高。所以看個人需求了。好了,廢話不多說啦,開始進入正題。
4:安裝nginx
執行命令:apt-get install nginx
5.安裝完畢后,啟動nginx,對于Nginx 0.8.x后的版本采用新的啟動、停止、平滑啟動方式開啟服務:
/etc/init.d/nginx start
也有另外一種開啟服務的方式
/usr/sbin/nginx -c /etc/nginx/nginx.conf
前面是nginx的安裝路徑,-c代表的是指定nginx配置文件的路徑
停止服務/etc/init.d/nginx -s stop
重載
/etc/init.d/nginx -sreload啟動完畢后,打開瀏覽器,訪問http://localhost 查看nginx是否正常安裝并啟動。vps等如果有防火墻限制,則可能不能通過ip的方式直接訪問,而需要通過配置域名來訪問。nginx配置虛擬主機的方式,后面在說。
二、安裝MySQL
ubuntu 安裝mysql相對比較簡單
1.安裝mysql的服務端
apt-get install mysql-server
在安裝的過程中需要你輸入root用戶的密碼。
2.安裝mysql的客戶端apt-get install mysql-client
3.安裝完畢后,一般需要重新設置下字符集
1) 查看當前的編碼:show variables like 'character%';2) 修改my.cnf,在[client]下添加default-character-set=utf8
命令:vi /etc/mysql/my.cnf3) 在[server]下添加default-character-set=utf8,init_connect='SET NAMES utf8;'4) 重啟mysql
/etc/init.d/mysql restart
三、安裝php5-fpm
apt-get install php5-cgi
apt-get installphp5-fpm
apt-get installphp5-curl (客戶端 URL 庫函數庫)
apt-get installphp5-gd (GD庫圖像函數庫)
apt-get installphp5-mysql (增加對mysql支持)
apt-get installphp5-mcrypt (Mcrypt 加密函數庫)
apt-get installphp5-memcache (Memcache客戶端)
apt-get installphp5-memcached (Memcache服務端)
apt-get installphp5-dev (開發支持模塊)
覺得麻煩的話,可以寫成一句
apt-get install php5-cgiphp5-fpmphp5-curlphp5-gdphp5-mysqlphp5-mcryptphp5-memcachephp5-memcachedphp5-dev
我的系統是Ubuntu12.04,默認安裝的php版本是5.3.10。如果你要使用較高的版本,就先執行下面的命令,然后在執行上面安裝php的命令。
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
1:模塊說明:
什么是CGI ?
CGI全稱是“公共網關接口”(Common Gateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上。
什么是FastCGI ?
FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活后,不會每次都要花費時間去fork一次(這是CGI最為人詬病的fork-and-execute 模式)。它還支持分布式的運算, 即 FastCGI 程序可以在網站服務器以外的主機上執行并且接受來自其它網站服務器來的請求。
什么是PHP-CGI ?
PHP-CGI是PHP自帶的FastCGI管理器。
什么是PHP-FPM ?
PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的。PHP-FPM其實是PHP源代碼的一個補丁,旨在將FastCGI進程管理整合進PHP包中。PHP5.3.3已經集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進程管理方式,可以有效控制內存和進程、可以平滑重載PHP配置,所以被PHP官方收錄了。在./configure的時候帶 –enable-fpm參數即可開啟PHP-FPM。使用PHP-FPM來控制PHP-CGI的FastCGI進程
2:安裝完畢后,對fastcgi 配置需要做些修改
vi/etc/nginx/fastcgi_params
注釋下面這行#fastcgi_param SCRIPT_FILENAME $request_filename;增加此行fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
或者直接添加在修改default文件中,vi/etc/nginx/sites-available/default。
我按照第二種方法去配置~~
在default文件中,做如下修改
index index.html index.htm index.php;
location ~ /.php$ { 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; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
第一種的配置default文件內容也類似,只不過少了一句fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
3:php5-fpm 配置優化
vi /etc/php5/fpm/pool.d/www.conf
下面4個參數的意思分別為:pm.max_children:靜態方式下開啟的php-fpm進程數量。pm.start_servers:動態方式下的起始php-fpm進程數量。pm.min_spare_servers:動態方式下的最小php-fpm進程數量。pm.max_spare_servers:動態方式下的最大php-fpm進程數量。
注:以內存512M的VPS來說,建議設置的參數如下,僅供參考:pm = dynamicpm.max_children = 20pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 20
注釋掉下面這行代碼
listen = 127.0.0.1:9000
在這上面代碼的下面添加一行:
listen = /var/run/php5-fpm.sock
找到下面內容,將其解注釋
listen.owner = www-datalisten.group = www-datalisten.mode = 0660
四、安裝apc加速器
APC 可顯著加速 PHP 應用的速度。在應用中加入 APC 可提升應用的響應速度,降低服務器負載。
apt-get install php-apc
五、重啟php-fpm、nginxsudo /etc/init.d/php5-fpm restartsudo /etc/init.d/nginx restart
六、測試配置cd /usr/share/nginx/htmlsudo touch test.phpsudo vi test.php
在其中添加如下內容
<?php phpinfo();?>
打開http://localhost/test.php
看到如下頁面,就表明你配置成功了。

可能遇到的錯誤
1.通過終端安裝程序sudo apt-get install xxx時出錯:E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg/), is another PRocess using it?
出現這個問題可能是有另外一個程序正在運行,導致資源被鎖不可用。而導致資源被鎖的原因可能是上次運行安裝或更新時沒有正常完成,進而出現此狀況,解決的辦法其實很簡單:在終端中敲入以下兩句sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock
2. 遇到Permission denied的錯誤
在該命令前面添加sudo,或者在之后運行sudo !!命令。
參考http://www.duwaiweb.com/blog/20120920_54cdb80f-1992-4642-aab7-346cc7d39266.html
新聞熱點
疑難解答