热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

oracleiSQL*PLUS配置设置图文说明

iSQL*PLUS是从ORACLE9i开始提供的新功能,是SQL*PLUS的Web形式(ORACLE11g已经不支持)是基于三层结构设计的,需要的朋友可以了解下

iSQL*PLUS介绍

iSQL*PLUS是从ORACLE 9i开始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已经不支持)。是基于三层结构设计的。其client、middle、server可以位于同一台机器上也可以位于不同的机器。iSqlPlus不需要单独安装,通过isqlplus,用户可以不需要安装任何ORACLE客户端,就能够通过浏览器方式的使用SQL*PLUS进行数据操作与数据库管理。普通的数据库用户可以直接通过isqlplus的网址http://ip:port/isqlplus登陆,进入该网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆;但如果是DBA用户登陆isqlpus,则需要首先配置iSQL*PLUS DBA的用户和口令,然后输入网址http://ip:port/isqlplus/dba,进入该网址后首先会弹出一个登陆框,要求先输入iSQL*Plus DBA的用户和密码,注意这里不是数据库用户,而是iSQL*PLUS应用服务器要求的用户和密码,然后才能出现iSQL*PLUS登陆界面,此时可以输入sys或者system用户,登陆数据库进行管理。要以DBA身份登陆isqlplus,必须先配置好oc4j用户。采用xml配置文件认证的方式。该配置文件位于$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/config但是该配置文件中的密码是加密过的,所以我们不能手动修改该文件,而是通过JAZN(Java AuthoriZatioN)来配置。JAZN是ORACLE提供的一个JASS(Java Authentication and Authorization Service)工具.

如何进入JAZN命令环境?

1.进入到目录$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/下,如下所示:

[oracle@DB-Server isqlplus]$ pwd

/database/product/dbhome_1/oc4j/j2ee/isqlplus/application-deployments/isqlplus

[oracle@DB-Server isqlplus]$ ls

application.log config isqlplus orion-application.xml

2.确保JAVA_HOME环境变量指向了正确的jdk(需要1.4以上)路径,可以使用ORACLE自带的jdk,位于$ORACLE_HOME/jdk

3.执行以下命令

[oracle@DB-Server isqlplus]$ $ORACLE_HOME/jdk/bin/java -Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell

其中realm=iSQL*Plus DBA,user=admin,这些可以从xml配置文件中看到,admin的默认密码是welcome,但是admin用户默认没有webDba权限,不能直接用于登陆isqlplus。通过JAZN,可以完成以下任务

1:新建用户kerry 密码设置为etl123!@#

JAZN:> adduser "iSQL*Plus DBA" kerry etl123!@#

2:列出用户

查看这个组的用户

JAZN:> listusers "iSQL*Plus DBA"

admin

kerry

JAZN:> listusers

iSQL*Plus DBA/admin

iSQL*Plus DBA/kerry

3.授予用户kerry DBA的权限

JAZN:> grantrole webDba "iSQL*Plus DBA" kerry

4.撤销用户kerry DBA的权限

JAZN:> revokerole webDba "iSQL*Plus DBA" kerry

5.查看角色

JAZN:> listroles

iSQL*Plus DBA/webDba

iSQL*Plus DBA/admin

6.删除用户

JAZN:> remuser "iSQL*Plus DBA" kerry

7.修改用户密码

JAZN:> setpasswd "iSQL*Plus DBA" kerry etl123!@# 123456

8.退出JAZN命令环境

JAZN:> exit

上面我们创建了一个用户kerry,密码为etl123!@#,并且已经授予webDba权限。接下来重新启动isqlplus应用服务器isqlplusctl stop、isqlplusctl start

再进入网址http://ip:5560/isqlplus/dba,在弹出的对话框中输入kerry和etl123!@#,就可以进入到数据库登陆界面了,选择以sysdba或sysoper身份登陆了。

 

启动iSQL*PLUS

 

如果登录isqlplus页面打不开(报错): http://ip:5560/isqlplus/,首先检查isqlplus服务启动没有,然后检查一下端口

[oracle@DB-Server ~]$ isqlplusctl start

iSQL*Plus 10.2.0.1.0

Copyright (c) 2003, 2005, Oracle. All rights reserved.

getnameinfo failed

getnameinfo failed

Starting iSQL*Plus ...

iSQL*Plus started.

[oracle@DB-Server ~]$ netstat -an | grep 5560

tcp 0 0 0.0.0.0:5560 0.0.0.0:* LISTEN

停止iSQL*PLUS

[oracle@DB-Server ~]$ isqlplusctl stop

iSQL*Plus 10.2.0.1.0

Copyright (c) 2003, 2005, Oracle. All rights reserved.

getnameinfo failed

getnameinfo failed

iSQL*Plus instance on port 5560 is not running ...

 

日志信息

 

iSQL*PLUS使用的是Log4j,如下所示:

[oracle@DB-Server isqlplus]$ cd $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/WEB-INF/classes

[oracle@DB-Server classes]$ ls

log4j.properties oracle

[oracle@DB-Server classes]$ more log4j.properties

# Log4j configuration file.

# Set root logger level and its only appender to A1.

#log4j.rootLogger=ALL, A1

#log4j.rootLogger=DEBUG, A1

#log4j.rootLogger=INFO, A1

#log4j.rootLogger=WARN, A1

#log4j.rootLogger=ERROR, A1

log4j.rootLogger=FATAL, A1

#log4j.rootLogger=OFF, A1

# A1 is set to be a ConsoleAppender.

log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.COnversionPattern=%d{ISO8601} %-5.5p [%t] %-20.20c{2} - %m%n

# R is a rolling log file appender

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=isqlplus.log

log4j.appender.R.MaxFileSize=100KB

# Keep one backup file

log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.COnversionPattern=%d{ISO8601} %-5.5p [%t] %-20.20c{2} - %m%n

[oracle@DB-Server classes]$

 

在ORACLE 10g的$oracle_home/oc4j/j2ee/isqlplus/log目录下,你可以看到如下一些日志:

日志文件位于$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/application.log

[oracle@DB-Server WEB-INF]$ cd $ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus

[oracle@DB-Server isqlplus]$ ls

application.log config isqlplus orion-application.xml

[oracle@DB-Server isqlplus]$ more application.log

12/04/22 13:31:07 Started

12/04/22 13:31:09 isqlplus: jsp: init

12/04/22 13:31:09 isqlplus: config: init

12/04/22 13:31:09 isqlplus: uix: init

12/04/22 13:31:09 isqlplus: 9.0.4.1.0 Started

12/04/22 14:07:13 isqlplus: config: destroy

12/04/22 14:07:13 isqlplus: 9.0.4.1.0 Stopped

12/04/22 14:07:13 Stopped (JVM termination)

12/09/27 17:23:21 Started

12/09/27 17:23:29 isqlplus: jsp: init

12/09/27 17:23:30 isqlplus: config: init

12/09/27 17:23:31 isqlplus: uix: init

12/09/27 17:23:31 isqlplus: 9.0.4.1.0 Started

帮助的日志记录在:

$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplushelp/application.log

[oracle@DB-Server log]$ ls

global-application.log http-web-access.log rmi.log server.log

[oracle@DB-Server log]$ more rmi.log

12/04/22 13:31:07 9.0.4.1.0 Started

12/04/22 14:07:13 9.0.4.1.0 Stopped (JVM termination)

12/09/27 17:23:19 9.0.4.1.0 Started

12/11/08 17:43:38 9.0.4.1.0 Started

12/11/08 17:54:01 9.0.4.1.0 Stopped (Shutdown executed by jazn.com/admin from 127.0.0.1 (localhost), 2)

12/11/08 17:55:42 9.0.4.1.0 Started

[oracle@DB-Server log]$ more server.log

12/04/22 13:31:07 9.0.4.1.0 Started

12/04/22 13:31:07 9.0.4.1.0 Started

12/04/22 14:07:13 9.0.4.1.0 Stopped (JVM termination)

12/09/27 17:23:19 9.0.4.1.0 Started

12/09/27 17:23:21 9.0.4.1.0 Started

12/11/08 17:43:37 9.0.4.1.0 Started

12/11/08 17:43:38 Forced or abrupt (crash etc) server shutdown detected, starting recovery process...

12/11/08 17:43:38 Recovery completed, 0 connections committed and 0 rolled back...

12/11/08 17:43:38 9.0.4.1.0 Started

12/11/08 17:54:01 9.0.4.1.0 Stopped (Shutdown executed by jazn.com/admin from 127.0.0.1 (localhost), 2)

12/11/08 17:55:42 9.0.4.1.0 Started

12/11/08 17:55:42 9.0.4.1.0 Started

[oracle@DB-Server log]$ more http-web-access.log

172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/ HTTP/1.1" 200 9154

172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/cabo/styles/cache/blaf-A0-zh_CN-ie-windows.css HTTP/1

.1" 200 13850

172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/cabo/images/cache/c-ghss.gif HTTP/1.1" 200 97

172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/images/logo.gif HTTP/1.1" 200 7361

172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/cabo/images/t.gif HTTP/1.1" 200 85

172.20.61.185 - - [27/Sep/2012:17:24:39 +0800] "GET /isqlplus/images/help.gif HTTP/1.1" 200 288

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/jsLibs/MarlinCoreA4.js HTTP/1.1" 200 26036

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghsc.gif HTTP/1.1" 200 72

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghe.gif HTTP/1.1" 200 85

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghse.gif HTTP/1.1" 200 219

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-ghc.gif HTTP/1.1" 200 133

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/zhs/b-login.gif HTTP/1.1" 200 715

172.20.61.185 - - [27/Sep/2012:17:24:40 +0800] "GET /isqlplus/cabo/images/cache/c-skir.gif HTTP/1.1" 200 66

172.20.61.185 - - [27/Sep/2012:17:24:43 +0800] "GET /favicon.ico HTTP/1.1" 404 135

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "POST /isqlplus/login.uix HTTP/1.1" 200 11618

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/t.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/images/logo.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/jsLibs/MarlinCoreA4.js HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/images/logout.gif HTTP/1.1" 200 360

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/styles/cache/blaf-A0-zh_CN-ie-windows.css HTTP/1

.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghss.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/zhs/tb-56-0.gif HTTP/1.1" 200 971

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/images/help.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghsc.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghc.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/images/cache/c-ghse.gif HTTP/1.1" 304 0

172.20.61.185 - - [27/Sep/2012:17:24:52 +0800] "GET /isqlplus/cabo/i

[oracle@DB-Server log]$ more global-application.log

12/04/22 13:31:07 Started

12/04/22 13:31:08 defaultWebApp: jsp: init

12/04/22 13:31:08 defaultWebApp: 9.0.4.1.0 Started

12/04/22 14:07:13 defaultWebApp: 9.0.4.1.0 Stopped

12/04/22 14:07:13 Stopped (JVM termination)

12/09/27 17:23:20 Started

12/09/27 17:23:27 defaultWebApp: jsp: init

12/09/27 17:23:27 defaultWebApp: 9.0.4.1.0 Started

12/11/08 17:43:38 Started

12/11/08 17:43:39 defaultWebApp: jsp: init

12/11/08 17:43:39 defaultWebApp: 9.0.4.1.0 Started

12/11/08 17:54:01 defaultWebApp: 9.0.4.1.0 Stopped

12/11/08 17:54:01 Stopped (Shutdown executed by jazn.com/admin from 127.0.0.1 (localhost), 2)

12/11/08 17:55:42 Started

12/11/08 17:55:43 defaultWebApp: jsp: init

12/11/08 17:55:43 defaultWebApp: 9.0.4.1.0 Started

配置问题

1:变更session的有效期:

在$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/WEB-INF下的web.xml文件中。

设置:

15

为分钟状态。

2:限制登录

[oracle@DB-Server WEB-INF]$ vi web.xml

iSQL*Plus

iSQL*Plus Configuration File

config

oracle.sqlplus.iplus.core.Config

iSQLPlusAllowUserMarkup

none

Valid values are: none | all

iSQLPlusConnectIdList

wgods;bics;orcl

The database(s) to which iSQL*Plus users are restricted. The list should contain the Oracle SIDs or SERVICE NAMEs

, separated by a semicolon (;). If there are no entries, database access is not restricted through iSQL*Plus.

其中的代表$ORACLE_HOME/network/admin/tnsnames.ora中的名字,如果设置服务名后,只能从下拉框选择。

如果没有设置值,那么可以手动输入SID。如下所示:

3:修改iSQL*PLUS端口

转到$ORACLE_HOME/oc4j/j2ee/isqlplus/config下,编辑http-web-site.xml文件

问题锦集

1:中文环境,按钮字体出现乱码。可以选址语言。切换到英文环境即可看到按钮的字体

解决办法

[oracle@DB-Server zhs]$ cd $ORACLE_HOME/jdk/jre/lib

[oracle@DB-Server lib]$ ls

audio font.properties.ja.Redhat6.2 font.properties.zh_CN.Redhat2.1 images

charsets.jar font.properties.ja.Redhat7.2 font.properties.zh_CN.Sun jce.jar

cmm font.properties.ja.Redhat7.3 font.properties.zh_CN_UTF8.Sun jsse.jar

content-types.properties font.properties.ja.Redhat8.0 font.properties.zh_HK.Sun jvm.hprof.txt

ext font.properties.ja.Turbo font.properties.zh_HK_UTF8.Sun jvm.jcov.txt

flavormap.properties font.properties.ja.Turbo6.0 font.properties.zh_HK_UTF8.Sun2003 locale

font.properties font.properties.ko_KR.Sun font.properties.zh.Turbo logging.properties

font.properties_back font.properties.ko_KR_UTF8.Sun font.properties.zh_TW.Redhat plugin.jar

font.properties.ja font.properties.ko_KR_UTF8.Sun2003 font.properties.zh_TW.Redhat2.1 psfontj2d.properties

font.properties.ja_JP.Sun font.properties.ko.Redhat font.properties.zh_TW.Sun psfont.properties.ja

font.properties.ja_JP.Sun2003 font.properties.ko.Redhat2.1 font.properties.zh_TW_UTF8.Sun rt.jar

font.properties.ja_JP_UTF8.Sun font.properties.Redhat6.1 font.properties.zh_TW_UTF8.Sun2003 security

font.properties.ja_JP_UTF8.Sun2003 font.properties.Redhat8.0 fonts sunrsasign.jar

font.properties.ja.Redhat3 font.properties.SuSE8.0 i386 zi

font.properties.ja.Redhat6.1 font.properties.zh_CN.Redhat im

[oracle@DB-Server lib]$

备份font.properties

[oracle@DB-Server lib]$ cp font.properties font.properties_back

[oracle@DB-Server lib]$ cp font.properties.zh_CN.Redhat font.properties

查看font.properties文件,确认文件中指定的字体文件zysong.ttf在系统内存在。若不存在需要修改此文件或安装这个字体

[oracle@DB-Server lib]$ tail -10 font.properties

fontset.dialoginput.plain=\

-b&h-luxi mono-medium-r-normal--*-%d-*-*-m-*-iso8859-1,\

-isas-song ti-medium-r-normal--*-%d-*-*-c-*-gb2312.1980-0

fontset.default=\

-b&h-luxi sans-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\

-isas-song ti-medium-r-normal--*-%d-*-*-c-*-gb2312.1980-0

filename.-misc-zysong18030-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/zh_CN/TrueType/zysong.ttf

[oracle@DB-Server lib]$

转到/usr/share/fonts目录下,发现没有zh_CN目录,新建目录zh_CN/TrueType,去网上下载字体zysong.ttf放在/usr/share/fonts/zh_CN/TrueType目录下。

然后

[oracle@DB-Server fonts]$ cd $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/isqlplus/isqlplus/cabo/images/cache/zhs/

[oracle@DB-Server zhs]$ ls

b-0dac.gif b-54.gif b-cancel.gif b-execute.gif b-login.gif b-save.gif tb-56-0.gif

b-0dac.imx b-54.imx b-cancel.imx b-execute.imx b-login.imx b-save.imx tb-56-0.imx

[oracle@DB-Server zhs]$ rm *

[oracle@DB-Server zhs]$ isqlplusctl stop

iSQL*Plus 10.2.0.1.0

Copyright (c) 2003, 2005, Oracle. All rights reserved.

getnameinfo failed

getnameinfo failed

Stopping iSQL*Plus ...

iSQL*Plus stopped.

[oracle@DB-Server zhs]$ isqlplusctl start

iSQL*Plus 10.2.0.1.0

Copyright (c) 2003, 2005, Oracle. All rights reserved.

getnameinfo failed

getnameinfo failed

Starting iSQL*Plus ...

iSQL*Plus started.

[oracle@DB-Server zhs]$

2:以DBA账号登录时,如果不指定连接标识符,则会报如下错误:ORA-12154:TNS:could not resolve the connect identifier specified.

 


推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 解决MongoDB Compass远程连接问题
    本文记录了在使用阿里云服务器部署MongoDB后,通过MongoDB Compass进行远程连接时遇到的问题及解决方案。详细介绍了从防火墙配置到安全组设置的各个步骤,帮助读者顺利解决问题。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 本文详细探讨了HTTP 500内部服务器错误的成因、解决方案及其在Web开发中的影响。通过对具体案例的分析,帮助读者理解并解决此类问题。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
author-avatar
我叫叮当既小号
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有