如何在Ubuntu 20.04中安裝Linux,Nginx,MariaDB,PHP(LEMP Stack)

LEMP堆棧是一種技術堆棧,代表Linux,Nginx,MariaDB和PHP。 它廣泛用於託管規模較小的網站/博客。

在這裡,我們將看到如何在Ubuntu 20.04上安裝LEMP Stack。

安裝LEMP堆棧

安裝Linux

這是有關逐步安裝Ubuntu 20.04以及將Ubuntu 18.04或Ubuntu 19.10升級到Ubuntu 20.04的教程。

繼續在Ubuntu 20.04上安裝EMP(Nginx v1.17.10,PHP v7.4,MariaDB v10.3)軟件包。

安裝Nginx

Nginx是一個免費的高性能Web服務器,用於提供靜態Web內容。 它以其穩定性,簡單的配置和低資源消耗而著稱。

從Ubuntu存儲庫安裝Nginx

使用以下命令安裝Nginx軟件包。 默認情況下,Ubuntu 20.04隨附Nginx v1.17.10。

sudo apt update

sudo apt install -y nginx

打開Web瀏覽器並訪問您的服務器IP地址。

http:// your-ip-add-ress

您應該看到Nginx的默認頁面,這確認Nginx Web服務器已成功安裝並正常工作。


Nginx的默認頁面

Nginx在Ubuntu 20.04上的默認文檔根目錄是/ var / www / html,其配置文件位於/ etc / nginx /目錄下。

從Nginx存儲庫安裝Nginx

Nginx為Ubuntu操作系統提供了存儲庫。 Nginx的官方存儲庫發布了v1.17.11。

使用以下命令從Nginx的存儲庫安裝Nginx。

sudo apt update

sudo apt install -y curl gnupg2 ca-certificates lsb-release

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

echo "deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu focal nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

使用以下命令安裝Nginx軟件包。

sudo apt update

sudo apt install -y nginx

安裝後啟動Nginx服務。

sudo systemctl start nginx

打開Web瀏覽器並訪問您的服務器IP地址。

http:// your-ip-add-ress

您應該看到Nginx的默認頁面,這確認Nginx Web服務器已成功安裝並正常工作。

Nginx的默認頁面
Nginx的默認頁面

Nginx在Ubuntu 20.04上的默認文檔根目錄是/ usr / share / nginx / html,其配置文件位於/ etc / nginx /目錄下。

安裝MariaDB服務器

使用以下命令安裝MariaDB服務器。 默認情況下,Ubuntu 20.04附帶了MariaDB v10.3。

讀: 如何在Ubuntu 20.04上安裝MariaDB-官方存儲庫

sudo apt install -y mariadb-server mariadb-client

您還可以為LEMP堆棧安裝MySQL 8.0。

接下來,設置MariaDB根密碼,並使用mysql_secure_installation命令保護MariaDB實例的安全。

sudo mysql_secure_installation
Output:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y  
New password: xxx 
Re-enter new password: xxx 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y 
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y 
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y 
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

安裝PHP-FPM

現在,安裝PHP-FPM(PHP-FastCGI進程管理器)以顯示用PHP編寫的動態內容。

使用以下命令安裝PHP-FPM。 默認情況下,Ubuntu 20.04附帶PHP-FPM v7.4。

sudo apt install -y php-fpm php-mysql php-cli

默認情況下,PHP-FPM偵聽套接字/run/php/php7.4-fpm.sock。

要使PHP-FPM使用TCP連接,請編輯以下文件。

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

然後,更改listen參數。

從:

listen = /run/php/php7.4-fpm.sock

至:

listen = 127.0.0.1:9000

重新啟動PHP-FPM進程。

sudo systemctl restart php7.4-fpm

測試LEMP堆棧

讓我們在Nginx服務器上創建一個基於名稱的虛擬主機,以測試我們的LEMP堆棧安裝。

域名: site.itzgeek.local

文件根: /www/site.itzgeek.local

在/etc/nginx/conf.d/目錄中為我們的域創建一個虛擬主機配置文件。

sudo nano /etc/nginx/conf.d/site.itzgeek.local.conf

添加以下內容。

server {
   server_name site.itzgeek.local;
   root /www/site.itzgeek.local;

   location / {
       index index.html index.htm index.php;
   }

   location ~ .php$ {
      include        /etc/nginx/fastcgi_params;
      fastcgi_pass   127.0.0.1:9000;
      fastcgi_index  index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }
}

創建用於放置PHP文件的根目錄。

sudo mkdir -p /www/site.itzgeek.local

為了測試PHP-FPM支持,請將.php文件放置在創建的虛擬主機的文檔根目錄上。

echo "<?php phpinfo(); ?>" | sudo tee /www/site.itzgeek.local/index.php

更改根目錄的所有權。

sudo chown -R www-data:www-data /www/site.itzgeek.local/

重新啟動Nginx服務。

sudo systemctl restart nginx

在您的服務器或台式機上,如果您的環境中沒有用於名稱解析的DNS服務器,請在/ etc / hosts文件中為您的域(site.itzgeek.local)創建一個主機條目。

sudo nano /etc/hosts

添加主機條目如下所示。

192.168.0.10        site.itzgeek.local site

打開您的網絡瀏覽器,然後在網址中鍵入您的域名。

http://site.itzgeek.local

該頁面如下所示:

PHP信息
PHP信息

從上面的屏幕截圖中,PHP正在通過 FPM /快速CGI,如 服務器API 線。

如果向下滾動頁面,則可以查看所有受支持的PHP擴展詳細信息。

MySQL擴展
MySQL擴展

結論

就這樣。 我希望您了解了如何在Ubuntu 20.04上安裝LEMP堆棧。 請在評論部分分享您的反饋。

Sidebar