一直想开发一个能在线开通演示网站的系统,主要是用于有源码销售业务的用户,如果是提前搭建演示网站,用户在后台进行一些设置或者发布一些不良信息,会对体验带来严重影响,而这套系统基于PHP+MYSQL,用户如果对某个源码感兴趣,可点在线开通,然后就可以在线开通网站进行测试,24小时后自动销毁删除,所有用户都会单独去测试,不会全部都在一个网站测试,带来更好体验。
在开发过程中遇到一些问题,反复测试和修改后才得以解决,现在我记录下来,避免大家以后走弯路。
问题1:在线开通MYSQL数据库时通常需要ROOT账号才行,虽然你用以下SQL命令给用户赋予了全局权限,但可能还是无法创建数据库!这说明之前授予的权限可能没有生效,或者被覆盖了,也可能是宝塔、护卫神等主机管理系统限制了权限,经过以下设置没用的话就只能用ROOT账号了。
第一步:创建全局用户(密码可能与原用户相同)
CREATEUSER'你的数据库用户名'@'%'IDENTIFIEDBY'您的数据库密码';
第二步:授予全部权限
grant ALL PRIVILEGES ON *.* TO '你的数据库用户名'@'%' WITH grant OPTION;
第三步:刷新权限
FLUSH PRIVILEGES;
如何用ROOT账户呢?就在数据库配置文件里修改:
define('DB_HOST', 'localhost');
define('DB_NAME', 'myyanshiwangzha');
define('DB_USER', 'root');
define('DB_PASS', 'root的密码');
问题2:在线开通网站失败的处理,通常为权限不足
方法1:
打开IIS管理器
按 Win + R,输入 inetmgr,回车
找到您的网站应用程序池
在左侧连接面板,点击"应用程序池"
找到您的网站对应的应用程序池(名称通常是 yanshiwangzha_qdy3qh 或网站名称)
修改标识
右键点击该应用程序池 → 高级设置
找到 进程模型 → 标识
点击右侧的 ... 按钮
选择 LocalSystem(本地系统账户,最高权限)
点击确定
重启应用程序池
右键点击应用程序池 → 回收 或 停止 后 启动
方法2:
修改PHP执行用户为系统账户
修改 php-cgi.exe 的运行账户:
打开服务管理器
按 Win + R,输入 services.msc,回车
找到 PHP 相关服务
如果是使用 php-cgi.exe 方式,找到对应的服务
右键 → 属性 → 登录
选择"本地系统账户"
点击确定,重启服务
方法3:直接给 PHP 用户授IIS配置权限
找到 PHP 运行的用户账户:
打开任务管理器 → 详细信息 → 找到 w3wp.exe → 查看用户名
通常是 IIS APPPOOL\您的应用池名称
然后给这个账户授权:
powershell
# 以管理员身份打开PowerShell,执行:# 给应用池账户授权IIS配置文件
$appPoolName = "yanshiwangzha_qdy3qh" # 替换成您的应用池名称
$account = "IIS APPPOOL\$appPoolName"#
给 config 目录授权
icacls "C:\Windows\System32\inetsrv\config" /grant "$account`:F" /T#
给 DemoSites 目录授权icacls "D:\DemoSites" /grant "$account`:F" /T#
给 DemoAdmin 目录授权icacls "D:\wwwroot\yanshiwangzha_qdy3qh\web" /grant "$account`:F" /T#
重启IIS iisreset
问题3:开通后无法运行PHP代码,默认为ASP.NET环境
在开通代码里设置正确的PHP目录,调整代码,开通同时适用于ASP.NET和PHP的程序池。