配置 Debian 是作為Linux Web服務(wù)器,是一個(gè)非常不錯(cuò)的選擇,她是當(dāng)前僅次于Centos的最受歡迎的服務(wù)器操作系統(tǒng)。我非常喜愛在系統(tǒng)上使用apt/dpkg/gedbi命令去安裝和更新軟件包,這非常方便。
梓潼網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。安裝一個(gè)功能完善的php 服務(wù)器環(huán)境,你需要安裝一整套的配套軟件,包括一個(gè)網(wǎng)頁服務(wù)器,一個(gè)數(shù)據(jù)庫。在本篇文章中,我們將安裝配置nginx, php, php-fpm, apc 和 MariaDB。
Nginx是一個(gè)新潮的網(wǎng)頁服務(wù)器,它被設(shè)計(jì)成為能承受巨大網(wǎng)絡(luò)流量而且使用最少的內(nèi)存和CPU占用量。在Nginx出現(xiàn)之前,獨(dú)步武林的網(wǎng)頁服務(wù)器是Apache。然而,隨著互聯(lián)網(wǎng)的越來越流行,就需要一個(gè)更快速,效率更高的網(wǎng)頁服務(wù)器。
Nginx vs Apache
Apache 的設(shè)計(jì)是模塊化的,具擁有很多的功能,但是大部的功能在常規(guī)的網(wǎng)站中都是用不上的,它的設(shè)計(jì)可能是為了迎合所有人的需求,但是最后的結(jié)果是制造了一個(gè)重量級的且包含大部分不常用功能的網(wǎng)頁服務(wù)器。 Nginx 在另一方面是非常時(shí)髦和極速的網(wǎng)頁服務(wù)器,主要集中在速度、擴(kuò)展性及性能上。關(guān)于它的強(qiáng)大的技術(shù)已經(jīng)超出了本文的范圍。我們可能在后面作一些介紹。能告訴你的信息是,這個(gè)網(wǎng)站就是運(yùn)行在Nginx上。 現(xiàn)在,拋開那些更深的討論,讓我們開始吧!
在Debian下安裝NginxDebian的官方包中已經(jīng)有了Nginx包,所以你不需要再去其他地方找了,使用apt-get來安裝它。
apt-get install nginx
現(xiàn)在運(yùn)行Nginx
service nginx start
這時(shí)在瀏覽器中打開以下網(wǎng)址來訪問Nginx服務(wù)器
你將看到歡迎信息
Welcome to nginx!
重要提示
為了更好的管理的Nginx服務(wù)器,這有幾樣?xùn)|西需要你記住。Nginx的配置文件能在以下目錄找到
/etc/nginx root@localhost:/etc/nginx# ls conf.d koi-win naxsi.rules scgi_params uwsgi_params fastcgi_params mime.types nginx.conf sites-available win-utf koi-utf naxsi_core.rules proxy_params sites-enabled
我建議你不要修改 nginx.conf 。我們的替代方案是給每一個(gè)虛擬主機(jī)/網(wǎng)站創(chuàng)建單獨(dú)的配置文件保存在以下目錄
/etc/nginx/sites-available /etc/nginx/sites-enabled
這里和Apache相似,sites-enabled 包含的配置文件將會被啟用,這些文件都是指向sites-available 文件夾下配置文件的符號鏈接。
配置一個(gè)虛擬主機(jī)
現(xiàn)在,我們已經(jīng)安裝好了Nginx,是時(shí)候配置一個(gè)虛擬主機(jī)了。這就是在真實(shí)的網(wǎng)站服務(wù)器配置你的網(wǎng)站。 在 /etc/nginx/sites-available 文件夾里能看到一個(gè)名為default的文件,它是一個(gè)創(chuàng)建我們自己的配置文件的模板文件。我們只要拷貝它并命名為你的網(wǎng)站。
cp default binarytides.com root@localhost:/etc/nginx/sites-available# ls binarytides.com default
我們選擇網(wǎng)站的名稱作為配置文件的名稱,這樣我們就能很容易的記住和維護(hù)。
現(xiàn)在打開binarytides.com這個(gè)配置文件,并根據(jù)你的需求進(jìn)行修改。 你能看到一個(gè)server節(jié)點(diǎn),如下
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost;
第一個(gè)要配置的就是server_name,這個(gè)就是你的網(wǎng)站網(wǎng)址,比如
server_name binarytides.com
或者
server_name binarytides.com www.binarytides.com
當(dāng)有人在瀏覽器中打開binarytides.com,Nginx會根據(jù)HTTP header中包含的hostname去選擇和搜索匹配的server節(jié)點(diǎn),當(dāng)找到匹配的server節(jié)點(diǎn),將會使用這部分的配置。 網(wǎng)站另一個(gè)要配置的東西是網(wǎng)站的根目錄。默認(rèn)的目錄是/usr/share/nginx/www ,你可能希望將它改為其他目錄。
通常的做法是給每個(gè)虛擬主機(jī)分別建立一個(gè)目錄他,如下
/usr/share/nginx/www/binarytides.com/ /usr/share/nginx/www/google.com/
所以創(chuàng)建一個(gè)合適的目錄并且將根目錄設(shè)置指向到這個(gè)目錄,如
... root /usr/share/nginx/www/binarytides.com; ...
在完成以上修改后,保存配置文件,并且創(chuàng)建一個(gè)符號鏈接到 /etc/nginx/sites-enabled 目錄。
root@localhost:/etc/nginx/sites-available# ls binarytides.com default root@localhost:/etc/nginx/sites-available# cd .. root@localhost:/etc/nginx# cd sites-enabled/ root@localhost:/etc/nginx/sites-enabled# ln -s ../sites-available/binarytides.com root@localhost:/etc/nginx/sites-enabled# ls binarytides.com default root@localhost:/etc/nginx/sites-enabled#
現(xiàn)在測試一下你的配置文件
nginx -t nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
最后一行的輸出內(nèi)容必須為successful ,否則有錯(cuò)誤會顯示??赡軙幸恍┚?,我們可以在后面修正。
最后,為了讓新配置生效,我們需要重啟Nginx。
service nginx restart Restarting nginx: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored nginx. root@localhost:/etc/nginx/sites-enabled#
這樣,新的配置就生效了。現(xiàn)在創(chuàng)建一個(gè)新的index.html文件到相應(yīng)的虛擬主機(jī)根目錄,從瀏覽器打開它,你就能看到了。
安裝php和php-fpm接下來的事情要安裝的是PHP解釋器和PHP-FPM。 PHP-FPM是PHP專用的來管理處理PHP請求的FastCGI進(jìn)程管理器,它兼容的大部分WEB服務(wù)器。
Nginx <== 通信 ==> Php-FPM <== 管理 ==> php child process
首先安裝必要的包。
apt-get install php5 php5-fpm
它會自動安裝相關(guān)依賴包,如果你需要用命令行運(yùn)行腳本,你可以安裝 \'php5-cli\' 包
Php-fpm 以單獨(dú)的服務(wù)器運(yùn)行,并且使用套接字(socket)與nginx通信。因此,php的執(zhí)行是完全與nginx隔離的,此外由于fpm保持php進(jìn)程持續(xù),所以它完全支持APC。
現(xiàn)在,我們看一下php-fpm配置文件,文件在
/etc/php5/fpm/
進(jìn)程池(Pool)是一組具有相同的用戶/組運(yùn)行PHP進(jìn)程。所以如果你想每個(gè)網(wǎng)站的腳本以獨(dú)立的用戶權(quán)限運(yùn)行,你需要?jiǎng)?chuàng)建獨(dú)立的fpm進(jìn)程池。為了簡單起見,我們在這只演示單個(gè)進(jìn)程池。 The pool configuration files are inside the pool.d directory. Navigate in 進(jìn)程池的配置文件在pool.d目錄。如下
root@localhost:/etc/php5/fpm/pool.d# ls www.conf
www.conf也是供你創(chuàng)建獨(dú)立進(jìn)程池的模板,它的內(nèi)容差不多是這樣子的
; Start a new pool named \'www\'. ; the variable $pool can we used in any directive and will be replaced by the ; pool name (\'www\' here) [www] ; Per pool prefix ; It only applies on the following directives: ; - \'slowlog\' ; - \'listen\' (unixsocket) ; - \'chroot\' ; - \'chdir\' ; - \'php_values\' ; - \'php_admin_values\' ; When not set, the global prefix (or /usr) applies instead. ; Note: This directive can also be relative to the global prefix. ; Default Value: none ;prefix = /path/to/pools/$pool ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user\'s group ; will be used. user = www-data group = www-data ; The address on which to accept FastCGI requests. ; Valid syntaxes are: ; \'ip.add.re.ss:port\' - to listen on a TCP socket to a specific address on ; a specific port; ; \'port\' - to listen on a TCP socket to all addresses on a ; specific port; ; \'/path/to/unix/socket\' - to listen on a unix socket. ; Note: This value is mandatory. listen = /var/run/php5-fpm.sock ; Set listen(2) backlog. ; Default Value: 128 (-1 on FreeBSD and OpenBSD) ;listen.backlog = 128 The above thing consists of comments mostly and the most important 4 lines are [www] 是進(jìn)程名 2.user = www-data 是指定腳本的運(yùn)行用戶權(quán)限 3. group = www-data 是指定用戶組 4. listen = /var/run/php5-fpm.sock 是改池的套接字通信地址。該套接字必須給nginx讀寫權(quán)限,讓nginx與fpm通信。
我們在這里不準(zhǔn)備修改太多。只用記住套接字通信地址,將它放到nginx的配置文件里。打開nginx的配置文件
里面包含一個(gè)類似下面的配置
# 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 # # # 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; #}
去掉注釋,修改成
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; }
測試PHP
現(xiàn)在在網(wǎng)站根目錄下面放一個(gè)有phpinfo函數(shù)的文件
然后在瀏覽器中打開這個(gè)文件,你將看到的是php的信息,意味著php配置成功且運(yùn)行正常。
另外一點(diǎn),你可以將index.php加入你索引列表,這樣當(dāng)訪問目錄時(shí),將默認(rèn)調(diào)用index.php。
root /usr/share/nginx/www/binarytides.com; index index.html index.htm index.php;
安裝apc - Alternative PHP Cache
APC是一個(gè)提高PHP腳本的執(zhí)行速度的好方法。 APC編譯PHP代碼,并保存操作碼在內(nèi)存中,這樣就不需要從文件中重新編譯相同的php代碼。這大大加快執(zhí)行速度。除了操作碼緩存,APC還提供了一個(gè)用戶緩存來在內(nèi)存中存儲PHP應(yīng)用程序原始數(shù)據(jù)。 PHP5.5版本中引入了一個(gè)名為OPcache的新功能,它實(shí)現(xiàn)與apc一樣的操作碼緩存,從而降低了apc的地位。 設(shè)置apc是非常簡單和快捷的,只用為php安裝apc包。
apt-get install php-apc
然后重啟php-fpm
service php5-fpm restart
現(xiàn)在,刷新的phpinfo頁面,它有關(guān)APC的信息了。apc的配置文件在
/etc/php5/fpm/conf.d/20-apc.ini
這個(gè)文件可以根據(jù)的性能優(yōu)化作相應(yīng)的調(diào)整。以下是我使用的配置
extension=apc.so apc.enabled=1 apc.shm_size=128M apc.ttl=3600 apc.user_ttl=7200 apc.gc_ttl=3600 apc.max_file_size=1M
查找apc參數(shù)的,以獲取更多的信息。
在Debian上安裝MariaDB想在我們來到了LEMP安裝的最后一步了,我們要安裝的是MariaDB而不是Mysql。我們知道Mysql現(xiàn)在在oracle手上,可能在不久將會商業(yè)化。所以大部分的公司開始轉(zhuǎn)向MariaDB。好消息是MariaDB兼容mysql并增加了很多的功能,所以如果你的php應(yīng)用使用的是mysql,你可無縫轉(zhuǎn)換到MariaDB。
MariaDB 現(xiàn)在不再debian包倉庫中,可以從以下地址添加源
https://downloads.mariadb.org/mariadb/repositories/
根據(jù)頁面上的提示選擇相應(yīng)的版本,獲取源地址。
下面就是我獲取到的命令
sudo apt-get install python-software-properties sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db sudo add-apt-repository \'deb http://mirrors.fe.up.pt/pub/mariadb/repo/10.0/debian wheezy main\'
現(xiàn)在我們來更新apt的緩存并安裝mariadb包
sudo apt-get update sudo apt-get install mariadb-server mariadb-client
安裝時(shí)mariadb會要求輸入root的密碼。輸入密碼,并確定你不會忘記。
安裝完成后,檢查mariadb的版本
# mysql -V mysql Ver 15.1 Distrib 10.0.3-MariaDB, for debian-linux-gnu (x86_64) using readline 5.1
要注意的是這里的命令和mysql的一樣,但是版本信息中顯示的是mariadb 。
網(wǎng)站服務(wù)器已準(zhǔn)備就緒
現(xiàn)在LEMP網(wǎng)站服務(wù)器已經(jīng)可以使用了,你可以安裝一些比如phpmyadmin去更好的管理數(shù)據(jù)庫,Phpmyadmin 已經(jīng)存在debian的倉庫中,你可以直接從那安裝。