PHP开发中上传是很常见也是很重要的一点,而PHP上传的大小是被限制的,为了更好的起到PHP上传的速度,我们要修改上传大小限制,好了!我们一起来看看是如何修改PHP上传限制的吧! 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完. 但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行. 这就导致出现 无法打开网页的情况. 这时我们可以修改 max_execution_time 在php.ini里查找 1 max_execution_time 默认是30秒.改为 1 max_execution_time = 0 0表示没有限制 2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。 php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空. 查找 post_max_size .改为 1 post_max_size = 150M 3. 很多人都会改了第二步.但上传文件时最大仍然为 8M. 为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。 查找upload_max_filesize,默认为8M改为 1 upload_max_filesize = 100M 另外要说明的是,post_max_size 大于 upload_max_filesize 为佳. 更多上传文章: 在PHP程序中,常常会遇到这种问题,上传附件时明明成功上传了很多附件,如图片等,但实际上只存在20个附件,或者直接报错无法上传。 如何突破php上传多个文件的max_file_uploads限制难题 本篇文章主要介绍了禅道附件大小的限制、PHP上传文件大小限制,对于PHP教程有兴趣的同学可以参考一下。 禅道附件大小的限制、PHP上传文件大小限制 以上就是PHP上传大小限制修改的详细内容,更多请关注php中文网其它相关文章! from:http://www.php.cn/php-weizijiaocheng-387028.html
View Details00×0需要的下载地址以及当前环境 操作系统:Windows 2008 R2 – 64位 08r2-64位系统edk资源 Tips:迅雷打开 Mysql5.7 php7.0 00×1 php版本中Non-Thread-safe与Thread-safe版本选择 如果是采用IIS+ISAPI的话,就是使用TS版本。 如果是采用IIS+FastCGI的话,就使用NTS版本。 01×0 配置PHP
1 2 3 |
1.服务器管理器->添加角色 |
1 |
1
1 2 3 |
2.选择IIS服务器 |
1 |
1
1 2 3 4 |
3.选择应用程序 在选择下一步之后,会看到如下选择,我们选择CGI,然后一路安装 |
1 |
1 2 如果需要用到asp则勾选asp,如果需要用shtm需要开启在服务器端的包含文件。安装sqlserver一定要勾选 asp.net.。net扩展性。需要运行php则要安装cgi
1 2 3 |
安装好IIS之后,需要进行一个测试,在浏览器地址栏中输入“http://localhost/”,如果出现IIS7的欢迎页则说明正常。接下来需要配置一个新网站,首先打开IIS管理器(“开始”→“所有程序”→“管理工具”→“internet 信息服务(IIS)管理器”)。 |
1 |
1 安全权限配置: 添加好网站后,打开网站目录,新建一个index.html,然后用记事本打开,输入“hello dede”做测试。 还需要配置权限,回到IIS管理器中,在网站“localhost”上右键,点击“编辑权限”,进入后点击“安全”选项卡,再点击其中的“编辑”, 打开“编辑”窗口后点击“添加”按钮。添加一个“IUSR”到权限用户列表中,然后为其勾选除了“完全控制”之外的权限。然后点击“确定”。
1 2 3 4 |
4.配置PHP PHP从5.3开始,已经不支持ISAPI模式了.所以我们使用的是FASTCGI模式 |
1 |
1 2
1 2 3 |
双击左边“起始页”下面的计算机名称,找到中间的IIS部分,打开“FastCGI设置” |
1 |
1 点击编辑,更改监视对文件所做的更改,环境变量,点旁边的安装.点“添加”, Name:PHP_FCGI_MAX_REQUESTS Value:10000 确定 哦了../ “php-cgi.exe – FastCGI 进程意外退出” 的解决办法 服务器windows2008上面配置PHP时。 IIS7.0显示正常,但phpinfo.php显示不正常,出现“HTTP 错误 500.0 – Internal Server Error C:\PHPServer\PHP\php-cgi.exe – FastCGI 进程意外退出”的提示。 双击PHP目录下的文件php.exe则出现“msvcr110.dll”丢失的提示。 到Microsoft网站下载“Microsoft Visual C++ 2012 Redistributable”软件包安装,注意86及64都安装,安装好后,再双击PHP目录下的文件php.exe,则就不提示“msvcr110.dll”丢失了,一切正常。 网站测试http://localhost/phpinfo.php也出现了“PHP Version 7.1.x”版本的信息提示。说明支持PHP了。 文件下载地址: http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 from:https://blog.csdn.net/pythonniu/article/details/71038365
View Details$stringVarGlo="global variant";//全局变量 textGlobalVariant1(); //方法一使用$GLOBALS["全局变量名"] echo $stringVarGlo,"<br/>"; textGlobalVariant2(); //方法二使用global 变量名声明引入; echo $stringVarGlo,"<br/>"; function textGlobalVariant1(){ $varGlob="textGlobalVariant1"; $GLOBALS["stringVarGlo"].=$varGlob; //使用$GLOBALS["全局变量名"] } function textGlobalVariant2(){ global $stringVarGlo; //使用global 变量名声明引入; $varGlob="textGlobalVariant2"; $stringVarGlo.=$varGlob; } 输出 global varianttextGlobalVariant1 global varianttextGlobalVariant1textGlobalVariant2 ——————— 作者:岁月绵长 来源:CSDN 原文:https://blog.csdn.net/s1e1s/article/details/46833307 版权声明:本文为博主原创文章,转载请附上博文链接!
View Details需要设置的几处地方为: Window->Preferences->General->Workspace 面板Text file encoding 选择UTF-8 Window->Preferences->General ->Content Types->Text->JSP 最下面设置为UTF-8 Window->Preferences->Web->JSP Files 面板选择 ISO 10646/Unicode(UTF-8) 下面的图给出了具体的操作步骤: 第一步: 第二步: 当然还可以修改Java Source File、XML、Java Properties File等,在下面的Default encoding输入框中输入UTF-8,并点Update生效 如下图所示: 第三步: 通过上面的几个步骤,就可以完成设置编码,方便开发使用了。 from:https://blog.csdn.net/w_y_l_/article/details/82697503
View Details1.php.ini配置 eaccelerator.shm_only="0" zend_extension ="D:\xampp\php\ext\php_xdebug.dll" ;载入Xdebug [xdebug] ;开启远程调试 xdebug.remote_enable = 1 xdebug.profiler_enable = off xdebug.profiler_enable_trigger = off xdebug.profiler_output_name =cachegrind.out.%t.%p xdebug.profiler_output_dir ="D:\xampp\tmp" xdebug.show_local_vars=0 ;开启自动跟踪 xdebug.auto_trace = 1 ;开启异常跟踪 xdebug.show_exception_trace = 1 ;开启异常跟踪 xdebug.remote_autostart = 1 ;收集变量 xdebug.collect_vars = 1 ;收集参数 xdebug.collect_params = 1 ;trace输出路径 xdebug.trace_output_dir ="D:\xampp\tmp" ;以下三个分别是主机、端口、句柄 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp" 2.eclipse配置修改 2.1. 位置:windows->Preferences 2. 2 配置Executables(配置完成后,若设置断点能正常让XDebug运行,则无需继续设置其他选项) 2.3.配置 PHP Debug 将Server Settings下的Debugger设为XDebug 2.4.配置Debuggers 2.5配置workbench Options from:https://blog.csdn.net/user1218/article/details/51135753
View Details数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B,B+,B*树 LSM 树 BitSet 常用算法 排序、查找算法 选择排序 冒泡排序 插入排序 快速排序 归并排序 希尔排序 堆排序 计数排序 桶排序 基数排序 二分查找 Java 中的排序工具 布隆过滤器 字符串比较 KMP 算法 深度优先、广度优先 贪心算法 回溯算法 剪枝算法 动态规划 朴素贝叶斯 推荐算法 最小生成树算法 最短路径算法 并发 Java 并发 多线程 线程安全 一致性、事务 事务 ACID 特性 事务的隔离级别 MVCC 锁 Java中的锁和同步类 公平锁 & 非公平锁 悲观锁 乐观锁 & CAS ABA 问题 CopyOnWrite容器 RingBuffer 可重入锁 & 不可重入锁 互斥锁 & 共享锁 死锁 操作系统 计算机原理 CPU 多级缓存 进程 线程 协程 Linux 设计模式 设计模式的六大原则 23种常见设计模式 应用场景 单例模式 […]
View Details英国安全公司 Secarma 的研究主管 Sam Thomas 本月在 Black Hat 和 BSides 安全会议上展示了 PHP 编程语言的安全漏洞,并指出该漏洞影响了所有接受用户资料的 PHP 应用程序和库,包括 WordPress 等内容管理系统(CMS),并将允许远程程序攻击。 序列化(Serialization)与反序列化(Deserialization)是所有编程语言都具备的功能,序列化将对象转换为字符串,以将数据迁移到不同服务器,服务或应用程序上,然后通过反序列将字符串还原到对象。 安全研究员 Stefan Essar 在 2009 年就透露了 PHP 中反序列化黑客控制的数据带来的风险,而相关的漏洞不仅存在于 PHP 中,还存在于其他编程语言中。 Thomas 公布的是 PHP 的新攻击技术,可用于各种场景,例如 XML External Entity(XEE)漏洞或服务器端伪造请求(SSFR)漏洞等。 Thomas 表示,过去外界认为 XXE 漏洞带来的最大问题是信息外泄,但现在可出发程序执行。相关攻击分为两个阶段。 首先,将包含恶意对象的 Phar 存档上传到攻击目标的本地文件系统,然后触发一个基于 phar:// 的文件操作,就可能导致恶意程序执行。 Thomas 已利用 PHP 的反序列化程序成功攻击了 WordPress 与 Typo3 内容管理平台,以及 Contao 所采用的 TCPDF 库。 from:https://www.oschina.net/news/99165/php-unserialization-vulnerability
View Details前言: 1.少安装PHP模块, 费内存 2.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)(我是修改/etc/rc.local,加入ulimit -SHn 51200的)
1 2 3 |
echo `ulimit -HSn 65536` >> /etc/profile echo `ulimit -HSn 65536` >> /etc/rc.local source /etc/profile |
如果ulimit -n数量依旧不多(即上面配置没生效)的话, 可以在 /etc/security/limits.conf 文件最后加上
1 2 |
* soft nofile 51200 * hard nofile 51200 |
1.与Nginx使用Unix域Socket通信(Nginx和php-fpm在同一台服务器) Unix域Socket因为不走网络,的确可以提高Nginx和php-fpm通信的性能,但在高并发时会不稳定。 Nginx会频繁报错:connect() to unix:/dev/shm/php-fcgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream 可以通过下面两种方式提高稳定性: 1)调高nginx和php-fpm中的backlog 配置方法为:在nginx配置文件中这个域名的server下,在listen 80后面添加default backlog=1024。 同时配置php-fpm.conf中的listen.backlog为1024,默认为128。 2)增加sock文件和php-fpm实例数 再新建一个sock文件,在Nginx中通过upstream模块将请求负载均衡到两个sock文件背后的两套php-fpm实例上。 2.php-fpm参数调优 pm = dynamic; 表示使用哪种进程数量管理方式 dynamic表示php-fpm进程数是动态的,最开始是pm.start_servers指定的数量,如果请求较多,则会自动增加,保证空闲的进程数不小于pm.min_spare_servers,如果进程数较多,也会进行相应清理,保证多余的进程数不多于pm.max_spare_servers static表示php-fpm进程数是静态的, 进程数自始至终都是pm.max_children指定的数量,不再增加或减少 pm.max_children = 300; 静态方式下开启的php-fpm进程数量 pm.start_servers = 20; 动态方式下的起始php-fpm进程数量 pm.min_spare_servers = 5; 动态方式下的最小php-fpm进程数量 pm.max_spare_servers = 35; 动态方式下的最大php-fpm进程数量 如果pm为static, 那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程 如果pm为dynamic, 那么pm.max_children参数失效,后面3个参数生效。系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的需求动态在pm.min_spare_servers和pm.max_spare_servers之间调整php-fpm进程数 那么,对于我们的服务器,选择哪种pm方式比较好呢?事实上,跟Apache一样,运行的PHP程序在执行完成后,或多或少会有内存泄露的问题。这也是为什么开始的时候一个php-fpm进程只占用3M左右内存,运行一段时间后就会上升到20-30M的原因了。 对于内存大的服务器(比如8G以上)来说,指定静态的max_children实际上更为妥当,因为这样不需要进行额外的进程数目控制,会提高效率。因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。数量也可以根据 内存/30M 得到,比如8GB内存可以设置为100,那么php-fpm耗费的内存就能控制在 2G-3G的样子。如果内存稍微小点,比如1G,那么指定静态的进程数量更加有利于服务器的稳定。这样可以保证php-fpm只获取够用的内存,将不多的内存分配给其他应用去使用,会使系统的运行更加畅通。 对于小内存的服务器来说,比如256M内存的VPS,即使按照一个20M的内存量来算,10个php-cgi进程就将耗掉200M内存,那系统的崩溃就应该很正常了。因此应该尽量地控制php-fpm进程的数量,大体明确其他应用占用的内存后,给它指定一个静态的小数量,会让系统更加平稳一些。或者使用动态方式,因为动态方式会结束掉多余的进程,可以回收释放一些内存,所以推荐在内存较少的服务器或VPS上使用。具体最大数量根据 内存/20M 得到。比如说512M的VPS,建议pm.max_spare_servers设置为20。至于pm.min_spare_servers,则建议根据服务器的负载情况来设置,比较合适的值在5~10之间。 在4G内存的服务器上200就可以(我的1G测试机,开64个是最好的,建议使用压力测试获取最佳值) pm.max_requests = 10240; nginx php-fpm配置过程中最大问题是内泄漏出问题:服务器的负载不大,但是内存占用迅速增加,很快吃掉内存接着开始吃交换分区,系统很快挂掉!其实根据官方的介绍,php-cgi不存在内存泄漏,每个请求完成后php-cgi会回收内存,但是不会释放给操作系统,这样就会导致大量内存被php-cgi占用。 官方的解决办法是降低PHP_FCGI_MAX_REQUESTS的值,如果用的是php-fpm,对应的php-fpm.conf中的就是max_requests,该值的意思是发送多少个请求后会重启该线程,我们需要适当降低这个值,用以让php-fpm自动的释放内存,不是大部分网上说的51200等等,实际上还有另一个跟它有关联的值max_children,这个是每次php-fpm会建立多少个进程,这样实际上的内存消耗是max_children*max_requests*每个请求使用内存,根据这个我们可以预估一下内存的使用情况,就不用再写脚本去kill了。 request_terminate_timeout = 30; 最大执行时间, 在php.ini中也可以进行配置(max_execution_time) request_slowlog_timeout = 2; 开启慢日志 slowlog = log/$pool.log.slow; 慢日志路径 rlimit_files = 1024; 增加php-fpm打开文件描述符的限制 3.php-fpm的高CPU使用率排查方法 1)使用top命令, 直接执行top命令后,输入1就可以看到各个核心的CPU使用率。而且通过top […]
View Details注:laravel 查询返回行的都是 php 的 stdClass 对象实例,不是数组!!!! 1)查询多行(get)
1 |
DB::table('table_name')->get(); |
带偏移和限制的查询(skip take 或 offset limit)(两种用法是一样的)
1 2 3 4 5 |
//skip take DB::table('table_name')->skip(10)->take(10)->get(); //offset limit DB::table('table_name')->offset(20)->limit(10)->get(); |
2)查询一行(first)
1 |
DB::table('table_name')->first(); |
1 |
DB::table('table_name')->find(1); |
PS:find方法也可以查多行,它可以这样玩 DB::table('table_name')->find([1,2,3,4]); 3)直接查询一个字段(value)
1 |
DB::table('table_name')->where('name','Tiac')->value('email'); |
4)查询一列(pluck)
1 |
DB::table('table_name')->where('brand_id','100')->pluck('goods_id'); |
5)块组结果集(chunk) 使用情景: 假设我们需要查询 1 百万的数据,并对其做处理,一次性查询 1 百万并统一处理势必会对数据产生不小的压力,消耗大量的服务器资源,有没有一种更做优的处理方法? 将 1 百万的查询分成 1000 次 1000 条记录的查询的块查询怎样?? 这个 chunk的作用,chunk方法接口一个闭包函数做回调处理
1 2 3 4 5 |
DB::table('users')->orderBy('id')->chunk(1000, function($users) { foreach ($users as $user) { // } }); |
PS:上面只是举例,chunk 貌似不能和 limit 一起用,chunk 默认情况下一次性处理整张表的数据,不过我可以通过自己加判断用 return false 跳出 chunk 操作 6)聚合函数(count max min avg sum 等等)
1 |
DB::table('table_name')->count(); |
PS:其他聚合函数的使用方法一样的,不一一举例了 7)where 条件字句 这个比较多,懒得写了,想看的直接到 laravel 学院看吧,传送门:http://laravelacademy.org/post/6140.html#ipt_kb_toc_6140_8 (where, orWhere, whereNUll, whereIn, whereNotIn, whereBetween, whereNotBetween, whereDate, whereYear, whereMonth, whereDay 等等) 8)orderBy 排序字句
1 |
DB::table('table_name')->orderBy('id','desc')->get(); |
PS:如果想要返回随机的查询结果集,可以使用 inRandomOrder 子句 […]
View Details
1 2 3 4 |
$user_info = DB::table('usermetas') ->select('browser', DB::raw('count(*) as total')) ->groupBy('browser') ->get(); |
from:https://stackoverflow.com/questions/18533080/laravel-eloquent-groupby-and-also-return-count-of-each-group
View Details