php端口号怎么设置,PHP简单实现HTTP和HTTPS跨域共享session解决办法?
PHP自带的session会话机制是这样的:
PHP-FPM根据浏览器传来的一个名为PHPSESSID的HTTP COOKIE确定要访问的会话文件,然后填充超全局变量$_SESSION.
WebSocket建立连接时,也可以拿到这个HTTP cookie(注意跨域问题:AJAX跨域区分域名和端口,cookie区分域名但不区分端口),同理你可以根据这个PHPSESSID读取服务器上的会话文件,unserialize反序列化就能拿到会话数组,如果你要写入会话,记得先用 flock($fp, LOCK_EX) 排它锁锁定后再写入,只是读的话就不需要了.
但个人不建议使用PHP自带的SESSION会话机制,除非你的应用定位就是单台服务器.否则还是建议使用cookie验证身份(解密cookie,根据id比对salt),Redis存储用户数据:
user:10001:name => 'tux'
user:10001:age => 27
这样不同语言都可以访问到这些数据,而且可以把程序部署到其他服务器也没有问题.
php操作数据库的三步骤?
第一步:链接数据库
MYSQLi_connect('主机地址','mysql用户名','mysql密码 ','数据库','端口号')
返回:如果连接成功,返回资源类型的标志符号;如果连接失败,返回false。
如果我们与mysql建立的连接不只一条,那么以后操作数据库的各种函数都必须传入返回的连接符号;
如果我们与mysql建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个标识符号。建议都传入。
密码为空可以省略密码
$conn= mysqli_connect("localhost", "root", "123456", "dbname");
第二步:检测数据库连接是否成功
mysqli_connect_errno()与 mysqli_connect_error()
mysqli_connect_errno(); 返回上次连接数据库错误的错误号,连接成功返回0
mysqli_connect_error(); 返回上次连接数据库的错误信息
if(mysqli_connect_errno($conn)){
die("数据库连接失败!失败信息:".mysqli_connect_error($conn));
}
前面两步合并的写法:连接数据库同时判断
$conn = mysqli_connect("localhost", "root", "", "mydb") or die("数据库连接失败!失败信息:".mysqli_connect_error($conn));
第三步:选择数据库
mysqli_select_db($link,$dbname)
参数:①标识符 ②连接数据库名称
连接成功,返回true;连接失败,返回false
如果修改数据库成功,则资源标识符中的数据库就会发生变动;
如果修改失败而没有通过代码终止操作,则后续代码可以使用原数据库继续执行
mysqli_select_db($conn, "mydb") or die("数据库选择失败!");
第四步:设置字符集编码格式
mysqli_set_charset($link,$charset) 只能设置为utf8而不能是utf-8
mysqli_set_charset($conn,"utf8") or die("数据库编码集设置失败!");
第五步:编写sql语句
$sql = "select * from 表名";
第六步:执行sql语句
mysqli_query($link,$sql)
如果是(DML)增、删、改,将返回布尔类型是否成功
返回上一次操作时受影响的行数 mysqli_affected_rows($link)
如果是(DQL)查询,将返回资源结果集
返回资源结果集中的行数 mysql_num_rows($result)
返回资源结果集中的字段数 mysql_num_fields($result)
如果查询失败,返回false
$res = mysqli_query($conn,$sql);
mysqli_insert_id($conn); 执行插入语句是返回上次插入最新插入的主键ID
第七步:解析结果集
var_dump(mysqli_fetch_array($res)); 处理结果集,返回关联数组和索引数组 不常用
参数① 需要处理的结果集
参数② 返回哪种数组格式
MYSQL_ASSOC 关联数组
MYSQL_NUM 数字数组
MYSQL_BOTH 默认。同时产生关联和数字数组
echo "<table border='1' style='border-collapse:collapse;text-align:center;width:200px;'>";
echo "<thead bgcolor='lightblue' style='color:#ffffff;'><td>ID</td><td>姓名</td><td>年龄</td><td>性别</td></thead>";
while($row =mysqli_fetch_assoc($res)){ // 返回关联数组 指针遍历 常用
echo "<tr>";
foreach($row as $value){
echo "<td>{$value}</td>";
};
echo "</tr>";
}
echo "</table>";
mysqli_data_seek($res,0); 设置结果集指针位置,此式表达复位至0
var_dump(mysqli_fetch_object($res));
var_dump(mysqli_fetch_row($res)); 返回索引数组
var_dump(mysqli_fetch_object($res)); 返回对象
var_dump(mysqli_fetch_fields($res)); 返回结果集中每一列的字段信息
第八步:关闭资源与结果集
mysqli_free_result()和mysqli_close()
mysqli_free_result($res); //释放查询资源结果集
mysqli_close($conn); //关闭数据库连接
80端口不会冲突吗?
首先感谢各位阅读。我来先说一下我的观点:一是一台服务器只有一个IP,在一切都硬件性能没有限制的情况下理论上网站数量也没有限制;二是在合理规划下80端口不会发生冲突。下面我就从以下几点说明原因。
一、网站和IP地址的关系首先看一下IP地址是什么?我们先来看一下定义“IP是英文Internet Protocol的缩写,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议“。这里我们可以把服务器比作买家,那么IP地址就是你的收获地址,你要在网上完成一次交易就必须提供你的地址才能收到货。同样服务器要和外部网络交流就必须要有自己的IP地址,这样才能保证这台服务器是可以使用的。
那么我们在服务器上面的搭建的网站和IP地址有着什么关系呢?这里我们可以把网站比作一个商店,IP地址比作商店所在的商场,这里我们就可以清楚地知道了我们要找到我们想要去的店不是只知道商场在哪里就行了,因为商场还有很多其他的店所以我们还要知道这个店的名字。那么这里我们就知道了可以把端口比作这个点的名字了,所以我们访问网站就需要知道这个IP地址和端口号才能正确访问我们想要访问的网站。这里可能有的人用过只输入IP地址就能访问网站的,这是应为你访问的网站默认端口是80。
这里我们就知道了一个服务器上虽然只有一个IP地址,但是决定能否搭建多个网站(商店)的并不是IP地址,而是端口数。就行商场里不可能商店的名字都一样所以就可以决定一个商场有很多的商店供人挑选,类比网站道理也是很类似的。
这里IP地址类比商场,网站类比商店,商场是无法决定每个商店起了什么名称的,所以IP地无法决定网站的建设数量。
二、网站使用的端口可以自定义这里为什么80端口不会冲突呢?首先我们搭建的网站不一定非要使用80端口,我可以自己定义一个端口例如8090这样的端口都是可以使用的。除非你搭建了很多的网站都使用了默认端口这样是会冲突的,这也就是说明我们没有合理的规划。
早期建网站使用的是80端口但是由于现在人们的安全意识提升了所以现在都采用了加密的协议的8080端口了,这里我们就可以看出并不是我们就非要一成不变的使用80端口,还可以使用自定义的端口,但是现在的自定义端口都缺乏一定的安全性这点也是很让人头痛。
理论上我们排除一切其他不利的因素我们的自定义端口可以是无限制的,所以我们可以搭建出无限制的网站,那么题主所说的80端口会冲突就不攻自破了。
综上所述,我的观点很清晰在理想状态下一台服务器只有一个IP,上面建立起的网站是无限制的,80端口也不会发生冲突,所以现实情况下建议最好一台服务器不要超过3个网站因为访问的流量也是会给服务器不小的压力。今天的分享就到这里,谢谢~~
邮件服务器设置Access?
看你使用的是哪家的服务器,如果是阿里云的,TCP 25端口是默认被禁止的,你不申请解封不行,可以参照阿里云的 TCP25端口控制台解封申请,help.aliyun.com/knowledge_detail/56130.html
其他的服务器询问服务商是否封掉端口,能自己改的自己改,改不了让服务商改吧!
如果使用了SSL加密的方式,端口号为465或者995之类的,需要开启php的一个扩展,打开php.ini 中的 extension=php_openssl.dll 扩展,windows服务器的话需要在php版本里面增加php_openssl.dll这个文件,没有的可以在网上搜下下载下来放进去,然后把libeay32.dll、ssleay32.dll、php_openssl.dll这三个文件在复制一下放进 c:\windows\system32 下,然后重启apache服务即可。
linux下安装php扩展模块,所以要通过phpize可以建立php的外挂模块
find / -name phpize 查找路径在哪里,
/var/www/php7/bin/phpize
./configure --with-openssl -with-php-config=/var/www/php7/bin/php-config
make
make install 返回.so文件路径
拷贝到php extensions_dir下
php.ini增加
extension=openssl.so
重启服务器完成
家用电脑如何绑定域名?
1、做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。
2、域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。
3、如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。
4、电脑安装配置web服务,这个条件比较好实现 ,找个服务器操作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下程序需要的环境。
5、如果.net程序就安装net framwork相应版本,如果php就配置php+mysql环境。
6、家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将个人电脑ip 80端口通过宽带路由映射出去。
7、网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。