在 Azure VM 上安装 LAMP Web 服务器
本文逐步讲解如何在 Azure 中的 Ubuntu VM 上部署 Apache Web 服务器、MySQL 和 PHP(LAMP 堆栈)。 如果想要部署 NGINX Web 服务器,请参阅 LEMP 堆栈教程。 若要了解 LAMP 服务器的运作情况,可以选择性地安装并配置 WordPress 站点。 本教程介绍如何执行下列操作:
- 创建 Ubuntu VM(LAMP 堆栈中的“L”)
- 为 Web 流量打开端口 80
- 安装 Apache、MySQL 和 PHP
- 验证安装和配置
- 在 LAMP 服务器上安装 WordPress
有关 LAMP 堆栈的详细信息,包括针对生产环境的建议,请参阅 Ubuntu 文档。
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”的资源组。
az group create --name myResourceGroup --location "China North"
创建虚拟机
使用 az vm create 命令创建 VM。
下面的示例创建一个名为 myVM 的 VM,并且在默认密钥位置中不存在 SSH 密钥时创建这些密钥。 若要使用特定的一组密钥,请使用 --ssh-key-value 选项。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
创建 VM 后,Azure CLI 显示类似于以下示例的信息。 记下 publicIpAddress。 此地址用于访问 VM。
{
"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 命令打开所需端口。
az vm open-port --port 80 --resource-group myResourceGroup --name myVM
通过 SSH 连接到 VM
如果还不知道 VM 的公共 IP 地址,请运行 az network public-ip list 命令:
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
使用以下命令创建与虚拟机的 SSH 会话。 替换为虚拟机的相应公共 IP 地址。 在此示例中,IP 地址为 40.68.254.142。
ssh azureuser@40.68.254.142
安装 Apache、MySQL 和 PHP
运行以下命令更新 Ubuntu 包源并安装 Apache、MySQL 和 PHP。 请注意命令末尾的插入符号 (^)。
sudo apt update && sudo apt install lamp-server^
系统会提示安装包和其他依赖项。 出现提示时,请为 MySQL 设置 root 密码,并按 [Enter] 继续。 遵照剩余的提示操作。 此股从会安装最低要求的 PHP 扩展,这些扩展是通过 MySQL 使用 PHP 所必需的。

验证安装和配置
Apache
使用以下命令检查 Apache 版本:
apache2 -v
安装 Apache 并向 VM 打开端口 80 之后,即可通过 Internet 访问 Web 服务器。 若要查看 Apache2 Ubuntu 默认页,请打开 Web 浏览器并输入 VM 的公共 IP 地址。 使用通过 SSH 连接到 VM 时所用的公共 IP 地址:

MySQL
使用以下命令检查 MySQL 版本(请注意大写的 V 参数):
mysql -V
建议运行以下脚本来帮助保护 MySQL 的安装:
mysql_secure_installation
输入 MySQL root 密码,并配置环境的安全设置。
如果想要创建 MySQL 数据库,请添加用户或更改配置设置,并登录到 MySQL:
mysql -u root -p
完成后,键入 \q 退出 mysql 提示符。
PHP
使用以下命令检查 PHP 版本:
php -v
如果想要进一步测试,请创建一个可在浏览器中查看的快速 PHP 信息页。 以下命令创建 PHP 信息页:
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'
现在,可以检查创建的 PHP 信息页。 打开浏览器并转到 http://yourPublicIPAddress/info.php。 替换 VM 的公共 IP 地址。 应如下图所示。

安装 WordPress
若要尝试堆栈,请安装示例应用。 例如,以下步骤安装用于创建网站和博客的开源 WordPress 平台。 其他可尝试的工作负荷包括 Drupal 和 Moodle。
此 WordPress 设置适用于概念证明。 有关生产安装的详细信息和设置,请参阅 WordPress 文档。
安装 WordPress 包
运行以下命令:
sudo apt install wordpress
配置 WordPress
将 WordPress 配置为使用 MySQL 和 PHP。 运行以下命令,打开所选文本编辑器并创建文件 /etc/wordpress/config-localhost.php:
sudo sensible-editor /etc/wordpress/config-localhost.php
将以下行复制到文件中,并将 yourPassword 替换为自己的数据库密码(其他值不变)。 然后保存文件。
<?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 数据库:
sudo sensible-editor wordpress.sql
添加以下命令,将 yourPassword 替换为自己的数据库密码(其他值不变)。 然后保存文件。
CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';
FLUSH PRIVILEGES;
若要创建数据库,请运行以下命令:
cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf
该命令完成后,请删除文件 wordpress.sql。
将 WordPress 安装移至 Web 服务器文档根目录:
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 地址。 应如下图所示。

后续步骤
本教程在 Azure 中部署了一台 LAMP 服务器。 你已了解如何:
- 创建 Ubuntu VM
- 为 Web 流量打开端口 80
- 安装 Apache、MySQL 和 PHP
- 验证安装和配置
- 在 LAMP 服务器上安装 WordPress
转到下一教程,了解如何使用 SSL 证书保护 Web 服务器。
立即访问http://market.azure.cn
在 Azure VM 上安装 LAMP Web 服务器的更多相关文章
- 在 Azure VM 上安装 LEMP Web 服务器
本文逐步讲解如何在 Azure 中的 Ubuntu VM 上部署 NGINX Web 服务器.MySQL 和 PHP(LEMP 堆栈). LEMP 堆栈可以替代常用的 LAMP 堆栈,可安装在 Azu ...
- 如何在Ubuntu 16.04上安装Apache Web服务器
转载自:https://www.howtoing.com/how-to-install-the-apache-web-server-on-ubuntu-16-04 介绍 Apache HTTP服务器是 ...
- 如何在Ubuntu 18.04上安装Apache Web服务器
一. apt库安装 1.在终端输入更新检查命令,sudo apt-get update 2. 在更新完成后(如果不想检查更新,也可直接输入此步)输入:sudo apt-get install apac ...
- ubuntu 安装LAMP web 服务器, phpmyadmin 安装后无法打开解决
安装方法: http://blog.chinaunix.net/uid-26495963-id-3173291.html 在上述文档中需要增加apache 支持mysql 功能. apt-get in ...
- 在 Linux 中安装 Lighttpd Web 服务器
Lighttpd 是一款开源 Web 服务器软件.Lighttpd 安全快速,符合行业标准,适配性强并且针对高配置环境进行了优化.相对于其它的 Web 服务器而言,Lighttpd 占用内存更少:因其 ...
- 【转载】如何在Ubuntu上安装LAMP服务器系统?
转载自:http://os.51cto.com/art/201307/405333.htm [2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时 ...
- [转载]如何在Ubuntu上安装LAMP服务器系统
[2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时,我更偏爱在不受干扰的情况下,在我那台计算机上的开发环境下进行开发.我宁愿所犯的错误大部分是 ...
- 如何在Ubuntu上安装LAMP服务器系统?
在Ubuntu上安装LAMP Ubuntu的开发人员让人们很容易安装和配置LAMP软件包,只要借助一个终端命令.所以,打开终端窗口,让我们开始入手吧. sudo apt-get install lam ...
- 在Ubuntu上安装LAMP服务器
1.安装Ubuntu上安装LAMP apt-get install lamp-server^ 2.安装过程中设置MySql密码 3.测试 创建index.php var/www/html/index. ...
随机推荐
- MySQL 5.7.21版本sql_mode=only_full_group_by问题
用到GROUP BY 语句查询时com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #2 of SELECT ...
- Global Embedding 理解
1.Attention-based seq2seq e(t,i):求上一时刻的输出和这一时刻编码器的输出的相似度 a(t,i):求这个词在整个文本中占多大的比重,每个时刻都存在着一个值,这个只是求一个 ...
- jenkins 踩坑路 之 jenkins ssh 脚本
背景: 由于公司业务调整,整个业务要从阿里云迁移到aws,自然 jenkins 也是要进行迁移的.jenkins 迁移过程中遇到的问题在此记录下,希望能给遇到类似问题的朋友些许帮助.也便于我后期遇到此 ...
- 玩转mongodb(二):mongodb基础知识
常用基本数据类型: null null用于表示空值或者不存在的字段: {"data":null} 布尔型 布尔类型只有两个值,true和false: {"data&quo ...
- 浏览器Request Header和Response Header的内容
1)请求(客户端->服务端[request]) GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号) Ac ...
- 在Docker平台实现MySQL Replication(复制)
MySQL Replication提供了数据库之间复制数据的功能,通过这个功能可以让一个数据库的数据更改自动同步到另外一个数据库.通常用这个功能来实现数据备份.数据容灾.数据冗余,进一步实现数据的读写 ...
- IOS第三方之SDWebImage
项目中从服务器端下载图片这些几乎是必备的,使用时也很简单,只需引入SDWebImage文件 // // ViewController.m // sdWebImageDemo // // Created ...
- web前端--实现前后端分离的心得
1.实现前后端分离的心得 2.前后端分离实践 3.谈谈前后端的分工协作 4.从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式) 4.1.REST风格框架实战:从MVC到前后端分离 ...
- 福州大学oj 1752 A^B mod C ===>数论的基本功。位运用。五星*****
Problem 1752 A^B mod C Accept: 579 Submit: 2598Time Limit: 1000 mSec Memory Limit : 32768 KB P ...
- php-fpm.conf 重要参数 max_children 和 request_terminate_timeout
php-fpm.conf 重要参数 max_children 和 request_terminate_timeout php-fpm.conf有两个至关重要的参数:一个是”max_children”, ...