利用Windows Azure Website托管PHP+Mysql应用

2023-11-24 05:08

本文主要是介绍利用Windows Azure Website托管PHP+Mysql应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Windows Azure的Website服务可以托管多种代码编写的网站应用,包括.NET, Node.js和PHP。他们都使用IIS托管。其中PHP是通过IIS上的PHP插件进行支持的。当我们在Azure上申请一个Website时,它已经缺省支持PHP应用了,我们不需要进行任何配置。下面就简要看下如何发布PHP应用到Azure上

 

首先,在门户上创建Website

创建时选择Create with Database

 

为站点输入一个域名前缀。Azure上的网站都在azurewebsites.net域名下,我们如果自己有域名,可以在创建站点后将自己的域名和Azure上的站点绑定。数据库可以选择SQL database或者是Mysql. 其中SQL由微软提供服务,Mysql由ClearDB提供服务 

 

 

创建成功后点击网站名

 

进入后可以查看网站的整体情况。上半部分是性能指标监控,包括CPU、流量、HTTP请求情况等,这些被监控的指标可以在Monitor页面中配置。中间的部分是使用信息计量,包括已消费的量和剩余的量。对于免费站点来说,每天可用的出流量是165MB,超出后该网站会被暂停,直到第二天又获得165MB配额。中间右侧是配置信息概览,包括站点URL,FTP地址和用户名等。底部是一些常用功能,比如停止或重启该站点,或者用WebMatrix编辑网站文件

 

此时点击网站链接即可访问网站。此时网站只有一个空页面。

在configure页面,可以配置PHP版本,绑定自己的域名,启用日志(日志可以通过FTP下载)等。在connection string里面,记录着刚才我们创建的数据库的连接字符串,把这里的database、data source、username和password记录下来,后面编写PHP应用时会采用这些信息连接数据库

 

在Scale界面,我们可以改变网站的规模。Free模式下只能有1个IIS实例,Shared模式下可以跟别人共享多个IIS实例,Reserved模式下可以独占多个IIS实例,且每个IIS实例运行于独立的虚机

 

下面,我们看下如何向该网站发布代码。Azure支持多种发布方式,包括:

  1. FTP。是最简单的方式,采用通用FTP客户端或者Windows都可以访问该站点的FTP入口
  2. Git。是目前一种比较热门的基于互联网的源代码管理服务。Azure和Git进行了集成。我们可以把代码发布到Git上,然后Azure会自动从Git上下载最新代码
  3. TFS。微软源代码管理服务。这里TFS的S是service而不是Server。我们可以把代码发布到TFS上,然后Azure会自动从TFS上下载最新代码
  4. WebDeploy。是微软的一种网站内容发布协议,微软的Visual studio或WebMatrix工具可以使用该协议发布网站内容。

首先看下FTP。回到Dashboard界面,在中部右侧有FTP hostname和FTP username,这里的密码如果不知道,点击上面的Reset Deployment Credentials,在里面输入用户名和新密码。

 

然后就可以用FTP连接了。这里我们用Windows自带的资源管理器来连接。直接在浏览器上点击FTP路径。

 

在弹出的对话框中输入用户名和密码。要注意用户名要跟界面上显示的一样,由站点名和用户名两部分组成,中间由"\"连接。

这样就可以用IE打开FTP目录了,里面有两个文件夹,分别是代码目录和日志目录。

不过IE不支持上传,只能浏览。可以切换到资源管理器。在菜单上选择View->open FTP....。之后就可以像访问本地文件一样访问远程文件了。

 

对于MySQL数据库的发布,有两种方式,一种方式使用Mysql命令行执行SQL命令进行表创建和数据生成,另一种方式是用Mysql工具进行数据导入。Mysql的连接方式可以从Configure界面里的connection strings获得,而上传的PHP程序里面指向的数据库也应该是这个位置

 

除了继续使用Mysql外,我们也可以把Mysql迁移到Azure上的SQL database上,可参考http://blog.csdn.net/shaunfang/article/details/8557773

 

下面就简单做一个PHP+MYSQL的测试。这里采用Mysql workbench工具作为Mysql管理工具。Mysql workbench可从Oracle网站下载

1. 首先用Mysql workbench连接到Azure上的Mysql实例上。在New connection里面输入Mysql的连接信息,包括hostname,username和密码。它们来自于前面提到的connection strings

 

2. 打开后即可运行SQL命令建表,比如:

CREATE TABLE registration_tbl(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(30), email VARCHAR(30), date DATE);

 

3.在本地建立一个PHP文件:index.php,把里面的host,user,pwd,db替换成connection strings里面提供的内容

<html>
<head>
<Title>Registration Form</Title>
<style type="text/css">body { background-color: #fff; border-top: solid 10px #000;color: #333; font-size: .85em; margin: 20; padding: 20;font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;}h1, h2, h3,{ color: #000; margin-bottom: 0; padding-bottom: 0; }h1 { font-size: 2em; }h2 { font-size: 1.75em; }h3 { font-size: 1.2em; }table { margin-top: 0.75em; }th { font-size: 1.2em; text-align: left; border: none; padding-left: 0; }td { padding: 0.25em 2em 0.25em 0em; border: 0 none; }
</style>
</head>
<body>
<h1>Register here!</h1>
<p>Fill in your name and email address, then click <strong>Submit</strong> to register.</p>
<form method="post" action="index.php" enctype="multipart/form-data" >Name  <input type="text" name="name" id="name"/></br>Email <input type="text" name="email" id="email"/></br><input type="submit" name="submit" value="Submit" />
</form>
<?php// DB connection info//TODO: Update the values for $host, $user, $pwd, and $db//using the values you retrieved earlier from the portal.$host = "value of Data Source";$user = "value of User Id";$pwd = "value of Password";$db = "value of Database";// Connect to database.try {$conn = new PDO( "mysql:host=$host;dbname=$db", $user, $pwd);$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );}catch(Exception $e){die(var_dump($e));}// Insert registration infoif(!empty($_POST)) {try {$name = $_POST['name'];$email = $_POST['email'];$date = date("Y-m-d");// Insert data$sql_insert = "INSERT INTO registration_tbl (name, email, date) VALUES (?,?,?)";$stmt = $conn->prepare($sql_insert);$stmt->bindValue(1, $name);$stmt->bindValue(2, $email);$stmt->bindValue(3, $date);$stmt->execute();}catch(Exception $e) {die(var_dump($e));}echo "<h3>Your're registered!</h3>";}// Retrieve data$sql_select = "SELECT * FROM registration_tbl";$stmt = $conn->query($sql_select);$registrants = $stmt->fetchAll(); if(count($registrants) > 0) {echo "<h2>People who are registered:</h2>";echo "<table>";echo "<tr><th>Name</th>";echo "<th>Email</th>";echo "<th>Date</th></tr>";foreach($registrants as $registrant) {echo "<tr><td>".$registrant['name']."</td>";echo "<td>".$registrant['email']."</td>";echo "<td>".$registrant['date']."</td></tr>";}echo "</table>";} else {echo "<h3>No one is currently registered.</h3>";}
?>
</body>
</html>


4.把这个文件通过FTP上传到Azure的wwwroot下

 

5. 最后,点击网站链接即可访问

 

结果如下

 

这篇关于利用Windows Azure Website托管PHP+Mysql应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/421288

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#