Linux中國

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

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 伺服器:

$ sudo apt update
$ sudo apt upgrade

然後,安裝 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
 └─apache2-systemd.conf
 Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago
 Main PID: 2025 (apache2)
 Tasks: 55 (limit: 2320)
 CGroup: /system.slice/apache2.service
 ├─2025 /usr/sbin/apache2 -k start
 ├─2027 /usr/sbin/apache2 -k start
 └─2028 /usr/sbin/apache2 -k start

Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably
Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

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

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

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

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

$ sudo ufw app list

輸出結果:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

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

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

$ sudo ufw app info "Apache Full"

輸出結果:

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

Ports:
80,443/tcp

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

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

$ sudo ufw allow in "Apache Full"
Rules updated
Rules updated (v6)

如果你不想允許 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 Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab
Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago
Main PID: 3423 (mysqld)
Tasks: 27 (limit: 2320)
CGroup: /system.slice/mysql.service
└─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Feb 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 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 y

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

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:

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

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
Do 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) : 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? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

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

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

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

$ sudo 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 |
+------------------|-------------------------------------------|-----------------------|-----------+
4 rows in set (0.00 sec)

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

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

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

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

FLUSH PRIVILEGES;

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

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

輸出結果:

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

從 MySQL 提示符下退出:

exit

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

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

<?php
phpinfo();
?>

然後按下 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) 內容如下:

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

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

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

# 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國