如何在Ubuntu 18.04 LTS上安裝LEMP Stack(Nginx,MariaDB,PHP7.2)

本教程將向您展示如何在Ubuntu 18.04上安裝Nginx,MariaDB和PHP7.2(LEMP)。 軟件堆棧是捆綁在一起的一組軟件工具。 LEMP代表Linux,Nginx(Engine-X),MariaDB / MySQL和PHP,所有這些都是開源的,可以免費使用。 它是為動態網站和Web應用程序提供動力的最常見的軟件堆棧。 Linux是操作系統。 Nginx是Web服務器; MariaDB / MySQL是數據庫服務器,PHP是負責生成動態網頁的服務器端腳本語言。

先決條件

要遵循本教程,您需要在本地計算機或遠程服務器上運行Ubuntu 18.04 OS。 如果您正在尋找VPS(虛擬專用服務器),則可以單擊此特殊鏈接以在DigitalOcean上獲得$ 50的免費信用。 (僅適用於新用戶)。 如果您已經是DigitalOcean用戶,則可以單擊此特殊鏈接以在Vultr上獲得$ 50的免費信用(僅適用於新用戶)。 事不宜遲,讓我們開始吧。

步驟1:更新軟件包

在安裝LEMP堆棧之前,最好在Ubuntu 18.04 OS上運行以下命令來更新存儲庫和軟件包。

sudo apt update

sudo apt upgrade

步驟2:安裝Nginx Web服務器

Nginx是一種高性能的Web服務器,如今非常流行。 它也可以用作反向代理和緩存服務器。 輸入此命令以安裝Nginx Web服務器。

sudo apt install nginx

安裝後,可以通過運行以下命令使Nginx在啟動Ubuntu時自動啟動。

sudo systemctl enable nginx

然後使用以下命令啟動Nginx:

sudo systemctl start nginx

現在查看其狀態。

systemctl status nginx

輸出:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-05-17 02:20:05 UTC; 2min 56s ago
     Docs: man:nginx(8)
 Main PID: 19851 (nginx)
    Tasks: 2 (limit: 2059)
   CGroup: /system.slice/nginx.service
           ├─19851 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─19853 nginx: worker process

已啟用”表示已啟用啟動時自動啟動,並且我們可以看到Nginx正在運行。 請注意,上面的命令在運行後不會立即退出。 您需要按“q使其退出。

檢查Nginx版本。

nginx -v

輸出:

nginx version: nginx/1.14.0 (Ubuntu)

現在,在瀏覽器地址欄中輸入您的Ubuntu 18.04服務器的公共IP地址。 您應該看到“歡迎使用Nginx”網頁,這意味着Nginx Web服務器正在正常運行。 如果要在本地Ubuntu 18.04計算機上安裝LEMP,請鍵入 127.0.0.1 要麼 localhost 在瀏覽器地址欄中。

請注意,默認情況下,某些雲服務器提供商可能會阻止所有傳入流量,因此,如果您的瀏覽器無法連接到Nginx Web服務器,則可能需要在控制面板中設置防火牆規則。

最後,我們需要 www-data (Nginx用戶)作為Web目錄的所有者。 默認情況下,它由root用戶擁有。

sudo chown www-data:www-data /usr/share/nginx/html -R

步驟3:安裝MariaDB數據庫服務器

MariaDB是MySQL的直接替代品。 它是由MySQL團隊的前成員開發的,他們擔心Oracle可能會將MySQL變成開源產品。 輸入以下命令以在Ubuntu 18.04上安裝MariaDB。

sudo apt install mariadb-server mariadb-client

安裝後,MariaDB服務器應自動啟動。 使用 系統控制 檢查其狀態。

systemctl status mariadb

輸出:

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-05-17 02:39:57 UTC; 49s ago
 Main PID: 21595 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 27 (limit: 2059)
   CGroup: /system.slice/mariadb.service
           └─21595 /usr/sbin/mysqld

如果它沒有運行,請使用以下命令啟動它:

sudo systemctl start mariadb

要使MariaDB在啟動時自動啟動,請運行

sudo systemctl enable mariadb

現在運行安裝後安全腳本。

sudo mysql_secure_installation

當要求您輸入MariaDB根密碼時,請按Enter鍵,因為尚未設置根密碼。 然後輸入 ÿ 設置MariaDB服務器的根密碼。

Ubuntu 18.04安裝Lemp堆棧

接下來,您可以按Enter回答所有剩餘的問題,這將刪除匿名用戶,禁用遠程root登錄並刪除測試數據庫。 此步驟是MariaDB數據庫安全性的基本要求。 (請注意,Y是大寫的,這意味着它是默認答案。)

如何在Ubuntu 18.04上安裝LEMP堆棧

默認情況下,Ubuntu上的MaraiDB軟件包使用 unix_socket 對用戶登錄進行身份驗證,這基本上意味着您可以使用操作系統的用戶名和密碼登錄MariaDB控制台。 因此,您可以運行以下命令來登錄,而無需提供MariaDB根密碼。

sudo mariadb -u root

要退出,請運行

exit;

檢查MariaDB服務器版本信息。

mariadb --version

如您所見,我們已經安裝了MariaDB 10.1.29。

mariadb Ver 15.1 Distrib 10.1.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

步驟4:安裝PHP7.2

PHP7.2包含在Ubuntu 18.04存儲庫中,與PHP7.1相比,性能略有提高。 輸入以下命令以安裝php7.2和一些常用擴展。

sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

WordPress等內容管理系統(CMS)通常需要PHP擴展。 例如,如果您的安裝缺少 php7.2-xml,那麼您的某些WordPress網站頁面可能為空白,您可以在Nginx錯誤日誌中找到錯誤,例如:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

安裝這些PHP擴展可確保CMS順利運行。 現在啟動php7.2-fpm。

sudo systemctl start php7.2-fpm

在啟動時啟用自動啟動。

sudo systemctl enable php7.2-fpm

檢查狀態:

systemctl status php7.2-fpm

樣本輸出:

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor prese
   Active: active (running) since Thu 2018-05-17 03:04:46 UTC; 2min 43s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 31922 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 2059)
   CGroup: /system.slice/php7.2-fpm.service
           ├─31922 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
           ├─31939 php-fpm: pool www
           └─31940 php-fpm: pool www

步驟5:創建一個Nginx服務器塊

Nginx服務器塊就像Apache中的虛擬主機。 我們將不使用默認服務器塊,因為它不足以運行PHP代碼,並且如果我們對其進行修改,它將變得一團糟。 因此,刪除 default 在符號鏈接 sites-enabled 通過運行以下命令創建目錄。 (它仍然可以作為 /etc/nginx/sites-available/default

sudo rm /etc/nginx/sites-enabled/default

然後在下面創建一個全新的服務器阻止文件 /etc/nginx/conf.d/ 目錄。

sudo nano /etc/nginx/conf.d/default.conf

將以下文本粘貼到文件中。 以下代碼片段將使Nginx使用通用服務器名稱在IPv4端口80和IPv6端口80上進行偵聽。

server {
  listen 80;
  listen [::]:80;
  server_name _;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ .php$ {
    fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }


 # A long browser cache lifetime can speed up repeat visits to your page
  location ~* .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
       access_log        off;
       log_not_found     off;
       expires           360d;
  }

  # disable access to hidden files
  location ~ /.ht {
      access_log off;
      log_not_found off;
      deny all;
  }
}

保存並關閉文件。 然後測試Nginx配置。

sudo nginx -t

如果測試成功,請重新加載Nginx。

sudo systemctl reload nginx

步驟6:測試PHP

要使用Nginx Web服務器測試PHP-FPM,我們需要創建一個 info.php 文件根目錄中的文件。

sudo nano /usr/share/nginx/html/info.php

將以下PHP代碼粘貼到文件中。

<?php phpinfo(); ?>

保存並關閉文件。 現在,在瀏覽器地址欄中,輸入 server-ip-address/info.php。 更換 sever-ip-address 與您的實際IP。 如果您在本地計算機上遵循本教程,請輸入 127.0.0.1/info.php 要麼 localhost/info.php

您應該看到服務器的PHP信息。 這意味着PHP腳本可以在Nginx Web服務器上正常運行。

Ubuntu 18.04的nginx的php7.2-fpm

恭喜! 您已在Ubuntu 18.04上成功安裝了Nginx,MariaDB和PHP7.2。 為了服務器的安全,您應該刪除 info.php 現在文件,以防止黑客看到它。

sudo rm /usr/share/nginx/html/info.php

下一步

您可能需要安裝phpMyAdmin,這是MySQL / MariaDB數據庫服務器的基於Web的管理面板。

  • 如何在Ubuntu 18.04 LTS上使用Nginx(LEMP)安裝phpMyAdmin

您也可以在LEMP堆棧上安裝WordPress,以創建自己的網站或博客。

  • 在Ubuntu 18.04上使用Nginx,MariaDB,PHP7.2(LEMP)安裝WordPress

而已! 希望本教程對您有所幫助 在Ubuntu 18.04 LTS上安裝LEMP堆棧。 與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。 照顧自己。

Sidebar