部署LAMP環(huán)境(Ubuntu)
LAMP環(huán)境是常用的Web開發(fā)環(huán)境之一,其中LAMP分別代表Linux、Apache、MySQL和PHP。本文介紹如何在Ubuntu操作系統(tǒng)的輕量應(yīng)用服務(wù)器實(shí)例內(nèi)部署LAMP環(huán)境。
如果您還沒創(chuàng)建輕量應(yīng)用服務(wù)器,建議您直接通過LAMP應(yīng)用鏡像快速搭建LAMP環(huán)境。具體操作,請參見搭建LAMP開發(fā)環(huán)境(通過應(yīng)用鏡像)。
如果您需要在Alibaba Cloud Linux/CentOS 7.x操作系統(tǒng)中部署LAMP環(huán)境。具體操作,請參見手動(dòng)搭建LAMP開發(fā)環(huán)境(Alibaba Cloud Linux/CentOS 7.x)。
準(zhǔn)備工作
創(chuàng)建用于部署LAMP環(huán)境的輕量應(yīng)用服務(wù)器實(shí)例。具體操作,請參見創(chuàng)建輕量應(yīng)用服務(wù)器。
該實(shí)例必須滿足以下條件:
操作系統(tǒng):Ubuntu 22.04、Ubuntu 20.04、Ubuntu 18.04。
實(shí)例安全組的入方向規(guī)則已放行22、80、443端口。具體操作,請參見管理防火墻。
步驟一:安裝Apache
遠(yuǎn)程連接需要部署LAMP環(huán)境的輕量應(yīng)用服務(wù)器實(shí)例。具體操作,請參見遠(yuǎn)程連接Linux服務(wù)器。
運(yùn)行以下命令,更新Ubuntu系統(tǒng)內(nèi)的軟件包。
sudo apt update
運(yùn)行以下命令,安裝Apache。
sudo apt-get -y install apache2
運(yùn)行以下命令,查看Apache版本。
apache2 -v
返回結(jié)果類似如下所示,表示Apache已成功安裝,Apache的版本為2.4.52。
運(yùn)行以下命令,啟動(dòng)Apache服務(wù)并設(shè)置服務(wù)開機(jī)自啟動(dòng)。
sudo systemctl start apache2 sudo systemctl enable apache2
運(yùn)行以下命令,查看Apache服務(wù)狀態(tài)。
sudo systemctl status apache2
返回結(jié)果類似如下所示,表示Apache已啟動(dòng)。
步驟二:安裝并配置MySQL
安裝MySQL。
運(yùn)行以下命令,安裝MySQL。
sudo apt -y install mysql-server
運(yùn)行以下命令,查看MySQL版本。
mysql -V
返回結(jié)果類似如下所示,表示MySQL已成功安裝,MySQL的版本為8.0.35。
運(yùn)行以下命令,啟動(dòng)MySQL服務(wù)。
sudo systemctl start mysql
依次運(yùn)行以下命令,設(shè)置開機(jī)啟動(dòng)MySQL。
sudo systemctl enable mysql sudo systemctl daemon-reload
配置MySQL。
運(yùn)行以下命令,進(jìn)入MySQL。
sudo mysql
運(yùn)行以下命令,設(shè)置root用戶密碼。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
本示例中密碼以
Mysql@1234
為例,示例命令:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';
運(yùn)行以下命令,退出MySQL數(shù)據(jù)庫。
exit;
運(yùn)行以下命令,對MySQL進(jìn)行安全性配置。
sudo mysql_secure_installation
根據(jù)命令行提示,依次完成以下配置項(xiàng)。
輸入root用戶的密碼。本示例中輸入
Mysql@1234
。ecs-user@iZbp19jsi7s0g7m4zgc****:~# sudo mysql_secure_installation Securing the MySQL server deployment. Enter password for user root:
說明在輸入密碼時(shí),系統(tǒng)為了最大限度地保證數(shù)據(jù)安全,命令行將不做任何回顯。您只需要輸入正確的密碼信息,然后按Enter鍵即可。
輸入
Y
,設(shè)置密碼驗(yàn)證策略。VALIDATE PASSWORD COMPONENT 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 component? Press y|Y for Yes, any other key for No: Y
選擇密碼驗(yàn)證策略。
本示例輸入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: 0
輸入
Y
,更改root用戶密碼。Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y
輸入root用戶密碼。
New password: Re-enter new password: Estimated strength of the password: 100
輸入
Y
,確認(rèn)使用已設(shè)置的密碼。Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
輸入
Y
,刪除MySQL自帶的匿名用戶。By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : Y
輸入
Y
,禁止MySQL的root用戶的遠(yuǎn)程登錄權(quán)限。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
輸入
Y
,移除test數(shù)據(jù)庫。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
,重新加載授權(quán)表。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
當(dāng)命令行回顯All done!時(shí),表示配置完成。
測試登錄MySQL數(shù)據(jù)庫。
運(yùn)行以下命令,登錄MySQL數(shù)據(jù)庫。
sudo mysql -uroot -p
在命令行回顯的
Enter password:
后輸入已設(shè)置的數(shù)據(jù)庫密碼。說明在輸入密碼時(shí),系統(tǒng)為了最大限度地保證數(shù)據(jù)安全,命令行將不做任何回顯。您只需要輸入正確的密碼信息,然后按Enter鍵即可。
成功登錄MySQL數(shù)據(jù)庫后,命令行信息如下所示。
ecs-user@iZbp19jsi7s0g7m4zgc****:~# sudo mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 8.0.29-0ubuntu0.20.04.3 (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>
運(yùn)行以下命令,退出MySQL數(shù)據(jù)庫。
exit;
步驟三:安裝PHP
依次運(yùn)行以下命令,安裝PHP。
sudo apt -y install php-fpm sudo apt -y install libapache2-mod-php
運(yùn)行以下命令,查看PHP版本。
php -v
返回結(jié)果類似如下所示,表示PHP已成功安裝,PHP的版本為7.4.3。
在Apache網(wǎng)站根目錄中,創(chuàng)建測試網(wǎng)頁。
運(yùn)行以下命令,查看Apache網(wǎng)站根目錄的路徑信息。
sudo cat /etc/apache2/sites-available/000-default.conf
命令行返回結(jié)果中的
DocumentRoot /var/www/html
一行,即表示網(wǎng)站根目錄為/var/www/html
。運(yùn)行以下命令,在網(wǎng)站根目錄創(chuàng)建測試網(wǎng)頁,并把
phpinfo()
函數(shù)添加至網(wǎng)頁內(nèi)容中。phpinfo()
函數(shù)會(huì)展示PHP的所有配置信息。sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
運(yùn)行以下命令,重啟Apache服務(wù)。
sudo systemctl restart apache2
在本地機(jī)器瀏覽器地址欄,輸入
http://<輕量應(yīng)用服務(wù)器實(shí)例公網(wǎng)IP地址>/phpinfo.php
并按Enter
鍵。顯示如下頁面表示安裝成功。
成功搭建LAMP環(huán)境后,建議您刪除phpinfo.php測試文件,消除數(shù)據(jù)泄露風(fēng)險(xiǎn)。
sudo rm -rf <網(wǎng)站根目錄>/phpinfo.php
本教程中網(wǎng)站根目錄為
/var/www/html
,則需要運(yùn)行以下命令刪除測試文件。sudo rm -rf /var/www/html/phpinfo.php