国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧

這篇具有很好參考價(jià)值的文章主要介紹了如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前些天發(fā)現(xiàn)了一個(gè)人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,最重要的屌圖甚多,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站。

如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧

介紹

“LAMP”堆棧是一組開源軟件,通常安裝在一起,以使服務(wù)器能夠托管用 PHP 編寫的動(dòng)態(tài)網(wǎng)站和 Web 應(yīng)用程序。該術(shù)語(yǔ)是一個(gè)縮寫詞,代表帶有A pache Web 服務(wù)器的****Linux操作系統(tǒng)。站點(diǎn)數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,動(dòng)態(tài)內(nèi)容由****PHP處理。

在文中,我們將在 Ubuntu 22.04 服務(wù)器上設(shè)置 LAMP 堆棧。

先決條件

為了完成本教程,我們需要有一個(gè) Ubuntu 22.04 服務(wù)器,該服務(wù)器具有sudo權(quán)限的非 root用戶帳戶和基本防火墻。這可以參考Ubuntu 20.04 初始服務(wù)器設(shè)置指南進(jìn)行配置。

第 1 步 — 安裝 Apache 并更新防火墻

Apache Web 服務(wù)器是世界上最流行的 Web 服務(wù)器之一。它有完善的文檔,擁有活躍的用戶社區(qū),并且在網(wǎng)絡(luò)歷史的大部分時(shí)間里都被廣泛使用,這使得它成為托管網(wǎng)站的絕佳選擇。

首先更新包管理器緩存。如果這是我們第一次在sudo會(huì)話中使用,系統(tǒng)將提示我們提供用戶密碼,以確認(rèn)我們擁有管理系統(tǒng)軟件包apt的正確權(quán)限:

sudo apt update

然后,使用以下命令安裝 Apache:

sudo apt install apache2

系統(tǒng)將提示我們確認(rèn) Apache 的安裝。按 確認(rèn)Y,然后按ENTER

安裝完成后,我們需要調(diào)整防火墻設(shè)置以允許 HTTP 流量。Ubuntu 的默認(rèn)防火墻配置工具稱為簡(jiǎn)單防火墻 (UFW)。它具有可供我們利用的不同應(yīng)用程序配置文件。要列出所有當(dāng)前可用的 UFW 應(yīng)用程序配置文件,請(qǐng)執(zhí)行以下命令:

sudo ufw app list
Output
 Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

以下是每個(gè)配置文件的含義:

  • Apache:此配置文件僅打開端口80(正常、未加密的 Web 流量)。
  • Apache Full:此配置文件打開端口80(正常、未加密的 Web 流量)和端口443(TLS/SSL 加密流量)。
  • Apache Secure:此配置文件僅打開端口443(TLS/SSL 加密流量)。

目前,最好僅允許 port 上的連接80,因?yàn)檫@是全新的 Apache 安裝,并且我們尚未配置 TLS/SSL 證書以允許服務(wù)器上的 HTTPS 流量。

要僅允許端口80上的流量,請(qǐng)使用Apache配置文件:

sudo ufw allow in "Apache"

通過(guò)以下方式驗(yàn)證更改:

sudo ufw status
Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                                
Apache                     ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                    
Apache (v6)                ALLOW       Anywhere (v6)     

現(xiàn)在允許80端口上的流量通過(guò)防火墻。

我們可以立即進(jìn)行抽查,通過(guò)在網(wǎng)絡(luò)瀏覽器中訪問(wèn)服務(wù)器的公共 IP 地址來(lái)驗(yàn)證一切是否按計(jì)劃進(jìn)行:

http://your_server_ip

默認(rèn)的 Ubuntu 22.04 Apache 網(wǎng)頁(yè)用于提供信息和測(cè)試目的。以下是 Apache 默認(rèn)網(wǎng)頁(yè)的示例:

如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧,Linux,linux,ubuntu,apache

如果我們可以查看此頁(yè)面,則表明我們的 Web 服務(wù)器已正確安裝并且可以通過(guò)防火墻進(jìn)行訪問(wèn)。

如何查找服務(wù)器的公共 IP 地址

如果我們不知道服務(wù)器的公共 IP 地址是什么,可以通過(guò)多種方法找到它。通常,這是我們用于通過(guò) SSH 連接到服務(wù)器的地址。

有幾種不同的方法可以從命令行執(zhí)行此操作。首先,我們可以使用iproute2工具通過(guò)輸入以下內(nèi)容來(lái)獲取我們的 IP 地址:

ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

這將為我們返回兩到三行。它們都是正確的地址,但我們的計(jì)算機(jī)可能只能使用其中之一,因此只能一個(gè)一個(gè)試。

另一種方法是使用curl實(shí)用程序聯(lián)系外部方,告訴我們它如何看待我們的服務(wù)器。這是通過(guò)詢問(wèn)特定服務(wù)器我們的 IP 地址是什么來(lái)完成的:

curl http://icanhazip.com

無(wú)論我們選擇哪種方法,都需要在網(wǎng)絡(luò)瀏覽器中輸入我們的 IP 地址以驗(yàn)證我們的服務(wù)器是否正在運(yùn)行。

第 2 步 — 安裝 MySQL

上一步我們已經(jīng)啟動(dòng)并運(yùn)行了 Web 服務(wù)器,現(xiàn)在需要安裝數(shù)據(jù)庫(kù)系統(tǒng)才能存儲(chǔ)和管理站點(diǎn)的數(shù)據(jù)。MySQL 是 PHP 環(huán)境中使用的流行數(shù)據(jù)庫(kù)管理系統(tǒng)。

使用apt獲取并安裝該軟件:

sudo apt install mysql-server

出現(xiàn)提示時(shí),通過(guò)按Y 確認(rèn)安裝,然后按ENTER

安裝完成后,建議我們運(yùn)行 MySQL 預(yù)裝的安全腳本mysql_secure_installation。該腳本將刪除一些不安全的默認(rèn)設(shè)置并鎖定對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的訪問(wèn)。

警告:自 2022 年 7 月起,如果我們?cè)跊](méi)有進(jìn)一步配置的情況下運(yùn)行腳本,將會(huì)發(fā)生錯(cuò)誤。原因是該腳本將嘗試為安裝的MySQL 帳戶設(shè)置root 密碼,但默認(rèn)情況下,在 Ubuntu 安裝上,該帳戶未配置為使用密碼進(jìn)行連接。

在 2022 年 7 月之前,此腳本在嘗試設(shè)置root帳戶密碼并繼續(xù)執(zhí)行其余提示后會(huì)默默失敗。在我們輸入并確認(rèn)密碼后,腳本將返回以下錯(cuò)誤:

Output ... 
Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

New password:

這將導(dǎo)致腳本進(jìn)入遞歸循環(huán),只能通過(guò)關(guān)閉終端窗口來(lái)退出該循環(huán)。

但是由于mysql_secure_installation腳本執(zhí)行許多其他操作對(duì)于確保 MySQL 安裝安全非常有用,因此仍然建議在開始使用 MySQL 管理數(shù)據(jù)之前運(yùn)行它。不過(guò),為了避免進(jìn)入此遞歸循環(huán),我們需要首先調(diào)整MySQLroot用戶的身份驗(yàn)證方式。

首先,打開MySQL提示符:

sudo mysql

然后運(yùn)行以下命令將root用戶的身份驗(yàn)證方法更改為使用密碼的身份驗(yàn)證方法。以下示例將身份驗(yàn)證方法更改為:mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

進(jìn)行此更改后,退出 MySQL 提示符:

exit

之后,我們可以mysql_secure_installation毫無(wú)問(wèn)題地運(yùn)行腳本。

通過(guò)運(yùn)行以下命令啟動(dòng)交互式腳本:

sudo mysql_secure_installation

這將詢問(wèn)我們是否要配置VALIDATE PASSWORD PLUGIN.

**注意:**啟用此功能需要進(jìn)行判斷。如果啟用,不符合指定條件的密碼將被 MySQL 拒絕并顯示錯(cuò)誤。禁用驗(yàn)證是安全的,但我們應(yīng)該始終對(duì)數(shù)據(jù)庫(kù)憑據(jù)使用強(qiáng)且唯一的密碼。

回答Y“是”,或者選擇其他任何選項(xiàng)以繼續(xù)而不啟用。

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

如果我們回答“是”,系統(tǒng)會(huì)要求我們選擇密碼驗(yàn)證級(jí)別。請(qǐng)注意,如果我們?cè)O(shè)置任何不包含數(shù)字、大小寫字母和特殊字符的密碼時(shí),我們將收到錯(cuò)誤消息:

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

無(wú)論我們是否選擇設(shè)置,我們的服務(wù)器接下來(lái)都會(huì)要求我們選擇并確認(rèn) MySQL root用戶的密碼。不要將其與system root混淆。數(shù)據(jù)庫(kù)root用戶是對(duì)數(shù)據(jù)庫(kù)系統(tǒng)擁有完全權(quán)限的管理用戶。

如果我們啟用了密碼驗(yàn)證,我們將看到剛剛輸入的 root 密碼的密碼強(qiáng)度,并且我們的服務(wù)器將詢問(wèn)我們是否要繼續(xù)使用該密碼。如果我們對(duì)當(dāng)前密碼感到滿意,請(qǐng)?jiān)谔崾緯r(shí)輸入“yes”:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

對(duì)于其余問(wèn)題,請(qǐng)?jiān)诿總€(gè)提示時(shí)按下Y并擊鍵ENTER。這將刪除一些匿名用戶和測(cè)試數(shù)據(jù)庫(kù),禁用遠(yuǎn)程 root 登錄,并加載這些新規(guī)則,以便 MySQL 立即尊重我們所做的更改。

完成后,輸入以下命令測(cè)試是否能夠登錄 MySQL 控制臺(tái):

sudo mysql

這將以管理數(shù)據(jù)庫(kù)用戶root的身份連接到 MySQL 服務(wù)器,這是通過(guò)sudo運(yùn)行此命令時(shí)使用推斷的。下面是一個(gè)示例輸出:

Output
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

要退出 MySQL 控制臺(tái),請(qǐng)輸入:

exit

請(qǐng)注意,即使我們?cè)谶\(yùn)行腳本時(shí)定義了密碼,也無(wú)需提供密碼即可以使用root用戶身份進(jìn)行連接。這是因?yàn)楣芾?MySQL 用戶的默認(rèn)身份驗(yàn)證方法為unix_socket不是password(一個(gè)實(shí)際的的例子就是忘記了root密碼,但仍然可以使用數(shù)據(jù)庫(kù)來(lái)重置它)。盡管這看起來(lái)像是一個(gè)安全問(wèn)題,但它使數(shù)據(jù)庫(kù)服務(wù)器更加安全,因?yàn)槲ㄒ辉试S以root MySQL 用戶身份登錄的用戶是具有 sudo 權(quán)限的系統(tǒng)用戶,這些系統(tǒng)用戶從控制臺(tái)或通過(guò)以相同權(quán)限運(yùn)行的應(yīng)用程序連接。實(shí)際上,這意味著我們將無(wú)法使用管理數(shù)據(jù)庫(kù)root用戶從 PHP 應(yīng)用程序進(jìn)行連接。為root MySQL 帳戶設(shè)置密碼可以起到保護(hù)作用,以防默認(rèn)身份驗(yàn)證方法從unix_socket 更改為password。

為了提高安全性,最好為每個(gè)數(shù)據(jù)庫(kù)設(shè)置專用的用戶帳戶,并設(shè)置較少的權(quán)限,特別是如果我們計(jì)劃在服務(wù)器上托管多個(gè)數(shù)據(jù)庫(kù)。

**注意:**有一些舊版本的 PHP不支持 MySQL 8 的默認(rèn)身份驗(yàn)證方法mysql_native_password。因此,在 MySQL 8 上為 PHP 應(yīng)用程序創(chuàng)建數(shù)據(jù)庫(kù)用戶時(shí),我們可能需要配置應(yīng)用程序以使用mysql_native_password插件,第6步會(huì)說(shuō)這個(gè)。

第 3 步 — 安裝 PHP

我們安裝了 Apache 來(lái)提供我們的內(nèi)容,并安裝了 MySQL 來(lái)存儲(chǔ)和管理我們的數(shù)據(jù)。PHP 是我們?cè)O(shè)置的組件,它將處理代碼以向最終用戶顯示動(dòng)態(tài)內(nèi)容。除了該php軟件包之外,我們還需要一個(gè) PHP 模塊php-mysql,該模塊允許 PHP 與基于 MySQL 的數(shù)據(jù)庫(kù)進(jìn)行通信。我們還需要libapache2-mod-php啟用 Apache 來(lái)處理 PHP 文件。核心 PHP 包將作為依賴項(xiàng)自動(dòng)安裝。

要安裝這些軟件包,請(qǐng)運(yùn)行以下命令:

sudo apt install php libapache2-mod-php php-mysql

安裝完成后,運(yùn)行以下命令來(lái)確認(rèn)我們的 PHP 版本:

php -v
Output
PHP 8.1.2 (cli) (built: Mar  4 2022 18:13:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

此時(shí),我們的 LAMP 堆棧已完全運(yùn)行,但在使用 PHP 腳本測(cè)試我們的設(shè)置之前,最好設(shè)置一個(gè)適當(dāng)?shù)腁pache 虛擬主機(jī)來(lái)保存網(wǎng)站的文件和文件夾。

第 4 步 — 為我們的網(wǎng)站創(chuàng)建虛擬主機(jī)

使用 Apache Web 服務(wù)器時(shí),我們可以創(chuàng)建虛擬主機(jī)(類似于 Nginx 中的服務(wù)器塊)來(lái)封裝配置詳細(xì)信息并從一臺(tái)服務(wù)器托管多個(gè)域。在本文中,我們將設(shè)置一個(gè)名為your_domain的域。

Ubuntu 22.04 上的 Apache 默認(rèn)啟用一臺(tái)虛擬主機(jī),該虛擬主機(jī)配置為提供/var/www/html目錄中的文檔。雖然這對(duì)于單個(gè)站點(diǎn)來(lái)說(shuō)效果很好,但如果我們托管多個(gè)站點(diǎn),它可能會(huì)變得笨拙。下來(lái)就要為your_domain站點(diǎn)創(chuàng)建一個(gè)/var/www/html目錄結(jié)構(gòu),如果客戶端請(qǐng)求與任何其他站點(diǎn)不匹配,則將其保留為要提供服務(wù)的默認(rèn)目錄。

如下所示:

sudo mkdir /var/www/your_domain

接下來(lái),使用環(huán)境變量分配目錄的所有權(quán)$USER,該變量將引用我們當(dāng)前的系統(tǒng)用戶:

sudo chown -R $USER:$USER /var/www/your_domain

然后,使用nano編輯器在 Apache 目錄中打開一個(gè)新的配置文件。

sudo nano /etc/apache2/sites-available/your_domain.conf

這將創(chuàng)建一個(gè)新的空白文件。使用我們自己的域名添加以下基本配置:

/etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

完成后保存并關(guān)閉文件。按CTRL+X,然后按Y和按ENTER 。

現(xiàn)在,使用a2ensite啟用新的虛擬主機(jī):

sudo a2ensite your_domain

如果想要禁用隨 Apache 安裝的默認(rèn)網(wǎng)站:

sudo a2dissite 000-default

檢查配置文件是否有語(yǔ)法錯(cuò)誤,請(qǐng)運(yùn)行以下命令:

sudo apache2ctl configtest

最后,重新加載 Apache 以使這些更改生效:

sudo systemctl reload apache2

現(xiàn)在新網(wǎng)站現(xiàn)已激活,但網(wǎng)站根目錄仍為空。創(chuàng)建一個(gè)文件以測(cè)試虛擬主機(jī)是否按預(yù)期工作:

nano /var/www/your_domain/index.html

在此文件中包含以下內(nèi)容:

/var/www/your_domain/index.html

<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

保存并關(guān)閉文件,然后轉(zhuǎn)到瀏覽器并訪問(wèn)服務(wù)器的域名或IP地址:

http://server_domain_or_IP

網(wǎng)頁(yè)應(yīng)展示我們剛剛編輯的文件中的內(nèi)容:

如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧,Linux,linux,ubuntu,apache

我們可以保留此文件作為應(yīng)用程序的臨時(shí)登錄頁(yè)面,直到我們?cè)O(shè)置index.php文件來(lái)替換它。執(zhí)行此操作后,請(qǐng)記住從文檔根目錄中刪除或重命名該文件,因?yàn)槟J(rèn)情況下index.php將優(yōu)先于index.html文件。

在下一步中,我們將創(chuàng)建一個(gè) PHP 腳本來(lái)測(cè)試 PHP 是否已在我們的服務(wù)器上正確安裝和配置。

第 5 步 — 在 Web 服務(wù)器上測(cè)試 PHP 處理

現(xiàn)在我們已經(jīng)有了一個(gè)自定義位置來(lái)托管網(wǎng)站的文件和文件夾,請(qǐng)創(chuàng)建一個(gè) PHP 測(cè)試腳本來(lái)確認(rèn) Apache 能夠處理和處理對(duì) PHP 文件的請(qǐng)求。

在自定義 Web 根文件夾中創(chuàng)建一個(gè)名為info.php的新文件:

nano /var/www/your_domain/info.php

這將打開一個(gè)空白文件。在文件內(nèi)添加以下文本(這是有效的 PHP 代碼):

/var/www/your_domain/info.php

<?php
phpinfo();

完成后,保存并關(guān)閉文件。

要測(cè)試此腳本,請(qǐng)轉(zhuǎn)到 Web 瀏覽器并訪問(wèn)服務(wù)器的域名或 IP 地址,后跟腳本名稱,在本例中為info.php

http://server_domain_or_IP/info.php

以下是默認(rèn) PHP 網(wǎng)頁(yè)的示例:

如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧,Linux,linux,ubuntu,apache

此頁(yè)面從 PHP 的角度提供有關(guān)我們的服務(wù)器的信息。它對(duì)于調(diào)試和確保正確應(yīng)用我們的設(shè)置很有用。

如果我們?cè)跒g覽器中看到此頁(yè)面,則說(shuō)明我們的 PHP 安裝正常。

通過(guò)該頁(yè)面檢查有關(guān) PHP 服務(wù)器的相關(guān)信息后,最好刪除我們創(chuàng)建的文件,因?yàn)樗嘘P(guān) PHP 環(huán)境和 Ubuntu 服務(wù)器的敏感信息:

sudo rm /var/www/your_domain/info.php

如果我們稍后需要再次訪問(wèn)該信息,我們可以隨時(shí)重新創(chuàng)建此頁(yè)面。

第 6 步 — 從 PHP 測(cè)試數(shù)據(jù)庫(kù)連接(可選)

如果我們想測(cè)試 PHP 是否能夠連接到 MySQL 并執(zhí)行數(shù)據(jù)庫(kù)查詢,我們可以創(chuàng)建一個(gè)包含測(cè)試數(shù)據(jù)的測(cè)試表,并從 PHP 腳本查詢其內(nèi)容。在此之前,我們需要?jiǎng)?chuàng)建一個(gè)測(cè)試數(shù)據(jù)庫(kù)和一個(gè)正確配置為訪問(wèn)該數(shù)據(jù)庫(kù)的新 MySQL 用戶。

創(chuàng)建名為example_database的數(shù)據(jù)庫(kù)和名為example_user 的用戶。我們可以將這些名稱替換為不同的值。

首先,使用root帳戶連接到 MySQL 控制臺(tái):

sudo mysql

要?jiǎng)?chuàng)建新數(shù)據(jù)庫(kù),請(qǐng)從 MySQL 控制臺(tái)運(yùn)行以下命令:

CREATE DATABASE example_database;

現(xiàn)在創(chuàng)建一個(gè)新用戶并授予他們對(duì)我們剛剛創(chuàng)建的自定義數(shù)據(jù)庫(kù)的完全權(quán)限。

以下命令創(chuàng)建一個(gè)名為example_user 的新用戶,該用戶使用該caching_sha2_password方法進(jìn)行身份驗(yàn)證。我們將此用戶的密碼定義為password

CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';

注意:前面的ALTER USER語(yǔ)句設(shè)置root MySQL 用戶以使用caching_sha2_password插件進(jìn)行身份驗(yàn)證。根據(jù) MySQL 官方文檔,caching_sha2_password是 MySQL 的首選身份驗(yàn)證插件.

但是,某些版本的 PHP 不能兼容caching_sha2_password. PHP 報(bào)告說(shuō),這個(gè)問(wèn)題在 PHP 7.4 中已得到修復(fù),下來(lái)如果我們嘗試登錄 phpMyAdmin 時(shí)遇到錯(cuò)誤,可能需要設(shè)置root來(lái)進(jìn)行mysql_native_password身份驗(yàn)證:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

現(xiàn)在授予該用戶對(duì)example_database數(shù)據(jù)庫(kù)的權(quán)限:

GRANT ALL ON example_database.* TO 'example_user'@'%';

這將賦予example_user用戶對(duì)example_database數(shù)據(jù)庫(kù)的完全權(quán)限,同時(shí)防止該用戶在我們的服務(wù)器上創(chuàng)建或修改其他數(shù)據(jù)庫(kù)。

現(xiàn)在退出 MySQL shell:

exit

通過(guò)再次登錄 MySQL 控制臺(tái)(這次使用自定義用戶憑據(jù))來(lái)測(cè)試新用戶是否具有適當(dāng)?shù)臋?quán)限:

mysql -u example_user -p

請(qǐng)注意此命令中的標(biāo)志,它將提示我們輸入創(chuàng)建example_user-p用戶時(shí)使用的密碼。登錄MySQL控制臺(tái)后,確認(rèn)我們有權(quán)訪問(wèn)example_database數(shù)據(jù)庫(kù):

SHOW DATABASES;

這將為我們提供以下輸出:

Output
+--------------------+
| Database           |
+--------------------+
| example_database   |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

接下來(lái),創(chuàng)建一個(gè)名為todo_list的測(cè)試表。從 MySQL 控制臺(tái)運(yùn)行以下語(yǔ)句:

CREATE TABLE example_database.todo_list (
	item_id INT AUTO_INCREMENT,
	content VARCHAR(255),
	PRIMARY KEY(item_id)
);

在測(cè)試表中插入幾行內(nèi)容。使用不同的值重復(fù)下一個(gè)命令幾次以填充測(cè)試表:

INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

要確認(rèn)數(shù)據(jù)已成功保存到表中,請(qǐng)運(yùn)行:

SELECT * FROM example_database.todo_list;

以下是輸出:

Output
+---------+--------------------------+
| item_id | content                  |
+---------+--------------------------+
|       1 | My first important item  |
|       2 | My second important item |
|       3 | My third important item  |
|       4 | and this one more thing  |
+---------+--------------------------+
4 rows in set (0.000 sec)

確認(rèn)測(cè)試表中有有效數(shù)據(jù)后,退出 MySQL 控制臺(tái):

exit

現(xiàn)在我們可以創(chuàng)建連接到 MySQL 并查詢內(nèi)容的 PHP 腳本。在自定義 Web 根目錄中創(chuàng)建一個(gè)新的 PHP 文件:

nano /var/www/your_domain/todo_list.php

以下 PHP 腳本連接到 MySQL 數(shù)據(jù)庫(kù)并查詢todo_list表的內(nèi)容,并在列表中顯示結(jié)果。如果數(shù)據(jù)庫(kù)連接出現(xiàn)問(wèn)題,就會(huì)拋出異常。

/var/www/your_domain/todo_list.php

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>"; 
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

完成編輯后保存并關(guān)閉文件。

現(xiàn)在,我們可以通過(guò)訪問(wèn)為我們的網(wǎng)站配置的域名或公共 IP 地址,然后在 Web 瀏覽器中訪問(wèn)此頁(yè)面/todo_list.php

http://your_domain_or_IP/todo_list.php

此網(wǎng)頁(yè)應(yīng)向訪問(wèn)者顯示我們?cè)跍y(cè)試表中插入的內(nèi)容:

如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧,Linux,linux,ubuntu,apache

這說(shuō)明我們的 PHP 環(huán)境已準(zhǔn)備好與 MySQL 服務(wù)器連接并交互。

結(jié)論

在本文中,我們使用 Apache 作為 Web 服務(wù)器,使用 MySQL 作為數(shù)據(jù)庫(kù)系統(tǒng),為向訪問(wèn)者提供 PHP 網(wǎng)站和應(yīng)用程序服務(wù)奠定了靈活的基礎(chǔ)。

下一步,我們應(yīng)該通過(guò) HTTPS 提供服務(wù),確保與 Web 服務(wù)器的連接是安全的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-818055.html

到了這里,關(guān)于如何在 Ubuntu 22.04 上安裝 Linux、Apache、MySQL、PHP (LAMP) 堆棧的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Ubuntu22.04安裝低版本MySQL5.7

    Ubuntu22.04安裝低版本MySQL5.7

    最近在騰訊云買了個(gè)服務(wù)器準(zhǔn)備部署我的Django項(xiàng)目,由于需要保證服務(wù)器和本地開發(fā)的環(huán)境相同,所以要在Ubuntu 22.04安裝一個(gè)與本地Windows版本相同的MySQL5.7.36 首次安裝我嘗試使用apt工具去安裝,但是 更新apt-get工具包 安裝命令 報(bào)錯(cuò)提示 However the following packages replace it: maria

    2024年02月08日
    瀏覽(20)
  • 【mysql部署】在ubuntu22.04上安裝和配置mysql教程

    【mysql部署】在ubuntu22.04上安裝和配置mysql教程

    1. 更新軟件包列表: 2.安裝 MySQL 服務(wù)器: 3.設(shè)置 MySQL 安全性: 按照提示輸入相關(guān)問(wèn)題的回答,例如刪除匿名用戶、禁止 root 遠(yuǎn)程登錄等。 這里建議直接輸入 y 。 這里根據(jù)自己要設(shè)置的密碼強(qiáng)度自行選擇,這里我選擇輸入 0 。 后面還有幾個(gè)選項(xiàng),默認(rèn)輸入 y 就行。 4.啟動(dòng) M

    2024年03月27日
    瀏覽(23)
  • Ubuntu22.04編譯安裝Mysql5.7.35

    新升級(jí)的ubuntu22.04版本,該版本默認(rèn)openssl已經(jīng)升級(jí)到3.0,所以編譯過(guò)程遇到一些問(wèn)題記錄一下。 安裝依賴 gcc g++已經(jīng)安裝過(guò)就不需要再安裝了。 還有缺少其它依賴的相繼安裝就可以了。 編譯openssl1.1.1 因?yàn)槟J(rèn)的openssl3.0,mysql執(zhí)行cmake過(guò)程一直報(bào)錯(cuò),所以手動(dòng)下載openssl1.1.1編

    2024年02月11日
    瀏覽(27)
  • ubuntu 22.04安裝mysql 8.0與避坑指南

    ubuntu 22.04安裝mysql 8.0與避坑指南

    MySQL 是一個(gè)開源數(shù)據(jù)庫(kù)管理系統(tǒng),可作為流行的 LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆棧的一部分安裝。 它實(shí)現(xiàn)了關(guān)系模型并使用結(jié)構(gòu)化查詢語(yǔ)言( SQL)來(lái)管理其數(shù)據(jù)。 本教程將介紹如何在 Ubuntu 22.04 服務(wù)器上安裝 MySQL 8.0 版。 通過(guò)完成它,你將擁有一個(gè)可用的關(guān)系數(shù)據(jù)

    2024年02月15日
    瀏覽(16)
  • 如何在Ubuntu 22.04上安裝KVM?

    Kernel-based Virtual Machine(KVM)是Linux內(nèi)核中的一個(gè)虛擬化模塊,它允許內(nèi)核作為一個(gè)虛擬機(jī)監(jiān)視器(hypervisor)工作。今天,我們將探討如何在Ubuntu機(jī)器上安裝KVM。我們將使用Ubuntu的最新版本,22.04。安裝將通過(guò)命令行進(jìn)行。我們將運(yùn)行基本的Linux命令來(lái)安裝KVM及其必要的依賴項(xiàng)

    2024年02月08日
    瀏覽(19)
  • ubuntu22.04安裝MySQL、Hive及Hive連接MySQL操作

    ubuntu22.04安裝MySQL、Hive及Hive連接MySQL操作

    這篇文章主要講述的是ubuntu22.04上數(shù)據(jù)倉(cāng)庫(kù)Hive的安裝和使用 建議按照文章實(shí)踐前稍微通讀下全文 相關(guān)命令: sudo apt-get install mysql-server sudo apt-get install mysql-client 在終端中輸入 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 修改mysql的配置文件 [mysqld]之后,任意新建一行,添加文本 skip-gr

    2024年02月11日
    瀏覽(17)
  • 【調(diào)試經(jīng)驗(yàn)】Ubuntu22.04 安裝和配置MySQL 8.0.34

    【調(diào)試經(jīng)驗(yàn)】Ubuntu22.04 安裝和配置MySQL 8.0.34

    ????????本文共計(jì)1469字,預(yù)計(jì)閱讀時(shí)間5分鐘 ???????? 在安裝新版本的MySQL到電腦時(shí),按著網(wǎng)上一些教程執(zhí)行發(fā)現(xiàn)錯(cuò)誤繁多,最后索性自己摸索并把服務(wù)裝好了。自己也整理了一下在操作時(shí)的筆記,上傳上來(lái)希望能幫助到大家。 目錄 正文 安裝MySQL 配置MySQL 登錄賬戶 方

    2024年02月11日
    瀏覽(17)
  • Linux基礎(chǔ)篇 Ubuntu 22.04的環(huán)境安裝-02

    Linux基礎(chǔ)篇 Ubuntu 22.04的環(huán)境安裝-02

    目錄 一、資料的獲取 二、安裝虛擬機(jī) 三、安裝Ubuntu過(guò)程 四、注意事項(xiàng) 1.通過(guò)官方網(wǎng)站下載 Ubuntu系統(tǒng)下載 | Ubuntu https://cn.ubuntu.com/download 2.下載桌面板即可 3.選擇下載的版本 ? 1.創(chuàng)建新的虛擬機(jī) 2.選擇自定義安裝 ?3.硬件兼容性選項(xiàng)默認(rèn)即可 ? 4. 選擇稍后安裝操作系統(tǒng) ?5.選

    2024年02月08日
    瀏覽(24)
  • 服務(wù)器Ubuntu 22.04 64位安裝 MySQL5.7

    服務(wù)器Ubuntu 22.04 64位安裝 MySQL5.7

    官網(wǎng)地址 這里選擇下載5.7.29的ubuntu版本注意是amd64不是arm64,或者執(zhí)行下面命令 解壓下載下來(lái)的包 ls一下看看有什么 我們先安裝這個(gè) 然后再裝下一個(gè) 喜聞樂(lè)見的報(bào)錯(cuò),說(shuō)我們沒(méi)有安裝紅圈里的兩個(gè),我們?nèi)グ惭b 好嘛,server依賴client,client又缺少libtinfo5,那就不能先裝clien

    2024年02月06日
    瀏覽(27)
  • 如何在 Ubuntu 22.04 上安裝 Google Chrome

    如何在 Ubuntu 22.04 上安裝 Google Chrome

    首先,要澄清一點(diǎn),谷歌瀏覽器(Google Chrome)是開源的,其基于Chromium的項(xiàng)目,而且Chromium項(xiàng)目本身是開源的,這就意味著任何人都可以下載和使用這個(gè)引擎,甚至可以為它的源代碼提供修改建議。 然而,雖然谷歌瀏覽器是基于開源的Chromium引擎構(gòu)建的,但它并不完全等同于

    2024年02月06日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包