win2008 r2 服务器php+mysql+sqlserver2008运行环境配置
安装PHP
- 下载PHP
- 推荐从官网下载压缩包文件,例如:PHP 7.4.23
- 解压到指定目录
- 推荐解压到C盘根目录下,例如:C:\php\
- 配置PHP
- 将php.ini-development文件修改为php.ini,例如:C:\php\php.ini
- 修改php.ini配置文件,例如:
ini
extension_dir = "C:\php\ext" - 加载PHP扩展,例如:
ini
extension=php_mysql.dll
extension=php_mysqli.dll
安装MySQL
- 下载MySQL
- 推荐从官网下载MySQL Installer,例如:MySQL Installer 8.0.27
- 安装MySQL
- 选择Custom模式,只安装MySQL Server和MySQL Workbench
- 配置MySQL Root用户密码和端口号
- 配置MySQL
- 将MySQL安装目录下的bin目录加入系统环境变量
- 修改MySQL Root用户密码,例如:
sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword'; - 创建新的MySQL用户和数据库,例如:
sql
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE `newdatabase`;
GRANT ALL PRIVILEGES ON `newdatabase`.* TO 'newuser'@'localhost'; - 设定MySQL监听IP,例如:
ini
bind-address = 0.0.0.0
安装SQL Server
- 下载SQL Server
- 推荐从官网下载SQL Server Express,例如:SQL Server Express 2017
- 安装SQL Server
- 选择Custom模式,只安装Database Engine和SSMS
- 配置SQL Server身份验证和端口号
- 配置SQL Server
- 将SQL Server安装目录下的bin目录加入系统环境变量
- 创建新的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; - 设定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
- 安装IIS
- 推荐使用Server Manager安装IIS,勾选IIS和CGI选项
- 配置PHP
- 打开IIS管理器,选中网站,在网站中配置PHP
- 添加处理程序映射,例如:
请求路径:*.php
模块名:FastCgiModule
可执行文件:C:\php\php-cgi.exe - 配置FastCGI设置,例如:
```
找到FastCGI应用程序设置,将PHP适用的设置添加进去,例如:
所有用户: - 名称:PHP
- 可执行文件:C:\php\php-cgi.exe
- 原始值:-c C:\php\php.ini
``` - 配置MySQL和SQL Server
- 在网站中配置MySQL和SQL Server连接
- 在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();
?>
```
安全配置
- 禁用IIS默认网站
- 在IIS管理器中禁用默认网站,防止黑客攻击
- 防火墙设置
- 添加MySQL和SQL Server的入站规则,只允许特定IP地址访问相应的端口
- 添加IIS的入站规则,只允许特定IP地址访问网站
- 修改文件权限
- 将网站目录的写入权限设为最小化,只允许必须的用户写入
- 把敏感的文件比如配置文件和数据库证书等放在不可见的文件夹里
示例说明
示例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技术站