你一定是用了lnmp的vhost 并且没有正当操作删除之前的vhost导致的
lnmp的vhost会在serverroot下建一个.user.ini 里面会有open_basedir
cd到目录下 运行chattr -i .user.ini
然后把它删了就行了。徐老师亲测无误!
徐多蔚APP开发,合肥物联网项目开发,合肥网络开发,合肥项目高端定制,企业oa开发,合肥小程序开发,合肥公众号开发,合肥网络安防 – 徐多蔚 xuduowei
联系方式[微信]:徐多蔚15309695130 感恩有您的陪伴,我们用心服务每一位客户 – 徐多蔚 xuduowei
你一定是用了lnmp的vhost 并且没有正当操作删除之前的vhost导致的
lnmp的vhost会在serverroot下建一个.user.ini 里面会有open_basedir
cd到目录下 运行chattr -i .user.ini
然后把它删了就行了。徐老师亲测无误!
只有首页面根目录可以访问,其他页面地址都是404 not found。网上有很多介绍用url重定向,url重写都试了无效,要不就是重定向过多。其实解决方法很简单:
以phpstudy2016环境组合包为例:
1、打开vhosts.conf;
2、找到对应的域名;
listen 80;
server_name www.xuduowei.com xuduowei.com;
root "E:/phpStudy/WWW/xuduowei/public";
location / {
#index index.html index.htm index.php;
#autoindex on;
try_files $uri $uri/ /index.php?$query_string;
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
}
注意实际增加:
try_files $uri $uri/ /index.php?$query_string;
if (!-e $request_filename){
rewrite ^/(.*) /index.php last;
}
注意:若是nginx服务器,直接增加如下配置:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
提示:若你的vps是虚拟机,要找准虚拟机下对应的配置项!
徐老师项目亲测有效!想学习php开发的,可以联系我。微信:weilanweb 或者15309695130
如果你想做B2C式的网站,可以先注册个10W左右的网络公司,然后办理个非经营ICP备案许可,可以先运行,运行起来后再办理经营性ICP备案许可。
另外,导航类网站只需要办理非经营性ICP许可就可以开办。
ICP备案的经营性和非经营性在备案号上就有显示,其实最简单的就是看他除了ICP备案号外还有没有一个叫“增值电信业务许可证”的东西。
如果还是不明白,可以通过HI联系。徐多蔚 15309695130 微信号:weilanweb
近期接到一个任务,在商家的商品信息发生改变后,要及时通知商家的业务系统,并将变更后的数据同步过去。
第一时间想法是,在主系统的商家编辑模块插入对应代码,当商品编辑后,发送商品id至MQ中,子系统消息订阅,并进行相应处理,感觉不错,但是在主系统进行扩展,系统代码会越来越臃肿。
有没有更好的解决方案,比如让mysql主动通知业务系统,数据发生变化了?于是找到了mysql-udf-http。
mysql-udf-http 是一款简单的MySQL用户自定义函数,具有http_get()、http_post()、http_put()、http_delete()四个函数,可以在MySQL数据库中利用HTTP协议进行REST相关操作,它的安装方式如下:
tar zxvf mysql-udf-http-1.0.tar.gz
cd mysql-udf-http-1.0/
./configure --prefix=/usr/local/mysql --with-mysql=/usr/local/mysql/bin/mysql_config
make && make install
如果提示缺少libcurl,就安装curl
yum install curl*
正常的情况mysql-udf-http.so等文件将安装至/usr/local/mysql/lib/plugin下,不知什么原因我的装在了/usr/local/mysql/lib/mysql/plugin下,于是加个软链
正常的情况mysql-udf-http.so等文件将安装至/usr/local/mysql/lib/plugin下,不知什么原因我的装在了/usr/local/mysql/lib/mysql/plugin下,于是加个软链
安装成功后,进到mysql控制台,注册相关函数
create function http_get returns string soname 'mysql-udf-http.so';
create function http_post returns string soname 'mysql-udf-http.so';
create function http_put returns string soname 'mysql-udf-http.so';
create function http_delete returns string soname 'mysql-udf-http.so';
然后在业务表中加入更新操作的触发器
DELIMITER |
DROP TRIGGER IF EXISTS test_update;
CREATE TRIGGER test_update
AFTER UPDATE ON test
FOR EACH ROW BEGIN
SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id)));
END |
DELIMITER ;
经测试,当商品表中的数据有更新时,mysql会发送get请求至业务系统。
INSERT 触发器
DELIMITER |
DROP TRIGGER IF EXISTS test_insert;
CREATE TRIGGER test_insert
AFTER INSERT ON test
FOR EACH ROW BEGIN
SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id)));
END |
DELIMITER ;
DELETE 触发器
DELIMITER |
DROP TRIGGER IF EXISTS test_delete;
CREATE TRIGGER test_delete
AFTER DELETE ON test
FOR EACH ROW BEGIN
SET @tt_re = (SELECT http_get(CONCAT('http://192.168.0.1:8080/my.do?id=', OLD.id)));
END |
DELIMITER ;
下载地址
http://code.google.com/p/mysql-udf-http
csdn下载
http://download.csdn.net/detail/cyantide/9455805
来源:https://blog.csdn.net/cyantide/article/details/50828746
借鉴:https://www.cnblogs.com/phpper/p/7587031.html
我们项目开发中,应该从哪几个方面提高项目性能?【原创】
1、硬件;服务器要稳定,可靠,带宽大,允许的并发数要高;
2、软件【开发的程序】。
a、数据库
1、创建合适的字段类型及分配合适的长度;
例如:
密码:md5加密,对应的字段:char 32
年龄:tinyint 无符号
提示:整型的长度是结合0填充一起使用的。
2、默认值尽可能不要设置null
3、索引的创建;
4、合理的分表设计。
b、程序中值的调取【从数据库中调取】
单表查询,多表查询
子查询;【性能较低】
左右链接;
关联查询;
合理的 select 字段1,字段2 from 表
不合理的 select * from 表
不合理的 select count(*) from 表 where >>>
不合理的 select count(姓名) from 表 where >>>
合理的 select count(主索引ID) from 表 where >>>
c、优化。
1、静态化;
2、缓存[1、页面缓存;2、内存缓存]。
我现在给你一个JAVA和JSP之间的关系,以及JAVA的完整认识
JAVA分为J2EE,J2SE.J2ME,下面分别介绍:
一.J2EE:Java 2 Platform Enterprise Edition 企业版,用于企业应用,支持分布式部署。
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,
它对开发基于Web的多层应用提供了功能上的支持。它包含13种核心技术规范:
(1)Java Database Connectivity (JDBC)
以一种统一的方式来对各种各样的数据库进行存取
(2)Java Naming and Directory Interface (JNDI)
用于名字和目录服务,它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统等
(3)Enterprise Java Beans (EJB)
提供了一个框架来开发和实施分布式商务逻辑,显著地简化了具有可伸缩性和高度复杂的企业级应用的开发
(4)JavaServer Pages (JSPs) 这里就是你所说的JSP!!!!!!用以创建动态网页
(5)Java servlets
提供的功能大多与JSP类似,不过实现的方式不同
(6)Remote Method Invocation (RMI)
在远程对象上调用一些方法,使用了连续序列方式在客户端和服务器端传递数据
(7)Interface Description Language (IDL)
将Java和CORBA集成在一起
(8)Java Transaction Architecture (JTA)
可以存取各种事务
(9)Java Transaction Service (JTS)
规定了事务管理器的实现方式
(10)JavaMail
用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类
(11)JavaBeans Activation Framework(JAF)
JavaMmail利用JAF来处理MIME-编码的邮件附件,MIME的字节流可以被转换成JAVA对象,或者转换自JAVA对象
(12)Java Messaging Service (JMS)
是用于和面向消息的中间件相互通信的应用程序接口(API)
(13)Extensible Markup Language (XML)
XML是一种可以用来定义其它标记语言的语言
上面的JSP是主流,基于MVC的实现,最流行使用,也最安全(比较其他语言做的网站)
其中EJB是java最难学的东西
但是现在的sun公司出来一种新的技术:java FX,
可以像FLASH一样在浏览器中执行,但是也要安装插件,具体可以参见www.sun.com
二.J2SE:Java 2 Platform Standard Edition 标准版,用于桌面应用,也是J2EE的基础。
包括JAVA基础,IO,Swing,AWT,线程,集合等知识.也是学习JAVA的必经之路(基础)!
三.J2ME:Java 2 Platform Micro Edition 移动版用于小型设备,是J2SE的一个子集。
主要的技术如下:
Connected Limited Device Configuration【CLDC】:是组成资源有限的移动信息设备的 Java 运行时环境的两种配置之一。CLDC 描述最基本的库和虚拟机特性,所有包含 K 虚拟机(K virtual machine,KVM)的 J2ME 环境实现中都必须提供这些库和特性。
Mobile Information Device Profile【MIDP】:是组成资源有限的移动信息设备的 Java 运行时环境的两种配置之一。MIDP 提供核心应用程序功能,包括用户界面、网络连接、本地数据存储和应用程序生命周期管理。
Connected Device Configuration【CDC】:是一个基于标准的框架,用来构建和交付可以跨许多连接网络的消费类设备和嵌入式设备共享的应用程序。
Mobile 3D Graphics API for J2ME【M3G】:是一种轻量的交互式 3D 图形 API,它作为可选的包与 J2ME 和 MIDP 结合使用。
所以你所说的JAVA和JSP的关系就这样豁然开朗!
JAVA是一种编程语言,可以编写应用程序,主要应用在网络编程上。
JSP是建立在JAVA基础上的一种网络编程语言,只能在网页上应用。
JavaScript是一种Web脚本语言,可以嵌入在HTML中,可以由浏览器解释执行。
可以把jsp理解为脚本
java为面向对象语言
jsp作用主要是负责页面展现,java负责逻辑,业务处理
jsp 本质 是servlet,servlet本质是 java类,就是这么个关系。
首先我们要知道明确单例模式这个概念,那么什么是单例模式呢?
单例模式顾名思义,就是只有一个实例。
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,
这个类我们称之为单例类。
单例模式的要点有三个:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
下面我们讨论下为什么要使用PHP单例模式?
多数人都是从单例模式的字面上的意思来理解它的用途, 认为这是对系统资源的节省, 可以避免重复实例化, 是一种”计划生育”。而PHP每次执行完页面都是会从内存中清理掉所有的资源. 因而PHP中的单例实际每次运行都是需要重新实例化的, 这样就失去了单例重复实例化的意义了. 单单从这个方面来说, PHP的单例的确有点让各位失望. 但是单例仅仅只有这个功能和应用吗? 答案是否定的,我们一起来看看。
1. php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 在使用面向对象的方式开发时(废话), 如果使用单例模式, 则可以避免大量的new 操作消耗的资源。
2. 如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现. 这个可以参看zend framework的FrontController部分。
3. 在一次页面请求中, 便于进行调试, 因为所有的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输出日志,从而避免到处var_dump, echo。
* 单例模式举例,其要点如下:
*
* 1. $_instance 必须声明为静态的私有变量
* 2. 构造函数和克隆函数必须声明为私有的,这是为了防止外部程序new 类从而失去单例模式的意义
* 3. getInstance()方法必须声明为公有的,必须调用此方法以返回唯一实例的一个引用
* 4. ::操作符只能访问静态变量或静态函数
* 5. PHP的单例模式是相对而言的,因为PHP的解释运行机制使得每个PHP页面被解释执行后,所有的相关资源都会被回收。
* 也就是说,PHP在语言级别上没有办法让某个对象常驻内存。在PHP中,所有的变量都是页面级的,无论是全局变量, 还是类的静态成员,都会在页面执行完毕后被清空,结果会重新建立新的对象,这样也就完全失去了Singleton的意义。
* 不过,在实际应用中同一个页面中可能会存在多个业务逻辑,这时单例模式就起到了很重要的作用,有效的避免了重复 new 对象(注: new 对象会消耗内存资源)这么一个行为,所以我们说PHP的单例模式是相对而言的。
js:
<script>
var a=Array(1,2,3,100,200,60,50);
a.sort(function(a,b){
if(a<b){return 1 //a<b return 1从大到小的排序
} else{
return 0
}
})
alert(a);
</script>
PHP:方法一:
<?php
$a=array(1,2,3,100,200,60,50);
usort($a,function($a,$b){
if($a<$b){
return 1; //a<b return 1从大到小的排序
} else{
return 0;
}
});
print_r($a);
?>
PHP方法二:
<?php
$a=array(1,2,3,100,200,60,50);
rsort($a);//rsort从大到小排序 ;sort是从小到大
print_r($a);
?>
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。