配置 Debian 是作為Linux Web服務器,是一個非常不錯的選擇,她是當前僅次于Centos的最受歡迎的服務器操作系統。我非常喜愛在系統上使用apt/dpkg/gedbi命令去安裝和更新軟件包,這非常方便。
梓潼網站制作公司哪家好,找創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、響應式網站等網站項目制作,到程序開發,運營維護。創新互聯公司成立于2013年到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯公司。安裝一個功能完善的php 服務器環境,你需要安裝一整套的配套軟件,包括一個網頁服務器,一個數據庫。在本篇文章中,我們將安裝配置nginx, php, php-fpm, apc 和 MariaDB。
Nginx是一個新潮的網頁服務器,它被設計成為能承受巨大網絡流量而且使用最少的內存和CPU占用量。在Nginx出現之前,獨步武林的網頁服務器是Apache。然而,隨著互聯網的越來越流行,就需要一個更快速,效率更高的網頁服務器。
Nginx vs Apache
Apache 的設計是模塊化的,具擁有很多的功能,但是大部的功能在常規的網站中都是用不上的,它的設計可能是為了迎合所有人的需求,但是最后的結果是制造了一個重量級的且包含大部分不常用功能的網頁服務器。 Nginx 在另一方面是非常時髦和極速的網頁服務器,主要集中在速度、擴展性及性能上。關于它的強大的技術已經超出了本文的范圍。我們可能在后面作一些介紹。能告訴你的信息是,這個網站就是運行在Nginx上。 現在,拋開那些更深的討論,讓我們開始吧!
在Debian下安裝NginxDebian的官方包中已經有了Nginx包,所以你不需要再去其他地方找了,使用apt-get來安裝它。
apt-get install nginx
現在運行Nginx
service nginx start
這時在瀏覽器中打開以下網址來訪問Nginx服務器
你將看到歡迎信息
Welcome to nginx!
重要提示
為了更好的管理的Nginx服務器,這有幾樣東西需要你記住。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 。我們的替代方案是給每一個虛擬主機/網站創建單獨的配置文件保存在以下目錄
/etc/nginx/sites-available /etc/nginx/sites-enabled
這里和Apache相似,sites-enabled 包含的配置文件將會被啟用,這些文件都是指向sites-available 文件夾下配置文件的符號鏈接。
配置一個虛擬主機
現在,我們已經安裝好了Nginx,是時候配置一個虛擬主機了。這就是在真實的網站服務器配置你的網站。 在 /etc/nginx/sites-available 文件夾里能看到一個名為default的文件,它是一個創建我們自己的配置文件的模板文件。我們只要拷貝它并命名為你的網站。
cp default binarytides.com root@localhost:/etc/nginx/sites-available# ls binarytides.com default
我們選擇網站的名稱作為配置文件的名稱,這樣我們就能很容易的記住和維護。
現在打開binarytides.com這個配置文件,并根據你的需求進行修改。 你能看到一個server節點,如下
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;
第一個要配置的就是server_name,這個就是你的網站網址,比如
server_name binarytides.com
或者
server_name binarytides.com www.binarytides.com
當有人在瀏覽器中打開binarytides.com,Nginx會根據HTTP header中包含的hostname去選擇和搜索匹配的server節點,當找到匹配的server節點,將會使用這部分的配置。 網站另一個要配置的東西是網站的根目錄。默認的目錄是/usr/share/nginx/www ,你可能希望將它改為其他目錄。
通常的做法是給每個虛擬主機分別建立一個目錄他,如下
/usr/share/nginx/www/binarytides.com/ /usr/share/nginx/www/google.com/
所以創建一個合適的目錄并且將根目錄設置指向到這個目錄,如
... root /usr/share/nginx/www/binarytides.com; ...
在完成以上修改后,保存配置文件,并且創建一個符號鏈接到 /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#
現在測試一下你的配置文件
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
最后一行的輸出內容必須為successful ,否則有錯誤會顯示。可能會有一些警告,我們可以在后面修正。
最后,為了讓新配置生效,我們需要重啟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#
這樣,新的配置就生效了。現在創建一個新的index.html文件到相應的虛擬主機根目錄,從瀏覽器打開它,你就能看到了。
安裝php和php-fpm接下來的事情要安裝的是PHP解釋器和PHP-FPM。 PHP-FPM是PHP專用的來管理處理PHP請求的FastCGI進程管理器,它兼容的大部分WEB服務器。
Nginx <== 通信 ==> Php-FPM <== 管理 ==> php child process
首先安裝必要的包。
apt-get install php5 php5-fpm
它會自動安裝相關依賴包,如果你需要用命令行運行腳本,你可以安裝 \'php5-cli\' 包
Php-fpm 以單獨的服務器運行,并且使用套接字(socket)與nginx通信。因此,php的執行是完全與nginx隔離的,此外由于fpm保持php進程持續,所以它完全支持APC。
現在,我們看一下php-fpm配置文件,文件在
/etc/php5/fpm/
進程池(Pool)是一組具有相同的用戶/組運行PHP進程。所以如果你想每個網站的腳本以獨立的用戶權限運行,你需要創建獨立的fpm進程池。為了簡單起見,我們在這只演示單個進程池。 The pool configuration files are inside the pool.d directory. Navigate in 進程池的配置文件在pool.d目錄。如下
root@localhost:/etc/php5/fpm/pool.d# ls www.conf
www.conf也是供你創建獨立進程池的模板,它的內容差不多是這樣子的
; 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] 是進程名 2.user = www-data 是指定腳本的運行用戶權限 3. group = www-data 是指定用戶組 4. listen = /var/run/php5-fpm.sock 是改池的套接字通信地址。該套接字必須給nginx讀寫權限,讓nginx與fpm通信。
我們在這里不準備修改太多。只用記住套接字通信地址,將它放到nginx的配置文件里。打開nginx的配置文件
里面包含一個類似下面的配置
# 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
現在在網站根目錄下面放一個有phpinfo函數的文件
<?php phpinfo();
然后在瀏覽器中打開這個文件,你將看到的是php的信息,意味著php配置成功且運行正常。
另外一點,你可以將index.php加入你索引列表,這樣當訪問目錄時,將默認調用index.php。
root /usr/share/nginx/www/binarytides.com; index index.html index.htm index.php;
安裝apc - Alternative PHP Cache
APC是一個提高PHP腳本的執行速度的好方法。 APC編譯PHP代碼,并保存操作碼在內存中,這樣就不需要從文件中重新編譯相同的php代碼。這大大加快執行速度。除了操作碼緩存,APC還提供了一個用戶緩存來在內存中存儲PHP應用程序原始數據。 PHP5.5版本中引入了一個名為OPcache的新功能,它實現與apc一樣的操作碼緩存,從而降低了apc的地位。 設置apc是非常簡單和快捷的,只用為php安裝apc包。
apt-get install php-apc
然后重啟php-fpm
service php5-fpm restart
現在,刷新的phpinfo頁面,它有關APC的信息了。apc的配置文件在
/etc/php5/fpm/conf.d/20-apc.ini
這個文件可以根據的性能優化作相應的調整。以下是我使用的配置
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參數的,以獲取更多的信息。
在Debian上安裝MariaDB想在我們來到了LEMP安裝的最后一步了,我們要安裝的是MariaDB而不是Mysql。我們知道Mysql現在在oracle手上,可能在不久將會商業化。所以大部分的公司開始轉向MariaDB。好消息是MariaDB兼容mysql并增加了很多的功能,所以如果你的php應用使用的是mysql,你可無縫轉換到MariaDB。
MariaDB 現在不再debian包倉庫中,可以從以下地址添加源
https://downloads.mariadb.org/mariadb/repositories/
根據頁面上的提示選擇相應的版本,獲取源地址。
下面就是我獲取到的命令
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\'
現在我們來更新apt的緩存并安裝mariadb包
sudo apt-get update sudo apt-get install mariadb-server mariadb-client
安裝時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 。
網站服務器已準備就緒
現在LEMP網站服務器已經可以使用了,你可以安裝一些比如phpmyadmin去更好的管理數據庫,Phpmyadmin 已經存在debian的倉庫中,你可以直接從那安裝。
當前文章:在Debian7上配置Nginx+php-FPM+apc+MariaDB(翻譯)
轉載注明:http://vcdvsql.cn/article8/chddop.html
成都網站建設公司_創新互聯,為您提供服務器托管、標簽優化、網站維護、搜索引擎優化、網站導航、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯