如何使用Nginx + MySQL + PHP5 + APC + Spawn_FastCGI安裝Web服務器[第4部分:Nginx + PHP和SpawnFastCGI]

前一段時間 我告訴你有關這一系列教程的信息,有關如何安裝和配置用於高要求託管的服務器。 本文將介紹有關安裝和配置的信息 Nginx + PHP生成快速CGI:

Spawn_FastCGI:

可以說這就是Nginx與PHP的結合之處,也就是說,即使他們安裝了PHP5軟件包(如果他們沒有安裝Spawn_FastCGI並在使用PHP打開網站時執行),瀏覽器也會下載該文件,但不會顯示因為服務器不知道如何處理.php文件,所以它們都已經對.php進行了編程,這就是為什麼必須安裝和配置Spawn_FastCGI的原因。

如果我們使用Apache,則就像安裝libapache2-mod-php5軟件包一樣簡單,但是由於我們使用Nginx,因此必須安裝spawn-fcgi軟件包。 另外,在教程中,我將解釋如何在/etc/init.d/中為其創建初始腳本,以便您可以更舒適地對其進行控制。

1.安裝:

我們將從第一件事開始,從我們的存儲庫中安裝Spawn-FastCGI和PHP。

所有將要執行的命令都具有root權限,可以通過在每行的開頭放置sudo或以root用戶身份登錄來執行。

如果在服務器上使用終端中的發行版(例如Debian,Ubuntu或某些衍生產品),則必須輸入以下內容並按 Enter :

aptitude install spawn-fcgi php5-cgi php5-curl

在Ubuntu中默認情況下不安裝aptitude,但是我建議您安裝它並使用它而不是apt-get,因為aptitude在某些情況下可以更好地管理依賴項

我個人不推薦Debian的任何衍生產品,甚至服務器也不推薦使用Ubuntu,多年來,我的經驗一直不令人滿意。 對於服務器操作系統,我的首選是Debian,然後我想到了CentOS,最後想到了BSD。

2.配置:

在上一步中(安裝Nginx時),我們下載了一個名為nginx-spawn-fastcgi.tar.gz的文件,該文件在解壓縮後在我們的家庭中創建了文件夾nginx-spawn-fastcgi,我們將從其中復製文件 spawn-fastcgi到/etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

另外,我們需要/ usr / bin /中的php-fastcgi可執行文件

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

完美,我們已經準備好文件,可以用來控制spawn-fastcgi和php-fastcgi可執行文件,現在我們將啟動spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

它將向我們顯示以下內容: spawn-fcgi:子代成功生成:PID:3739

現在,我們將/etc/nginx/sites-available/mywebsite.net文件替換為〜/ nginx-spawn-fastcgi / mywebsite_plus_php.net

cp ~/nginx-spawn-fastcgi/mywebsite_plus_php.net /etc/nginx/sites-available/mywebsite.net

為什麼? 很簡單,因為我們的舊mywebsite.net文件不支持PHP,即僅Nginx,而mywebsite_plus_php.net文件確實支持PHP,即使用SpawnFastCGI的Nginx + PHP。

這些文件之間的差異有幾個,例如:

  • 在第3行中,添加了支持PHP的文件index.php
  • No.3下的新行包含:fastcgi_index index.php;
  • 其他幾行告訴Nginx如何處理PHP。
  • …..無論如何,這是一張照片,可以幫助您了解兩個文件之間的區別:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

mywebsite_plus_php.net文件是一個作為示例的虛擬主機,也就是說,我們必須對其進行修改並建立配置。

我們必須更改以下內容:

  • access_log(第3行):這將是此站點的訪問日誌文件的路徑
  • error_log(第4行):這將是錯誤日誌文件到此站點的路徑
  • server_name(第 5 行):該資料夾中託管的 URL、網域,例如,如果它是論壇 DesdeLinux 它將是:論壇伺服器名稱。desdelinux淨
  • 根目錄(第6行):html文件所在的文件夾的路徑,我們將其保留在/ var / www /中,因為這只是一個測試
顯然,他們必須在託管提供者的DNS記錄中(使用CPanel或其他工具)指出server_name中聲明的域或子域位於他們正在配置的該服務器的IP上。 也就是說,在他們為其域創建子域的DNS中,他們必須聲明在第5行中放置的域或子域在此服務器上(此服務器=該服務器的IP地址)

準備好了,現在我們將重新啟動Nginx:

/etc/init.d/nginx restart

為了驗證我們的Nginx是否能正確處理PHP,讓我們將文件phptest.php複製到託管文件夾,即mywebsite_plus_php.net文件第6行中指示的文件夾(例如,root / var / www /),假設將網站直接託管在/ var / www /中,將是:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

假設在mywebsite_plus_php.net的第5行(即server_name行)中,我們已經說過我們的站點是www.mysite.net,那麼我們必須訪問www.mysite.net/phptest.php。 換句話說,我們的想法是從瀏覽器訪問文件phptest.php,如果出現以下內容,則我們的Nginx與PHP完美鏈接:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

如果未出現,即瀏覽器嘗試下載.php文件,這意味著它們做錯了事,沒有用〜替換/etc/nginx/sites-available/mywebsite.net。 / nginx-spawn-fastcgi / mywebsite_plus_php.net…他們忘記了使用/etc/init.d/nginx restart重新啟動Nginx或忘記了使用/etc/init.d/spawn-fastcgi start啟動Spawn-FastCGI。

到目前為止,本教程使用SpawnFastCGI將Nginx與PHP鏈接起來,我們只需要MySQL和APC🙂

我希望這對您很有趣。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   F3NIX 他說:

    如果是四分之一,為什麼圖像顯示為3? 我從0開始優秀的帖子。

    問候

    1.    KZKG ^ Gaara 他說:

      第一:介紹
      第二名:Nginx
      第三名:Nginx + PHP(Spawn_FastCGI)

      🙂

      感謝您閱讀^ _ ^

      1.    羅德里戈 他說:

        第4部分發生了什麼?
        以及隨後的?????

  2.   木瓜 他說:

    你好

    您應該知道,如果您使用MariaDB代替mysql,而不是mysql,那將是一個更好的選擇,後者是第一個的分支,並且已經有人說它將是未來的Mysql(http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro),因為Mysql是免費的。

    SkySQL是一家提供基於免費數據庫的服務的公司,該公司在財務上支持了MariaDB項目(http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto)和希望停止使用Mysql的Google(就像Wikipedia一樣),並且將在已經是該領域專家的SkySQL的幫助下,從MySQL 5.1過渡到MariaDB 10.0。

    莎露2。

    1.    KZKG ^ Gaara 他說:

      HOLA,

      是的,當然,我知道MariaDB,事實上,我們已經討論過了: https://blog.desdelinux.net/tag/mariadb/

      然而,現在我正在使用 MySQL,因為我是根據遷移時的特定經驗來編寫這些教程的。 DesdeLinux (及其所有服務)到其他伺服器,當時我們完全改變了技術,我必須面對的任務或變化不少。
      從那一刻開始閱讀我的這篇評論: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      最終的想法確實是肯定的,遷移到MariaDB,但是我還沒有時間做相關的測試🙂

      謝謝閱讀

  3.   埃利奧時間3000 他說:

    本教程將幫助我在NGINX上安裝zPanel X,以便在遷移到GNUPanel VPS時不會飽和我的網站。

  4.   德拉涅爾 他說:

    聖誕禮物? 我期待著所有人的祝賀。

    1.    KZKG ^ Gaara 他說:

      謝謝合作夥伴😀

  5.   st0rmt4il 他說:

    已添加到收藏夾!

    順便說一下,我有這個疑問和疑問,Nginx是否真的比Apache有更多的性能?

    的問候!

    1.    KZKG ^ Gaara 他說:

      好吧,Apache可以進行很多優化,但是……直到現在,Google還是我們幾乎所有人都同意Nginx消耗的RAM少得多,並且性能並不低劣,儘管配置時並沒有那麼簡單。

  6.   路易斯·莫拉萊斯 他說:

    良好的KZKG ^ Gaara為我們這些對這個世界感興趣的人提供了很好的信息,一個問題,何時第4個帖子😀