全部產品
Search
文件中心

Elastic Compute Service:部署LAMP環境(Ubuntu)

更新時間:Sep 10, 2024

LAMP環境是常用的Web開發環境之一,其中LAMP分別代表Linux、Apache、MySQL和PHP。LAMP擁有龐大的社區支援和豐富的資源,適合開發、部署和維護各種規模的Web應用,由於其高度靈活性和可定製性,您可以根據專案需求調整每個組件的配置,以達到最佳效能和安全性。本文介紹如何在Ubuntu作業系統的ECS執行個體內部署LAMP環境。

準備工作

建立用於部署LAMP環境的ECS執行個體,具體操作,請參見自訂購買執行個體

該執行個體必須滿足以下條件:

步驟一:安裝Apache

  1. 運行以下命令,更新Ubuntu系統內的軟體包。

    sudo apt update
  2. 運行以下命令,安裝Apache。

    sudo apt-get -y install apache2
  3. 運行以下命令,查看Apache版本。

    apache2 -v

    返回結果類似如下所示,表示Apache已成功安裝。

    image.png

  4. 運行以下命令,啟動Apache服務並設定服務開機自啟動。

    sudo systemctl start apache2
    sudo systemctl enable apache2
  5. 運行以下命令,查看Apache服務狀態。

    sudo systemctl status apache2

    返回結果類似如下所示,表示Apache已啟動。

    image.png

步驟二:安裝並配置MySQL

  1. 安裝MySQL。

    1. 運行以下命令,安裝MySQL。

      sudo apt -y install mysql-server
    2. 運行以下命令,查看MySQL版本。

      mysql -V

      返回結果類似如下所示,表示MySQL已成功安裝。

      image.png

  2. 運行以下命令,啟動MySQL服務。

    sudo systemctl start mysql
  3. 依次運行以下命令,設定開機啟動MySQL。

    sudo systemctl enable mysql
    sudo systemctl daemon-reload
  4. 配置MySQL。

    1. 運行以下命令,進入MySQL。

      sudo mysql
    2. 運行以下命令,設定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';
    3. 運行以下命令,退出MySQL資料庫。

      exit;
    4. 運行以下命令,對MySQL進行安全性配置。

      sudo mysql_secure_installation
    5. 根據命令列提示,依次完成以下配置項。

      1. 輸入root使用者的密碼。本樣本中輸入Mysql@1234

        ecs-user@iZbp19jsi7s0g7m4zgc****:~# sudo mysql_secure_installation
        
        Securing the MySQL server deployment.
        
        Enter password for user root: 
        說明

        在輸入密碼時,系統為了最大限度地保證資料安全,命令列將不做任何回顯。您只需要輸入正確的密碼資訊,然後按Enter鍵即可。

      2. 輸入Y,設定密碼驗證策略。

        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
      3. 選擇密碼驗證策略。

        本樣本輸入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
      4. 輸入Y,更改root使用者密碼。

        Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y
      5. 輸入root使用者密碼。

        New password:
        
        Re-enter new password:
        
        Estimated strength of the password: 100
      6. 輸入Y,確認使用已設定的密碼。

        Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
      7. 輸入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
      8. 輸入Y,禁止MySQL的root使用者的遠程登入許可權。

        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
      9. 輸入Y,移除test資料庫。

        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) : 
      10. 輸入Y,重新載入授權表。

        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

        當命令列回顯All done!時,表示配置完成。

  5. 測試登入MySQL資料庫。

    1. 運行以下命令,登入MySQL資料庫。

      sudo mysql -uroot -p
    2. 在命令列回顯的Enter password:後輸入已設定的資料庫密碼。

      說明

      在輸入密碼時,系統為了最大限度地保證資料安全,命令列將不做任何回顯。您只需要輸入正確的密碼資訊,然後按Enter鍵即可。

      成功登入MySQL資料庫後,命令列資訊如下所示。

      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>
    3. 運行以下命令,退出MySQL資料庫。

      exit;
  6. (可選)修改監聽配置。

    預設情況下,MySQL資料庫使用連接埠號碼3306監聽並只接受來自本地IP地址127.0.0.1的串連請求。如需允許MySQL接受來自任何IP地址的串連,您需要將監聽IP地址更改為0.0.0.0。具體操作如下所示:

    重要

    將MySQL配置為監聽0.0.0.0會使資料庫更容易受到未經授權訪問的風險。因此,在允許來自任何IP的串連之前,請您務必認識到相關的安全威脅,並採取必要的保護措施,比如應用VPN、實施防火牆限制和加強賬戶許可權管理。

    1. 執行以下命令,開啟my.cnf設定檔。

      sudo vim /etc/mysql/my.cnf
    2. i鍵進入編輯模式,然後添加如下內容。

      [mysqld]
      bind-address = 0.0.0.0

      修改完成後,按Esc鍵退出編輯模式,然後輸入:wq儲存並退出。

    3. 執行以下命令,重啟MySQL服務。

      sudo systemctl restart mysql

步驟三:安裝PHP

  1. 安裝PHP。

    1. 運行以下命令,安裝software-properties-common軟體包。

      sudo apt-get install -y software-properties-common
    2. 運行以下命令,添加第三方軟體包Ondrej PPA。

      第三方軟體包Ondrej PPA中提供了最新版本的PHP。

      sudo add-apt-repository ppa:ondrej/php

      出現如下圖所示的回顯資訊時,請按Enter鍵。

      image

    3. 運行以下命令,安裝PHP。

      說明

      本操作以安裝PHP 8.3為例,如果您想安裝其他版本,請修改命令中的php8.3為具體版本。

      sudo apt-get install -y php8.3 php8.3-fpm libapache2-mod-php8.3
    4. 運行以下命令,查看PHP版本。

      php -v

      返回結果類似如下所示,表示PHP已成功安裝。

      image.png

  2. 運行以下命令,備份Apache設定檔。

    sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
  3. 修改Apache設定檔,添加Apache對PHP的支援。

    重要

    若不添加此配置資訊,後續您使用瀏覽器訪問PHP頁面時,頁面將無法顯示。

    1. 運行以下命令,開啟Apache設定檔。

      sudo vim /etc/apache2/apache2.conf
    2. i進入編輯模式。

    3. 添加下列配置資訊。

      DirectoryIndex index.html index.php
      <FilesMatch \.php$>
          SetHandler application/x-httpd-php
      </FilesMatch>
    4. Esc鍵,輸入:wq,按Enter鍵關閉並儲存設定檔。

  4. 在Apache網站根目錄中,建立測試網頁。

    1. 運行以下命令,查看Apache網站根目錄的路徑資訊。

      sudo cat /etc/apache2/sites-available/000-default.conf

      命令列返回結果中的DocumentRoot /var/www/html一行,即表示網站根目錄為/var/www/html

      image

    2. 運行以下命令,在網站根目錄建立測試網頁,並把phpinfo()函數添加至網頁內容中。

      phpinfo()函數會展示PHP的所有配置資訊。

      sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
  5. 運行以下命令,重啟Apache服務。

    sudo systemctl restart apache2
  6. 在本地機器瀏覽器地址欄,輸入http://<ECS執行個體公網IP地址>/phpinfo.php並按Enter鍵。

    顯示如下頁面表示安裝成功。

    image

  7. 成功搭建LAMP環境後,建議您刪除phpinfo.php測試檔案,以消除資料泄露風險。

    sudo rm -rf <網站根目錄>/phpinfo.php

    本教程中網站根目錄為/var/www/html,則需要運行以下命令刪除測試檔案。

    sudo rm -rf /var/www/html/phpinfo.php