在 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 伺服器。 必須按照以下步驟開啟 http
和 https
埠。
首先,使用以下命令列出 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」 配置文件包含了啟用經由埠 80 和 443 的傳輸規則:
現在,運行以下命令配置允許 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive