1、安装报错,新版本php不支持mysql_connect;【安装支持老版本的mysql扩展始终报错HP Warning: PHP Startup: Unable to load dynamic library ‘mysql.so’ (tried: /usr/lib64/php/modules/mysql.so (/usr/lib64/php/modules/mysql.so: undefined symbol: mysqlnd_get_client_info), /usr/lib64/php/modules/mysql.so.so (/usr/lib64/php/modules/mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
】
(1)对安装index.php的数据库操作进行改写
public function successAction()
{ if (IS_POST)
{ C($_POST);
//$db = mysqli_connect($host,$user,$passwd,$database,$port);
//if (!@mysql_connect($_POST['mysql_master_host'].':'.$_POST['mysql_master_port'],$_POST['mysql_master_user'],$_POST['mysql_master_pwd']))
//$dbcon= mysqli_connect($_POST['mysql_master_host'],$_POST['mysql_master_user'],$_POST['mysql_master_pwd'],$_POST['mysql_master_name'],$_POST['mysql_master_port']);
$dbcon= mysqli_connect($_POST['mysql_master_host'],$_POST['mysql_master_user'],$_POST['mysql_master_pwd'],'webdb',$_POST['mysql_master_port']);
// 检查连接
if (!$dbcon)
{
die("连接错误: " . mysqli_connect_error());
}
if (!@dbcon)
{ $this->error('数据库帐号密码错误');
}
if (!@dbcon)
{ $this->error('数据库帐号密码错误');
}
//mysqli_fetch_assoc(result);规定由 mysqli_query()、mysqli_store_result() 或 mysqli_use_result() 返回的结果集标识符。
//mysql_query('show tables', $Con ); 也可以省略第二个参数,写成:mysql_query('show tables');
//但是mysqli不行 mysqli_query( $Con, 'show tables');
//mysqli_query(connection,query,resultmode);connection 必需。规定要使用的 MySQL 连接。query 必需,规定查询字符串。
//resultmode可选。一个常量。可以是下列值中的任意一个:MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)MYSQLI_STORE_RESULT(默认)
//if (!isset($_SERVER['HTTP_BAE_LOGID']) && !mysql_fetch_assoc(mysql_query("SELECT `SCHEMA_NAME` FROM `INFORMATION_SCHEMA`.`SCHEMATA` WHERE `SCHEMA_NAME`='{$_POST['mysql_master_name']}' LIMIT 0, 1;")))
//{ if (!mysql_query("CREATE DATABASE IF NOT EXISTS `{$_POST['mysql_master_name']}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"))
if (!isset($_SERVER['HTTP_BAE_LOGID']) && !mysqli_fetch_assoc(mysqli_query($dbcon,"SELECT `SCHEMA_NAME` FROM `INFORMATION_SCHEMA`.`SCHEMATA` WHERE `SCHEMA_NAME`='{$_POST['mysql_master_name']}' LIMIT 0, 1;")))
{ if (!mysqli_query($dbcon,"CREATE DATABASE IF NOT EXISTS `{$_POST['mysql_master_name']}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"))
{ $this->error('数据库不存在,尝试创建失败!');
}
}
$zym_7=F(APP_PATH.'/install/data/mysql.sql');
if (!$zym_7)
{ $this->error('读取数据库安装信息失败,请检查程序完整性',0,0);
}
$zym_7=strtr($zym_7,array( '{adminuser}'=>$_SESSION['install']['adminuser'], '{salt}'=>substr(md5(NOW_TIME),0,6), '{adminpwd}'=>md5(md5($_SESSION['install']['adminpwd']).substr(md5(NOW_TIME),0,6)), '{installsitename}'=>$_SESSION['install']['sitename'], '{installsiteurl}'=>$_SESSION['install']['siteurl'], '{mysql_driver}'=>C('mysql_driver'), '{mysql_prefix}'=>C('mysql_prefix'), '{mysql_master_host}'=>C('mysql_master_host'), '{mysql_master_port}'=>C('mysql_master_port'), '{mysql_master_name}'=>C('mysql_master_name'), '{mysql_master_user}'=>C('mysql_master_user'), '{mysql_master_pwd}'=>C('mysql_master_pwd'), ));
$zym_5=new model();
$zym_6=explode(";\n",$zym_7);
foreach($zym_6 as $zym_7)
{ $zym_5->execute(trim($zym_7).';');
}
M('config')->createConfigFile();
F(CACHE_PATH,null);
F(DATA_PATH,null);
F(DATA_PATH.'/install.lock','PTcms Install Lock File!');
$this->admin=$_SESSION['install'];
$_SESSION['install']=null;
}
$this->display('success');
}
vim /usr/share/wwwphp/ptcms/application/install/controller/index.php
service nginx restart
系统安装成功
安装成功!
您的管理员账户是: admin
您的管理员密码是: admin
参与用户调查, 帮助我们完善产品
您可以将下面两个链接保存到您的收藏夹:
[点击这里访问您的控制面板](http://localhost/admin.php)
[点击这里查看您的网站](http://localhost/index.php)
希望您能尽情享用 PT小说聚合程序 带来的乐趣!
2 进入系统后台进行设置
(1)为了方便调试,让主机访问虚拟机地址
ifconfig -a
vmware改为桥连接且复制物理连接
(2)fedora防火墙设置允许非本机访问
systemctl start firewalld.service
firewall-cmd --state
firewall-cmd --get-active-zones
FedoraWorkstation
interfaces: ens33
firewall-cmd --permanent --zone=FedoraWorkstation --add-port=80/tcp
firewall-cmd --permanent --zone=FedoraWorkstation --add-service=http
systemctl restart firewalld.service
防火墙基础操作
systemctl stop firewalld.service
systemctl start firewalld.service
systemctl restart firewalld.service
//查看防火墙状态
firewall-cmd --state
//输出
running
//查看活动区域并附带网络接口
firewall-cmd --get-active-zones
//输出
FedoraWorkstation
interfaces: enp3s0
//通过网络接口查看对应的区域
firewall-cmd --get-zone-of-interface=enp3s0
//输出
FedoraWorkstation
//通过区域名获得所有网络接口
firewall-cmd --zone=FedoraWorkstation --list-interfaces
//输出
enp3s0
//通过区域名获得此区域的信息
firewall-cmd --zone=FedoraWorkstation --list-all
//输出
FedoraWorkstation (default, active)
interfaces: enp3s0
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
//查看当前区域活动的services
firewall-cmd --get-service
//输出
amanda-client amanda-k5-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql privoxy proxy-dhcp puppetmaster radius rpc-bind samba samba-client sane smtp squid ssh synergy telnet tftp tftp-client tor-socks transmission-client vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
//增加端口到防火墙中
firewall-cmd --zone=FedoraWorkstation --add-port=8080/tcp --permanent
firewall-cmd --zone=FedoraWorkstation --add-port=5060-5061/udp --permanent
//删除
firewall-cmd --zone=FedoraWorkstation --remove-port=8080/tcp
firewall-cmd --zone=FedoraWorkstation --remove-port=5060-5061/udp
//增加服务到防火墙中
firewall-cmd --zone=FedoraWorkstation --add-service=smtp --permanent
//删除
firewall-cmd --zone=FedoraWorkstation --remove-service=smtp
(3)Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/wwwphp/ptcms/application/admin/controller/index.php on line 2
php7.2之后
[1]each函数已被废弃
之前版本写法:
<?php
$array = array();
each($array);
// Deprecated: The each() function is deprecated. This message will be suppressed on further calls
在7.2版本中会提示过时,可以使用foreach替代each方法,也可以自己修改each方法替代:
<?php
function func_new_each(&$array){
$res = array();
$key = key($array);
if($key !== null){
next($array);
$res[1] = $res['value'] = $array[$key];
$res[0] = $res['key'] = $key;
}else{
$res = false;
}
return $res;
}
[2]当传递一个无效参数时,count()函数将抛出warning警告:
之前版本写法
<?php
count(’’);
// Warning: count(): Parameter must be an array or an object that implements Countable