在 Ubuntu 中安裝 Apache、MySQL、PHP(LAMP)套件 | Linux 中國

2021-02-14 Linux中國

LAMP 套件是一種流行的開源 Web 開發平臺,可用於運行和部署動態網站和基於 Web 的應用程式。通常,LAMP 套件由 Apache Web 伺服器、MariaDB/MySQL 資料庫、PHP/Python/Perl 程序設計(腳本)語言組成。LAMP 是 Linux,MariaDB/MYSQL,PHP/Python/Perl 的縮寫。本教程描述了如何在 Ubuntu 18.04 LTS 伺服器中安裝 Apache、MySQL、PHP(LAMP 套件)。

就本教程而言,我們將使用以下 Ubuntu 測試。

◈ 作業系統:Ubuntu 18.04.1 LTS Server Edition◈ IP 地址 :192.168.225.22/24

1. 安裝 Apache Web 伺服器

首先,利用下面命令更新 Ubuntu 伺服器:

然後,安裝 Apache Web 伺服器(命令如下):

$ sudo apt install apache2

檢查 Apache Web 伺服器是否已經運行:

$ sudo systemctl status apache2

輸出結果大概是這樣的:

● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en Drop-In: /lib/systemd/system/apache2.service.d Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago CGroup: /system.slice/apache2.service ├─2025 /usr/sbin/apache2 -k start ├─2027 /usr/sbin/apache2 -k start └─2028 /usr/sbin/apache2 -k startFeb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server...Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliablyFeb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

祝賀你!Apache 服務已經啟動並運行了!!

1.1 調整防火牆允許 Apache Web 伺服器

默認情況下,如果你已在 Ubuntu 中啟用 UFW 防火牆,則無法從遠程系統訪問 Apache Web 伺服器。必須按照以下步驟開啟 http 和 https 埠。

首先,使用以下命令列出 Ubuntu 系統上可用的應用程式配置文件:

輸出結果:

如你所見,Apache 和 OpenSSH 應用程式已安裝 UFW 配置文件。你可以使用 ufw app info "Profile Name" 命令列出有關每個配置文件及其包含的規則的信息。

讓我們研究一下 「Apache Full」 配置文件。為此,請運行:

$ sudo ufw app info "Apache Full"

輸出結果:

Title: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache web

如你所見,「Apache Full」 配置文件包含了啟用經由埠 80 和 443 的傳輸規則:

現在,運行以下命令配置允許 HTTP 和 HTTPS 傳入通信:

$ sudo ufw allow in "Apache Full"

如果你不想允許 HTTP 通信,而只允許 HTTP(80) 通信,請運行:

$ sudo ufw app info "Apache"

1.2 測試 Apache Web 伺服器

現在,打開 Web 瀏覽器並導航到 http://localhost/ 或 http://IP-Address/ 來訪問 Apache 測試頁。

如果看到上面類似的顯示內容,那就成功了。Apache 伺服器正在工作!

2. 安裝 MySQL

在 Ubuntu 安裝 MySQL 請運行:

$ sudo apt install mysql-server

使用以下命令驗證 MySQL 服務是否正在運行:

$ sudo systemctl status mysql

輸出結果:

● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabActive: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s agoCGroup: /system.slice/mysql.service└─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pidFeb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server...Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.

MySQL 正在運行!

2.1 配置資料庫管理用戶(root)密碼

默認情況下,MySQL root 用戶密碼為空。你需要通過運行以下腳本使你的 MySQL 伺服器安全:

$ sudo mysql_secure_installation

系統將詢問你是否要安裝 「VALIDATE PASSWORD plugin(密碼驗證插件)」。該插件允許用戶為資料庫配置強密碼憑據。如果啟用,它將自動檢查密碼的強度並強制用戶設置足夠安全的密碼。禁用此插件是安全的。但是,必須為資料庫使用唯一的強密碼憑據。如果不想啟用此插件,只需按任意鍵即可跳過密碼驗證部分,然後繼續其餘步驟。

如果回答是 y,則會要求你選擇密碼驗證級別。

Securing the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No y

可用的密碼驗證有 「low(低)」、 「medium(中)」 和 「strong(強)」。只需輸入適當的數字(0 表示低,1 表示中,2 表示強密碼)並按回車鍵。

There are three levels of password validation policy:MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

現在,輸入 MySQL root 用戶的密碼。請注意,必須根據上一步中選擇的密碼策略,為 MySQL root 用戶使用密碼。如果你未啟用該插件,則只需使用你選擇的任意強度且唯一的密碼即可。

Please set the password for root here.Estimated strength of the password: 50Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

兩次輸入密碼後,你將看到密碼強度(在此示例情況下為 50)。如果你確定可以,請按 y 繼續提供的密碼。如果對密碼長度不滿意,請按其他任意鍵並設置一個強密碼。我現在的密碼可以,所以我選擇了y。

對於其餘的問題,只需鍵入 y 並按回車鍵。這將刪除匿名用戶、禁止 root 用戶遠程登錄並刪除 test(測試)資料庫。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : yNormally, root should only be allowed to connect from'localhost'. This ensures that someone cannot guess atthe root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yBy default, MySQL comes with a database named 'test' thatanyone can access. This is also intended only for testing,and should be removed before moving into a productionRemove test database and access to it? (Press y|Y for Yes, any other key for No) : y- Dropping test database...- Removing privileges on test database...Reloading the privilege tables will ensure that all changesmade so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y

以上就是為 MySQL root 用戶設置密碼。

2.2 更改 MySQL 超級用戶的身份驗證方法

默認情況下,Ubuntu 系統的 MySQL root 用戶為 MySQL 5.7 版本及更新的版本使用插件 auth_socket 設置身份驗證。儘管它增強了安全性,但是當你使用任何外部程序(例如 phpMyAdmin)訪問資料庫伺服器時,也會變得更困難。要解決此問題,你需要將身份驗證方法從 auth_socket 更改為 mysql_native_password。為此,請使用以下命令登錄到你的 MySQL 提示符下:

在 MySQL 提示符下運行以下命令,找到所有 MySQL 當前用戶帳戶的身份驗證方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

輸出結果:

+---|---|---|-+| user | authentication_string | plugin | host |+---|---|---|-+| root | | auth_socket | localhost || mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost || mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost || debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost |+---|---|---|-+

如你所見,Mysql root 用戶使用 auth_socket 插件進行身份驗證。

要將此身份驗證更改為 mysql_native_password 方法,請在 MySQL 提示符下運行以下命令。別忘了用你選擇的強大唯一的密碼替換 password。如果已啟用 VALIDATION 插件,請確保已根據當前策略要求使用了強密碼。

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

使用以下命令更新資料庫:

使用命令再次檢查身份驗證方法是否已更改:

SELECT user,authentication_string,plugin,host FROM mysql.user;

輸出結果:

好!MySQL root 用戶就可以使用密碼進行身份驗證來訪問 mysql shell。

從 MySQL 提示符下退出:

3. 安裝 PHP

安裝 PHP 請運行:

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

安裝 PHP 後,在 Apache 文檔根目錄中創建 info.php 文件。通常,在大多數基於 Debian 的 Linux 發行版中,Apache 文檔根目錄為 /var/www/html/ 或 /var/www/。Ubuntu 18.04 LTS 系統下,文檔根目錄是 /var/www/html/。

在 Apache 根目錄中創建 info.php 文件:

$ sudo vi /var/www/html/info.php

在此文件中編輯如下內容:

然後按下 ESC 鍵並且輸入 :wq 保存並退出此文件。重新啟動 Apache 服務使更改生效。

$ sudo systemctl restart apache2

3.1 測試 PHP

打開 Web 瀏覽器,然後導航到 URL http://IP位址/info.php。

你就將看到 PHP 測試頁面。

通常,當用戶向 Web 伺服器發出請求時,Apache 首先會在文檔根目錄中查找名為 index.html 的文件。如果你想將 Apache 更改為 php 文件提供服務而不是其他文件,請將 dir.conf 配置文件中的 index.php 移至第一個位置,如下所示:

$ sudo vi /etc/apache2/mods-enabled/dir.conf

上面的配置文件(dir.conf) 內容如下:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

將 index.php 移動到最前面。更改後,dir.conf 文件內容看起來如下所示。

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

然後按下 ESC 鍵並且輸入 :wq 保存並關閉此文件。重新啟動 Apache 服務使更改生效。

$ sudo systemctl restart apache2

3.2 安裝 PHP 模塊

為了增加 PHP 的功能,可以安裝一些其他的 PHP 模塊。

要列出可用的 PHP 模塊,請運行:

$ sudo apt-cache search php- | less

輸出結果:

使用方向鍵瀏覽結果。要退出,請輸入 q 並按下回車鍵。

要查找任意 php 模塊的詳細信息,例如 php-gd,請運行:

$ sudo apt-cache show php-gd

安裝 PHP 模塊請運行:

$ sudo apt install php-gd

安裝所有的模塊(雖然沒有必要),請運行:

$ sudo apt-get install php*

安裝任何 php 模塊後,請不要忘記重新啟動 Apache 服務。要檢查模塊是否已加載,請在瀏覽器中打開 info.php 文件並檢查是否存在。

接下來,你可能需要安裝資料庫管理工具,以通過 Web 瀏覽器輕鬆管理資料庫。如果是這樣,請按照以下連結中的說明安裝 phpMyAdmin。

祝賀你!我們已經在 Ubuntu 伺服器中成功配置了 LAMP 套件。

via: https://www.ostechnix.com/install-apache-mysql-php-lamp-stack-on-ubuntu-18-04-lts/

作者:SK 選題:lujun9972 譯者:stevenzdg988 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

我們將為您添加白名單,授權「轉載文章時可以修改」。

相關焦點

  • 在 Ubuntu Server 16.04 LTS 上安裝 LAMP
    Apache2 web 伺服器的安裝 :在 Ubuntu linux 中,web 伺服器是 Apache2,我們可以利用下面的命令來安裝它:linuxtechi@ubuntu:~$ sudo apt updatelinuxtechi@ubuntu:~$ sudo apt install apache2 -y當安裝
  • Ubuntu 20.04快速上架設LAMP伺服器及WordPress博客
    apt -y install apache2apt -y install mysql-server#### Start httprm /var/www/html/index.htmlsystemctl enable apache2systemctl start apache2#### Start mysql and set
  • Ubuntu建立Apache, PHP和MySQL環境及最簡單的編程案例
    Distributor ID: UbuntuDescription:   Ubuntu 16.04.1 LTSRelease:  16.04Codename:    xenial 安裝apache,php:sudo apt-get install apache2
  • LAMP之一:apache、mysql、php的安裝及互聯互通
    1、本篇(LAMP系列之一)主要介紹整個平臺架構的搭建:Apache2.4.9的編譯安裝,mysql-5.5.33的安裝,php-5.4.26的編譯安裝,以及整個平臺的互聯互通;第二篇將介紹《LAMP的性能測試以及安裝xcache,為php加速》。
  • 5、Linux雲計算系列-CentOS-6網絡服務—LAMP
    查看安裝軟體的磁碟空間是否充足保證軟體能正常安裝,空間不足時會導致軟體安裝失敗# df -h6.源碼軟體包安裝報錯確認與解決方案echo $?       #安裝軟體過程中由於頻繁刷屏,建議在每個步驟結束後執行此命令.
  • ubuntu20.04系統伺服器生信基礎配置
    0.ubuntu伺服器網絡配置靜態IP和遠程連結1.開通網頁服務2.安裝必備的庫3.安裝Rstudio server語言4.安裝Shiny Server5.安裝JBrowser6.安裝Docker之前入門linux也是踩了好多坑,現在總結一下給大家先分享下伺服器配置的一些經驗。mac的電腦自帶終端很方便,直接可以練習linux命令。
  • Linux使用LAMP搭建Apache+PHP+MySQL伺服器
    /index.html【免費】bitnami的LAMP網址:https://bitnami.com/stack/lamp本次教程選用的是bitnami的LAMP。總體來說,沒有非常大的差別,需要下載安裝文件進行安裝,而且都沒有可視化的運維界面,所以需要自己手動修改配置文件來調整網站環境。他們的有點就是更新很及時,基本上集成的軟體中有穩定版本更新,就會發布一個新版,而且資料庫用的是MariaDB ,不用擔心付費問題。至於為什麼最終選擇了bitnami的LAMP。
  • LAMP(Linux Apache Mysql PHP)伺服器,網絡數據可以通過防火牆連到樹莓派
    #關閉伺服器/etc/init.d/apache2 restart #重啟伺服器(2) 安裝mysqlMySQL 和 MariaDB 都是 Ubuntu 中的資料庫伺服器。MySQL Server 和 MariaDB Server的安裝包都可以在Ubuntu 的默認軟體源中找到,我們可以選擇其中的一個來安裝。通過下面的命令來在終端中安裝mysql伺服器。sudo apt install mysql-server mysql-client安裝過程中,會出現一個提示符讓你輸入一個密碼。
  • 寶塔面板環境軟體linux/nginx/php/mysql/phpmyadmin版本如何選擇
    比如linux/nginx/php/mysql/phpmyadmin這些軟體的選擇都是有依據的。選擇不對要麼web程序無法運行,要麼容易出現兼容性問題或者卡頓。所以老魏今天和大家說說面對這種情況應該如何選擇。不止初次登陸時要選擇合適版本,在使用時因為web程序要求不同也要添加不同環境軟體版本。
  • CentOS 8.1下搭建LAMP(Linux+Apache+MySQL+PHP)環境
    LAMP是世界上最流行的組合,當然同時也有Nginx,也就是LNMP: LAMP 相對於 NGINX 來說較為安全,但是Nginx處理高並發比Apache要強,在本文中,您將學習如何在CentOS 8 Linux發行版上安裝LAMP伺服器。步驟1:更新CentOS 8軟體包建議,通常在開始安裝之前先更新軟體包是一個好的習慣。
  • 怎樣在 Ubuntu 下安裝 Moodle(「魔燈」) | Linux 中國
    Moodle 有很多非常實用的功能,比如:在本教程中,我們將指導您在 Ubuntu 16.04 VPS 上利用 Apache web 伺服器、MySQL 和 PHP 7 安裝最新版本的 Moodle。(LCTT 譯註:在 Ubuntu 的後繼版本上的安裝也類似。)
  • 如何為Ubuntu中安裝不同的PHP版本(5.6、7.x和8.0)
    它是一種伺服器端腳本語言,特別適用於網絡開發並可嵌入HTML 中。目前,有三種受支持版本的PHP,即PHP 5.6,7.0,和8.0。含義PHP 5.3,5.4,和5.5都達到了生命的盡頭; 安全更新不再支持它們。在本文中,我們將說明如何使用Ondřej Surý PPA在Ubuntu和它的派生版本中為Apache和Nginx Web伺服器安裝請求最多的PHP擴展的所有受支持版本的PHP。
  • 最新超詳細的Ubuntu20.04環境下安裝Moodle學習平臺
    之前文章提到Moodle在線學習平臺開源免費,可以獨立嘗試,可是最新版Linux(ubuntu)系統配置與過去略有不同,不少人搭建過程中出現了問題,這裡是最新超詳細的保姆級教程,共分為四部分:1.製作Ubuntu U盤引導盤 2.Ubuntu系統安裝 3.Moodle環境配置 4.Moodle安裝一 製作Ubuntu
  • Apache+php+mysql搭建
    喜歡搗鼓電腦,今天終於成功的搭建了資料庫,記錄一下安裝的全過程.第一步:下載Apache2.4,文件名:httpd-2.4.33-win64-VC15.zip。官方沒有提供windows編譯版本,這裡是在pachelounge社區下載的:https://www.apachelounge.com/download/php7.2.6,文件名:VC15 x64 Thread Safe:https://windows.php.net/download/MySQL5.7.36,文件名:mysql-5.7.36
  • 如何在 Ubuntu 中切換多個 PHP 版本 | Linux 中國
    例如,假設你在測試部署在 Ubuntu 18.04 LTS 中的LAMP 棧[2]的 PHP 程序。過了一段時間,你發現應用程式在 PHP 5.6 中工作正常,但在 PHP 7.2 中不正常(Ubuntu 18.04 LTS 默認安裝 PHP 7.x)。你打算重新安裝 PHP 或整個 LAMP 棧嗎?但是沒有必要。你甚至不必將 PHP 降級到其早期版本。
  • 在 Ubuntu 16.04 為 Nginx 伺服器安裝 LEMP 環境(MariaDB,PHP 7 並支持 HTTP 2.0)
    前置準備步驟 1:安裝 Nginx 伺服器1、Nginx 是一個先進的、資源優化的 Web 伺服器程序,用來向網際網路上的訪客展示網頁。我們從 Nginx 伺服器的安裝開始介紹,使用 apt 命令[2] 從 Ubuntu 的官方軟體倉庫中獲取 Nginx 程序。
  • LAMP環境搭建
    至於什麼是php腳本語言,筆者不再介紹,請自己查資料吧。Apache是最常用的WEB服務軟體,而MySQL是比較小型的資料庫軟體,這兩個軟體以及PHP都可以安裝到windows的機器上。下面筆者就教你如何構建這個LAMP環境。安裝MySQL一般我們平時安裝MySQL都是源碼包安裝的,但是由於它的編譯需要很長的時間,所以,筆者建議你安裝二進位免編譯包。
  • 酸甜可口「烏莓派」——Ubuntu+Raspberry Pi魔鏡之旅(一)
    (Freebuf原文連接:http://www.freebuf.com/tools/91497.html。)實際上更早有這個想法的是另一位大牛,他們都是用aspberry pi2+raspbian+lamp實現的。樹莓派支持多種作業系統,2015年ubuntu發布了能支持樹莓派的官方版本,我選擇了Ubuntu mate 15.10。
  • (實用篇)在Mac下配置php開發環境:Apache+php+MySql
    的頁面二、運行PHP1、找到Apache的配置文件,在目錄/etc/apache2/下,打開Finder,選擇"前往"-"前往文件夾",輸入"/etc/apache2/",找到其中的"httpd.conf"文件,選擇用文稿打開進行編輯,點按Command+F,搜索#LoadModule php5_module libexec/apache2/libphp5.so,如圖
  • Apache+php+mysql搭建CentOS伺服器
    dnf -y install yum-utilssudo dnf --enablerepo=remi-test install php80// 查看版本php80 --version// 卸載yum remove php2.