win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)

win2008 r2 服务器php+mysql+sqlserver2008运行环境配置

安装PHP

  1. 下载PHP
  2. 推荐从官网下载压缩包文件,例如:PHP 7.4.23
  3. 解压到指定目录
  4. 推荐解压到C盘根目录下,例如:C:\php\
  5. 配置PHP
  6. 将php.ini-development文件修改为php.ini,例如:C:\php\php.ini
  7. 修改php.ini配置文件,例如:
    ini
    extension_dir = "C:\php\ext"
  8. 加载PHP扩展,例如:
    ini
    extension=php_mysql.dll
    extension=php_mysqli.dll

安装MySQL

  1. 下载MySQL
  2. 推荐从官网下载MySQL Installer,例如:MySQL Installer 8.0.27
  3. 安装MySQL
  4. 选择Custom模式,只安装MySQL Server和MySQL Workbench
  5. 配置MySQL Root用户密码和端口号
  6. 配置MySQL
  7. 将MySQL安装目录下的bin目录加入系统环境变量
  8. 修改MySQL Root用户密码,例如:
    sql
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
  9. 创建新的MySQL用户和数据库,例如:
    sql
    CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
    CREATE DATABASE `newdatabase`;
    GRANT ALL PRIVILEGES ON `newdatabase`.* TO 'newuser'@'localhost';
  10. 设定MySQL监听IP,例如:
    ini
    bind-address = 0.0.0.0

安装SQL Server

  1. 下载SQL Server
  2. 推荐从官网下载SQL Server Express,例如:SQL Server Express 2017
  3. 安装SQL Server
  4. 选择Custom模式,只安装Database Engine和SSMS
  5. 配置SQL Server身份验证和端口号
  6. 配置SQL Server
  7. 将SQL Server安装目录下的bin目录加入系统环境变量
  8. 创建新的SQL Server用户和数据库,例如:
    sql
    CREATE LOGIN newuser WITH PASSWORD = 'password';
    CREATE DATABASE newdatabase;
    ALTER AUTHORIZATION ON DATABASE::newdatabase TO newuser;
    USE newdatabase;
    CREATE USER newuser FOR LOGIN newuser;
    GRANT CONNECT SQL TO newuser;
  9. 设定SQL Server监听IP和端口号,例如:
    sql
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
    N'Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
    N'TcpPort', REG_DWORD, 1433;
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
    N'Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
    N'TcpDynamicPorts', REG_DWORD, 0;

配置IIS

  1. 安装IIS
  2. 推荐使用Server Manager安装IIS,勾选IIS和CGI选项
  3. 配置PHP
  4. 打开IIS管理器,选中网站,在网站中配置PHP
  5. 添加处理程序映射,例如:
    请求路径:*.php
    模块名:FastCgiModule
    可执行文件:C:\php\php-cgi.exe
  6. 配置FastCGI设置,例如:
    ```
    找到FastCGI应用程序设置,将PHP适用的设置添加进去,例如:
    所有用户:
  7. 名称:PHP
  8. 可执行文件:C:\php\php-cgi.exe
  9. 原始值:-c C:\php\php.ini
    ```
  10. 配置MySQL和SQL Server
  11. 在网站中配置MySQL和SQL Server连接
  12. 在PHP文件中编写连接MySQL和SQL Server的代码,例如:
    ```php
    connect_error) {
    die("连接失败: " . $conn->connect_error);
    }

    $sql = "SELECT id, name FROM mytable";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["name"]. "
    ";
    }
    } else {
    echo "0 结果";
    }
    $conn->close();
    ?>

```

安全配置

  1. 禁用IIS默认网站
  2. 在IIS管理器中禁用默认网站,防止黑客攻击
  3. 防火墙设置
  4. 添加MySQL和SQL Server的入站规则,只允许特定IP地址访问相应的端口
  5. 添加IIS的入站规则,只允许特定IP地址访问网站
  6. 修改文件权限
  7. 将网站目录的写入权限设为最小化,只允许必须的用户写入
  8. 把敏感的文件比如配置文件和数据库证书等放在不可见的文件夹里

示例说明

示例1:用PHP连接MySQL数据库

<?php
$servername = "localhost";
$username = "newuser";
$password = "password";
$dbname = "newdatabase";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
   die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT id, name FROM mytable";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
   // 输出数据
   while($row = $result->fetch_assoc()) {
       echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
   }
} else {
   echo "0 结果";
}
$conn->close();
?>

该示例展示了如何在PHP代码中连接MySQL数据库,以及如何查询数据库中的信息并输出到页面上。

示例2:用PHP连接SQL Server数据库

<?php
$serverName = "192.168.1.100, 1433";
$connectionOptions = array(
   "Database" => "newdatabase",
   "Uid" => "newuser",
   "PWD" => "password"
);

// 创建连接
$conn = sqlsrv_connect($serverName, $connectionOptions);
// 检查连接
if ($conn === false) {
   die(print_r(sqlsrv_errors(), true));
}

$sql = "SELECT id, name FROM mytable";
$stmt = sqlsrv_query($conn, $sql);

if ($stmt === false) {
   die(print_r(sqlsrv_errors(), true));
}

if (sqlsrv_has_rows($stmt)) {
   while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
       echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
   }
} else {
   echo "0 结果";
}
sqlsrv_free_stmt($stmt);
?>

该示例展示了如何在PHP代码中连接SQL Server数据库,以及如何查询数据库中的信息并输出到页面上。注意,这里采用了sqlsrv扩展,需要先在php.ini文件中启用该扩展。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等) - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • Ubuntu中更改MySQL数据库文件目录的方法

    下面是“Ubuntu中更改MySQL数据库文件目录的方法”的完整攻略。 步骤一:停止MySQL服务 在更改MySQL的数据文件目录之前,必须先停止MySQL服务。可以使用以下命令停止MySQL服务: sudo service mysql stop 步骤二:复制MySQL数据文件 在更改MySQL的数据文件目录之前,需要复制MySQL的现有数据文件到新目录。可…

    database 2023年5月22日
    00
  • 详解Zabbix安装部署实践

    详解Zabbix安装部署实践 Zabbix是一款开源的网络监控、管理和告警系统,具有功能强大、扩展性好、易于部署等优势,被广泛应用于企业级网络管理中。 在本篇文章中,我们将详细讲解Zabbix的安装部署实践过程,包括以下内容: 环境准备 安装数据库 安装Zabbix Server 安装Zabbix Agent 配置监控项 测试监控 环境准备 在进行安装部署之…

    database 2023年5月22日
    00
  • 数据库日常练习题,每天进步一点点(1)

    让我来详细讲解一下“数据库日常练习题,每天进步一点点(1)”的完整攻略: 标题 首先,我们来看看文章的标题。可以看到,这篇文章的标题是 “数据库日常练习题,每天进步一点点(1)”。这个标题很明确地说明了文章的主题,即数据库练习题,并且指出了这是一个系列文章的第一篇。这样的标题可以很好地吸引读者的注意力,让读者对文章产生浓厚的兴趣。 正文 接下来,我们来看看文…

    database 2023年5月21日
    00
  • Redis TTL 为0

    地址: http://get.jobdeer.com/7297.get 一次Redis TTL 为0的问题排查 事情是这样的,今天中午业务突然RTX上找我,说一个新建的Twemproxy集群数据查询的时候出了问题,Redis的TTL返回为0,让我帮忙看一看:  当时听完就觉得问题很诡异,按照之前的经验来说,Redis的TTL怎么也不可能为0啊,见:http:…

    Redis 2023年4月12日
    00
  • CentOS mysql安装系统方法

    以下是关于CentOS mysql安装系统方法的完整攻略: 准备工作 在开始安装mysql之前,我们需要先安装一些必要的软件依赖,以确保mysql能够正常运行。 $ sudo yum install wget $ sudo yum install curl $ sudo yum install gcc $ sudo yum install gcc-c++ $…

    database 2023年5月22日
    00
  • MYSQL安装配置文件my-small.ini、my-medium.ini、my-large.ini、my-huge.ini文件的作用 my-small.ini、my-medium.ini、my-large.ini、my-huge.ini文件的作用

      安装完mysql之后或者是下载的免安装版解压之后,默认是没有my.ini文件的.但是,有几个类似的文件,如my-small.ini、my-medium.ini、my-large.ini、my-huge.ini。这几个文件是mysql针对不同的应用推荐的不同的配置信息;但这些配置只有放到my.ini中才会被应用。其中:1、my-small.ini是为了小型…

    MySQL 2023年4月12日
    00
  • MySQL数据库索引的最左匹配原则

    MySQL数据库索引的最左匹配原则是指:在查询时,MySQL会从联合索引最左边的列开始匹配,只有最左边的那个索引列被用到了,才会使用其他的索引列。 例如,如果有以下查询语句: SELECT * FROM mytable WHERE col1 = ‘abc’ AND col2 = ‘123’; 假设mytable表上创建了一个联合索引(col1, col2),…

    database 2023年5月22日
    00
  • redis——队列

    Posted on 2012-02-29 最近忙着用Redis实现一个消息通知系统,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。   内存 比如要推送一条全局消息,如果真的给所有用户都推送一遍的话,那么会占用很大的内存,实际上不管粘性有多高的产品,活跃用户同全部用户比起来,都会 小很多,所以如果只处理登录…

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部