zoukankan      html  css  js  c++  java
  • 在 Azure VM 上安装 LEMP Web 服务器

    本文逐步讲解如何在 Azure 中的 Ubuntu VM 上部署 NGINX Web 服务器、MySQL 和 PHP(LEMP 堆栈)。 LEMP 堆栈可以替代常用的 LAMP 堆栈,可安装在 Azure 中。 若要了解 LEMP 服务器的运作情况,可以选择性地安装并配置 WordPress 站点。 本教程介绍如何执行下列操作:

    • 创建 Ubuntu VM(LEMP 堆栈中的“L”)
    • 为 Web 流量打开端口 80
    • 安装 NGINX、MySQL 和 PHP
    • 验证安装和配置
    • 在 LEMP 服务器上安装 WordPress

    Note

    在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

    如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.4 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI 2.0

    创建资源组

    使用 az group create 命令创建资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

    以下示例在“中国北部”位置创建名为“myResourceGroup”的资源组。

    cli
    az group create --name myResourceGroup --location "China North"
    

    创建虚拟机

    使用 az vm create 命令创建 VM。

    下面的示例创建一个名为 myVM 的 VM,并且在默认密钥位置中不存在 SSH 密钥时创建这些密钥。 若要使用特定的一组密钥,请使用 --ssh-key-value 选项。

    cli
    az vm create 
        --resource-group myResourceGroup 
        --name myVM 
        --image UbuntuLTS 
        --admin-username azureuser 
        --generate-ssh-keys
    

    创建 VM 后,Azure CLI 显示类似于以下示例的信息。 记下 publicIpAddress。 此地址用于访问 VM。

    cli
    {
      "fqdns": "",
      "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
      "location": "China North",
      "macAddress": "00-0D-3A-23-9A-49",
      "powerState": "VM running",
      "privateIpAddress": "10.0.0.4",
      "publicIpAddress": "40.68.254.142",
      "resourceGroup": "myResourceGroup"
    }
    

    为 Web 流量打开端口 80

    默认情况下,仅允许通过 SSH 连接登录到 Azure 中部署的 Linux VM。 由于此 VM 将用作 Web 服务器,因此需要从 Internet 打开端口 80。 使用 az vm open-port 命令打开所需端口。

    cli
    az vm open-port --port 80 --resource-group myResourceGroup --name myVM
    

    通过 SSH 连接到 VM

    如果还不知道 VM 的公共 IP 地址,请运行 az network public-ip list 命令:

    cli
    az network public-ip list --resource-group myResourceGroup --query [].ipAddress
    

    使用以下命令创建与虚拟机的 SSH 会话。 替换为虚拟机的相应公共 IP 地址。 在此示例中,IP 地址为 40.68.254.142

    bash
    ssh azureuser@40.68.254.142
    

    安装 NGINX、MySQL 和 PHP

    运行以下命令更新 Ubuntu 包源并安装 NGINX、MySQL 和 PHP。

    bash
    sudo apt update && sudo apt install nginx mysql-server php-mysql php php-fpm
    

    系统会提示安装包和其他依赖项。 出现提示时,请为 MySQL 设置 root 密码,并按 [Enter] 继续。 遵照剩余的提示操作。 此股从会安装最低要求的 PHP 扩展,这些扩展是通过 MySQL 使用 PHP 所必需的。

    MySQL root 密码页

    验证安装和配置

    NGINX

    使用以下命令检查 NGINX 版本:

    bash
    nginx -v
    

    安装 NGINX 并向 VM 打开端口 80 以后,即可通过 Internet 访问 Web 服务器。 若要查看 NGINX 欢迎页,请打开 Web 浏览器并输入 VM 的公共 IP 地址。 使用通过 SSH 连接到 VM 时所用的公共 IP 地址:

    NGINX 默认页

    MySQL

    使用以下命令检查 MySQL 版本(请注意大写的 V 参数):

    bash
    mysql -V
    

    建议运行以下脚本来帮助保护 MySQL 的安装:

    bash
    mysql_secure_installation
    

    输入 MySQL root 密码,并配置环境的安全设置。

    如果想要创建 MySQL 数据库,请添加用户或更改配置设置,并登录到 MySQL:

    bash
    mysql -u root -p
    

    完成后,键入 q 退出 mysql 提示符。

    PHP

    使用以下命令检查 PHP 版本:

    bash
    php -v
    

    配置 NGINX 以使用 PHP FastCGI Process Manager (PHP-FPM)。 运行以下命令备份原始 NGINX 服务器块配置文件,并在所选的编辑器中编辑原始文件:

    bash
    sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_backup
    
    sudo sensible-editor /etc/nginx/sites-available/default
    

    在编辑器中,将 /etc/nginx/sites-available/default 的内容替换为以下内容。 请参阅注释了解设置说明。 用自己 VM 的公共 IP 地址替换 yourPublicIPAddress,并保留其余设置。 然后保存文件。

    server {
        listen 80 default_server;
        listen [::]:80 default_server;
    
        root /var/www/html;
        # Homepage of website is index.php
        index index.php;
    
        server_name yourPublicIPAddress;
    
        location / {
            try_files $uri $uri/ =404;
        }
    
        # Include FastCGI configuration for NGINX
        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
    }
    

    检查 NGINX 配置中的语法错误:

    bash
    sudo nginx -t
    

    如果语法正确,请使用以下命令重启 NGINX:

    bash
    sudo service nginx restart
    

    如果想要进一步测试,请创建一个可在浏览器中查看的快速 PHP 信息页。 以下命令创建 PHP 信息页:

    bash
    sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'
    

    现在,可以检查创建的 PHP 信息页。 打开浏览器并转到 http://yourPublicIPAddress/info.php。 替换 VM 的公共 IP 地址。 应如下图所示。

    PHP 信息页

    安装 WordPress

    若要尝试堆栈,请安装示例应用。 例如,以下步骤安装用于创建网站和博客的开源 WordPress 平台。 其他可尝试的工作负荷包括 Drupal 和 Moodle

    此 WordPress 设置适用于概念证明。 有关生产安装的详细信息和设置,请参阅 WordPress 文档

    安装 WordPress 包

    运行以下命令:

    bash
    sudo apt install wordpress
    

    配置 WordPress

    将 WordPress 配置为使用 MySQL 和 PHP。 运行以下命令,打开所选文本编辑器并创建文件 /etc/wordpress/config-localhost.php

    bash
    sudo sensible-editor /etc/wordpress/config-localhost.php
    

    将以下行复制到文件中,并将 yourPassword 替换为自己的数据库密码(其他值不变)。 然后保存文件。

    PHP
    <?php
    define('DB_NAME', 'wordpress');
    define('DB_USER', 'wordpress');
    define('DB_PASSWORD', 'yourPassword');
    define('DB_HOST', 'localhost');
    define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
    ?>
    

    在工作目录中创建文本文件 wordpress.sql,以便配置 WordPress 数据库:

    bash
    sudo sensible-editor wordpress.sql
    

    添加以下命令,将 yourPassword 替换为自己的数据库密码(其他值不变)。 然后保存文件。

    SQL
    CREATE DATABASE wordpress;
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
    ON wordpress.*
    TO wordpress@localhost
    IDENTIFIED BY 'yourPassword';
    FLUSH PRIVILEGES;
    

    若要创建数据库,请运行以下命令:

    bash
    cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf
    

    该命令完成后,请删除文件 wordpress.sql

    将 WordPress 安装移至 Web 服务器文档根目录:

    bash
    sudo ln -s /usr/share/wordpress /var/www/html/wordpress
    
    sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php
    

    现在可以完成 WordPress 设置并在平台上进行发布了。 打开浏览器并转到 http://yourPublicIPAddress/wordpress。 替换 VM 的公共 IP 地址。 应如下图所示。

    WordPress 安装页

    后续步骤

    本教程在 Azure 中部署了一台 LEMP 服务器。 你已了解如何:

    • 创建 Ubuntu VM
    • 为 Web 流量打开端口 80
    • 安装 NGINX、MySQL 和 PHP
    • 验证安装和配置
    • 在 LEMP 堆栈上安装 WordPress

    转到下一教程,了解如何使用 SSL 证书保护 Web 服务器。

    使用 SSL 保护 Web 服务器        

    立即访问http://market.azure.cn

  • 相关阅读:
    企业微信开发基本步骤
    简单的企业微信开发 前后端
    真分页
    企业微信“三次握手”
    Android项目的图标
    Android项目的目录结构
    Android系统提供了哪些东西,供我们可以开发出优秀的应用程序
    Android中的四层架构,五块区域
    MySQL中的concat函数
    Activity生命周期
  • 原文地址:https://www.cnblogs.com/zangdalei/p/7845357.html
Copyright © 2011-2022 走看看