小弟自从2002年来到中国Linux公社, 被公社使用的PHPNUKE所吸引,自己也开始用了它做为建站的程序. 后来因为觉得太过正规,对于个性散漫的我更喜欢另类风格, 所以最后还是只采用了PHPBB 2的论坛程序. 虽然有一阵子没有安装和使用PHPNUKE了,但当时为了建站找了些资料, 也有些自己的心得. 看到不断有朋友询问如何使用PHPNUKE建站的问题, 特抛砖引玉一下. 自知不是PHP高手, 有错误的地方希望其他人指正,同时公社里CONNER,黑企鹅,GUGONG等都是其中高手,公社的代码就是他们改写和维护的,有任何疑问请直接向他们请教. 恕小弟对提问概不回答. 另外, 当时小弟用的PHPNUKE的版本还没将PHPBB2加进去.PHPNUKE和PHPBB2是由两个不同的开发者开发维护的.当时PHPBB2的HACKER专门提供了将PHPNUKE自带的论坛模块去掉,将PHPBB2论坛加进去的HACK(在PHPBB2的网站可以下载). 为此PHPNUKE和PHPBB2之间还产生了一系列的纠纷,后来PHPNUKE的开发者一不做二不休, 将PHPBB2直接加了进来,也就成了现在的6.5版本. 若有朋友想转载这个帖子, 请保持帖子的完整性, 并注明引自中国Linux公社(www.linuxfans.org)的论坛. CNOOC & HOUSCOUS 5/6/2003 . 官方的安装指南 . 官方的版本升级指南 以下是个人经验 · 安装说明与常见问题 · 自制外挂 · PHP Nuke的档案与用途 · theme相关的函数与用途 · mainfile.php中的函数与用途 · How-To 基本需求 1.主机系统∶Freebsd.Linux.Windows.MacOS.OS/2 etc. 2.Web Server:Apache.IIS 支援PHP3或PHP4 3.SQL Server:MySQL . 官方的安装指南 Installing the Package (安装 PHP Nuke) Installing the Package ---------------------- Untar the package into the directory you want to use on you web server, if you're unsure where that is, ask you system administrator. (Windows users can use WinZip or WinRAR to uncompress .tar.gz files) 解压套件 tar -zxvf PHP-Nuke.tar.gz Change to the /sql/ directory and there is a file called "nuke.sql" this file contains the commands to build the database structure, tables and the default data. 1) Create a database called, for example, nuke: 新增一个资料库,例如名称 nuke mysqladmin create nuke 2) Now fill the databases with the tables in nuke.sql file: 导入资料库 mysql nuke < nuke.sql 3) In order to use the File Manager, please be sure to chmod 666 ALL files and 777 ALL directories. NOTE: know that doing this can have some security issues. 译注∶已经没有内建档案管理员了,所以并没有这项目录权限开放与安全顾虑 4) That's it!... now you need to edit the file "config.php" to set the database options. Please read carefully the instruction on that file! After that, point your browser to: 已完成了,接著以浏览器连结 http://yourdomain.com/admin.php Create your Super User following the on-screen instructions.跟随页面说明来建立站长帐号 Now click on "Preferences" and change whatever you want to fit your site info. All the options you need to change are in the Preferences menu. If you need help just click con the help icon at the right-top of the Administration Menu. This will open a new window with the help you need for each section in the administration system.再以站长帐号登入管理选单,先做偏好设定 NOTE: If you want to edit config.php file from web browser remember to chmod 666 the file config.php or your changes will not be saved! If can't execute chmod just edit the file by hand and re-upload it to your server.如果你要在线上编修偏好设定,那得先把 config.php 这档更改权限为 666 SECURITY TIP: It's a good choice to put your config.php file outside the Web Server path, then you can create a new config.php with the line: 一个加强安全性的建议是把 config.php 放在网站外 . 升级指南 Upgrading from previous versions (版本升级) Upgrading from previous versions -------------------------------- To upgrade a prevoius PHP-Nuke installation to this new version you need to edit the selected upgrade file from upgrades directory and launch your web browser to: 先编辑要升级的版本,做资料库参数设定,再以浏览器连结之 http://www.yourdomain.com/upgrade55-56.php all the new tables will be added and updated automagically without touch your old data. 新资料表会被加入或自动更新,原来的资料仍然都在 IMPORTANT: Remember to backup always your database before any upgrade, just in case. If something goes wrong don't come crying to me. 建议在任何升级前先备份资料库,只是为了以防万一,若有什麽出错了,请不要找我哭诉 |
代码: |
· 安装说明与常见问题 · 开始安装 1.解原始套件压缩档(一般在client端PC解压) 2.将解压後的html目录下的所有档案上传到你的网站。php档以ASCII模式上传,图档以BINARY模式上传。 3.建立资料库: telnet登入者,在console执行mysqladmin create nuke 使用phpMyAdmin者,在phpMyAdmin建立资料库nuke 4.以sql子目录下的nuke.sql导入资料库 telnet登入者∶在console执行mysql nuke < nuke.sql 使用phpMyAdmin者,以"浏览"选择nuke.sql,按"GO" 5.编辑config.php设定$dbhost="localhost";$dbuname="root";$dbpass="密码";$dbname="nuke"; (如果你不是以MySQL的管理者root来存取nuke资料库,请自行更改之) $nukeurl="http://www.y-channel.com"; $system设定FreeBSD/Linux用预设的0,Windows要设为1 上传config.php并更改档案属性为666 6.以浏览器连结nuke你的网站的admin.php,预设管理者为"God",密码"Password"(大小写有别);登入管理页面。 好了,你已经是一个PHP Nuke网站的站长了,记得先更改站长设定 (名称与密码) · 切换为中文语系,画面出现乱码 老问题了.nuke5.x每一版本都如此.与中文不相容,可自己修改,只是个极小的问题而已. 方法:进管理页面->版面区块->main menu 把./big>都改成 还有一个地方也如此,那是Administration 区块. · 站长发布新闻,却看不到 刚开始升级到PHP Nuke 5.x的时候,真的最不习惯就是这里了。 它新增的多语系,我们未蒙其利、先受其害。 预设的偏好设定(设定在config.php中)是使用多语系的。那麽发布新闻时要小心∶把你的新闻选定中文或All,要不然,发布新闻却看不到了。 我的做法是一安装好,就去修改偏好设定,选择"不启用"多语系,预设语言选择"Chinese".然後,就可以不受这层干扰了。另外,我习惯上传前先将其他的语系的模块都删除掉,这样可以省下很多上传的时间和空间. · 不同版本在不同平台安装的差异 没有丝毫差异! 不管是PHP Nuke 4.x 或 5.x 各版本,在Linux/FreeBSD/Windows 2000 professional/Windows Me/Windows 98 等各不同OS上,采用Apache+PHP+MySQL或FoxServer或IIS 5安装方法完全一样。 · 找不到footmsg()的错误 解决方法为∶在footer.php中加入底下这个函数,便可通用无阻。 function footmsg() { include("config.php"); echo " $foot1 n $foot2 n $foot3 n $foot4 n "; } · 新增报导图案上传的问题 1.上传图档的目录是nuke/images/articles,目录权限需为777 2.上传档案的大小限制受php.ini的预设值限制 3.上传图档仅供上传到images/articles下,要自己在报导中建超连结的.而非一上传就会自动连结显示 4.上传图档只在新增报导时才有作用,再次编辑旧报导时选择上传图档是无效的。 · 安装某些模组後出现undefined smile() 这个smile函数来自phpBB,虽然PHP Nuke 5.x起已无内附phpBB但这些函数都在functions.php也都还包装进来了,所以只要在出现错误的php档中,找到include("header.php");之前加入一行include("functions.php");即可解决。 · 首页的新闻图示出现大叉叉 在PHP Nuke 5.3以上版本,只要站长登入管理选单做过偏好设定,再回到首页,就会发现原来的topic images无法正确显示了。 原因是∶原来的config.php中最後面有个$tipath="images/topics"的参数指定路径,但admin/modules/settings.php在设定完偏好设定後写入config.php时给遗漏了。 所以应该去修改admin/modules/settings.php,找到一行 $content .= "$Version_Num = "$Version_Num";nn"; 在它之前插入一行 $content.="$tipath = "images/topics";"; 再重做一次偏好设定即可。 · 会员注册错误 检查config.php的$system设定 如果是$system=0 (Linux/FreeBSD),则会寄密码信给注册者,如果出错,应该检查php.ini的sendmail路径设定。 如果是$system=1 (Windows),则不会寄送密码给注册者 PHP-Nuke 5.3.1 之前的版本才有这个参数 · 如何让Windows系统也能使用mail()寄出信件 编辑c:windowsphp.ini找到一个sendmail区段 [mail function] ; For Win32 only. SMTP = localhost ; For Win32 only. sendmail_from = [email protected] 设定SMTP=你的email所在的mail server sendmail_from=你的email · 首页新闻的时间错误 当post一篇新闻後回到首页,发现有时间显示错误或new icon不能显示出来,则要修正mainfile.php的formattimestatmp()函数 另外,在Download、Web_Links这两个模组内,也都有同样情形,但他们却不呼叫formattimestatmp函数,而是hardcore,所以,你还得去修正modules/Downloads/index.php和modules/Web_Links/index.php把其中相同的问题一一修正,之後才能正确显示新进下载、网站连结的红色、绿色、蓝色icon · 首页新闻的张贴者未显示 如果在发布新闻後,回到首页,不能看到正确显示post by 什麽人,应该修正mainfile.php中的formatAidHeader()函数,修正法,看这里 · 加装module後的启用 PHP Nuke的模组可由站长决定启用与否。如果启用则会自动显示在模组区块;如果不启用则只会出现在站长登入後的模组区块下方的Inactive modules部份,只有站长可以连结。 而,启用与否则由站长登入後的「管理选单」中的「modules」来进行个别的设定。 · 重复要求输入ADMIN ID及PASSWORD 据网友tcleu的经验,(似乎也有他人遇到过类似情形),当config.php的$system设定无误,发现登入站长管理,也见到管理选单,可是只要点选任一个管理选项,就会跳回到登入画面。 这是由於主机的时间错误,造成cookie过期之故。只要把主机时间校正好即可。 · Nuke 5.5 的 Forum 模组无法寄通知信 Forum用来存放post topic的资料表叫 nuke_bbtopics,而modules/Forum/reply.php中检查要否寄通知信却向nuke_forumtopics资料表查询,所以出现无法寄信的现象。 所以应该修正reply.php第215行的部份。其实,用快速搜寻不难找到这个forumtopics 字串。 · Nuke 5.5 的 Forum 有很多倒斜线 修改functions.php的第1241行 $word = quotemeta(stripslashes($w[word])); $replacement = stripslashes($w[replacement]); 为 $word = quotemeta($w[word]); $replacement = $w[replacement]; 似乎可以改善一些。唯野诱晰|多一个倒斜线 · Nuke 5.5 的 Forum 的乱码问题字解决方法 修改functions.php把function own_stripslashes($string) 最後的 return preg_replace($find, $replace, $string); 改成 $string=preg_replace($find, $replace, $string); $string=stripslashes($string); return $string; 这能解决说,不妨试试~ · redeclare translate() 当出现类似下行的错误讯息 Fatal error: Cannot redeclare translate() in language/lang-chinese.php on line 141 应该编辑出错的那个php档案,把所有的include("mainfile.php");改成include_once("mainfile.php"); require("mainfile.php");也改成require_once("mainfile.php"); 事实上,PHP Nuke 5.5已全部改用require_once了,但有些旧版的外挂模组并未随著更新,所以要自己修正才行。 · 安装後无法成功登入站长 如果使用 PHP-4.20 架站,则要修改php.ini 的 register_globals = Off 为 register_globals = On · 忘了站长密码 直接以phpMyAdmin把nuke_authors中的管理员的密码清为空白,即可免输入密码登入 .再去设定密码. · 删除站长帐号 直接以phpMyAdmin把nuke_authors中的管理员的资料删除,再连结admin.php 可重新设定站长.(记得不要再产生同名的会员帐号) · PHP-Nuke-6.0 安装变简单了 PHP-Nuke-6.0 安装变简单了 在其它版本的架站机都早使用 install.php 之後, PHP-Nuke 6.0 终於也有了 install.php 而且还更进一步的, 不需去连结 install.php 只要连结首页 index.php 就在不声不响间自动执行完毕了. 真是太好用了. 朋友们,要记得(1)先建好给 nuke 用的空资料库, 然後(2)设定好 config.php 的资料库使用者名称和密码, (3)连结首页 index.php |
代码: |
. 自制外挂 . 如何加入一个自己的网页? 编辑一个新档,以.php为附档名,例如∶color.php,内容形式如下 if (!isset($mainfile)) include("mainfile.php"); include("header.php"); ?> ...... 这是你自己的网页,使用html语法,即一般网页的至之间的内容 ....... include("footer.php"); ?> 存档後,放在nuke网站的根目录,再从管理选单->版面区块 去建立超连结到这个自制网页,如上例的color.php · 有很多外挂,又要放在别的目录该如何做? 如果,你有不少外挂,而且不想放在Nuke根目录的话,不妨在Nuke根目录放一个doc.php,然後在Nuke根目录下开一个子目录,例如:2001 把你的自制档案放在2001之下,例如档名color.html的档案 doc.php的内容为: if (!isset($mainfile)) include("mainfile.php"); include("header.php"); if (isset($filename)) include("2001/$filename"); include("footer.php"); ?> 使用的方法为建一超连结到doc.php?filename=color.html · 如果要加入的是互动网页的话呢? 这时,可以运用 inline iframe,以网址连结的方式插入到PHP Nuke网站中 方法为∶编辑新档nb.php置於Nuke根目录,内容如下 require_once("mainfile.php"); include("header.php"); if (isset($url)) echo ""; include("footer.php"); ?> 使用的方法为建一超连结到nb.php?url=http://www.y-channel.com/ 此一方法可插入静态或动态网页,而且不限於在你原来主机上的网页。 但运用时,建议不要擅自连结别人的网站为佳。 · PHP Nuke内建的外挂网页方法 只要在连结Nuke站的index.php加上参数file即可自动外挂进来哦~ 不晓得从哪个版本起就有了,我看了一下,PHP Nuke 5.2以後的版本都有 使用方法,编辑你自己的网页,例如somedir/something.html置於Nuke网站相对映的位置 连结方法:index.php?file=somedir/something.html 这个方法在 PHP-Nuke 5.5 之前的 5.x 版本可以用, 以後版本因安全问题已去除这部份程式码了. |
代码: |
· PHP Nuke的档案与用途 · index.php 首页,但其实它是含括其他档案。 重点却在取得网站最新的10篇(篇数依config.php设定而定),以显示在首页中间。 · mainfile.php 整个Nuke站的重心所在,是网站的Engine。 把共用的函数都集合在此。这些函数中较少控制到页面显示,但却控制到整个网站的作业,主要在取得与修改资料库内容,而这些资料即动态地产生了版面区块的内容。 · header.php 取得theme设定,产生网站页面的上方及左区块的内容,而显示则交由预设theme的themeheader()函数来完成。 另外,它又含括counter.php来进行网站动态的收集与写进资料库的动作。 · footer.php 产生页面右侧区块及下方注脚的内容,而显示则交由预设theme的themefooter()函数来完成。 · modules.php 执行模组的入口,也是一个模组管制与环境准备的重点。别看这档案不大,却大大的减轻了模组程式的安全检核与维护工作。 看PHP Nuke及其分支PostNuke的发展不难发现,模组是一大要素,软体建构越形简单化、发展速度也倍增、网站更形多样丰富。 · admin.php 与 modules.php 有某种程度相类似,但它进行站长管理模式与安全检核及环境准备;越来越智慧了,它会自动取得管理程式超连结,以供站长简易地进行网站管理工作。 · .htaccess 在很多子目录内都有此档, 但其内容并不全相同. 在根目录它保护 config.php , 在其它子目录内,它确保 .php 档只能被入口程式含括而不能直接连结执行. 事实上,这是 Apache 的目录安全设定档. 但充份运用在保护 PHP-Nuke 网站上. · auth.php 提供站长认证的安全机制。 · backend.php 提供XML格式的网站新闻与他站做後端交流。不管是PHP Nuke 站或其他类型网站,只要连结这个档案即可取得backend.php所在站台的最新新闻(当然笔数是由所在站台所设定). · banners.php 这是网站的广告横幅管控程式,重点在随机秀出广告横幅,并且计数;对於商业广告而言,计数及点连率是很重要的。 · 子目录内空的 index.html 在众多子目录内的 index.html , 它的档案长度为 0, 是为了保护不让人直接连结该子目录. 当有网友直接连结子目录时只会看到一页空白而不会显示出档案列表. |
代码: | ||||||
· theme相关的函数与用途 · themeheader()函数 开启整个网页版面及网站上方logo、左侧区块等显示的函数。 由header.php取得预设theme,再叫用此themeheader(),延续要输出之内容以产生版面开始的部份,再叫用mainfile.php中的blocks(left)函数来产生左侧区块。 · themesidebox()函数 既已提到区块,那麽在mainfile.php中的blocks()函数查询资料库取得左、右侧区块的内容时,就得叫用themesidebox()函数来产生显示。 blocks()传给themesidebox()的参数有两个$title(标题),$content(内容),都可以是一长串的HTML码。 这种做法,将资料库的动作与页面显示的动作分开来,才能随意变换theme而保持资料的正确与完整。 · OpenTable()和CloseTable()函数 这是小巧,但使用最多的函数了,作用为产生table及封闭table 原始码∶ function OpenTable() { global $bgcolor1, $bgcolor2; echo "
} 在这个函数中用到2个
你可能感兴趣的:(Linux,phpmyadmin,include,php,module,system,file) |