约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 一,php-fpm的启动参数 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t #启动php-fpm /usr/local/php/sbin/php-fpm /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf #关闭php-fpm kill -INT `cat /usr/local/php/var/run/php-fpm.pid` #重启php-fpm kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` 二,php-fpm.conf重要参数详解 pid = run/php-fpm.pid #pid设置,默认在安装目录中的var/run/php-fpm.pid,建议开启 error_log = log/php-fpm.log #错误日志,默认在安装目录中的var/log/php-fpm.log log_level = notice #错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notice(一般重要信息), debug(调试信息). 默认: notice. emergency_restart_threshold = 60 emergency_restart_interval = 60s #表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会优雅重启。这两个选项一般保持默认值。 process_control_timeout = 0 #设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0. daemonize = yes #后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。 listen = 127.0.0.1:9000 #fpm监听端口,即nginx中php处理的地址,一般默认值即可。可用格式为: 'ip:port', 'port', '/path/to/unix/socket'. 每个进程池都需要设置. listen.backlog = -1 #backlog数,-1表示无限制,由操作系统决定,此行注释掉就行。backlog含义参考:http://www.3gyou.cc/?p=41 listen.allowed_clients = 127.0.0.1 #允许访问FastCGI进程的IP,设置any为不限制IP,如果要设置其他主机的nginx也能访问这台FPM进程,listen处要设置成本地可被访问的IP。默认值是any。每个地址是用逗号分隔. 如果没有设置或者为空,则允许任何服务器请求连接 listen.owner = www listen.group = www listen.mode = 0666 #unix socket设置选项,如果使用tcp方式访问,这里注释即可。 user = www group = www #启动进程的帐户和组 pm = dynamic #对于专用服务器,pm可以设置为static。 #如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。如果选择dynamic,则由下开参数决定: pm.max_children...
1.别的先不管,先top看一下cpu、ram、swap哪个比较紧张。 由上图分析,可以看出共有602个进程,其中有601个进程休眠了。这好像有点不对劲,内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个。除了这些,剩下的只有php-fpm管理的php-cgi,难道是…? CPU显示,CPU压力并不大,可以说没有压力。我们再看内存使用概要,发现4G的内存,消耗得所剩余无几(free+buffers), 95%以上的内存都已分配。交互空间使用情况,我们暂时不去关心。指令top还列出了占用资源最多的进程,运行时间最久(Time+)的mysqld(约 2小时)占用资源并不是最多。另外,再看php-cgi,单个php-cgi占用的内存也不算多。所以,可以大胆地猜想:服务器内存资源比较紧张,并没有被某个进程占用大量内存,有可能被某些挂起的进程占着内存没有释放。通过free进一步监控内存使用情况,验证我们的想法。 2.指令free,了解RAM资源使用情况。当然,你也可以查看文件/proc/meminfo 我们先来看Mem统计信息,total表示物理内存总量,约4G。used,表示已分配内存,分配了并不表示使用了,包括 (buffer&cached)。free指未分配的内存,buffers与cached表示分配了但还没有被使用的内存。第二行 (buffers/cache)的,used表示真正被使用了内存,由第一行的(used-buffer-cached)得到,free则表示还没有被使用的内存,由第一行的(free+buffer+cached)得到。Swap行则表示内存交换使用情况,少量的(不频繁地)swpd,是不会影响服务器性能的,因为系统需要将V类型的内存页面交换出去或者调整了buffer与cached的大小。但是频繁地swpd,则有可能意味着服务器物理内存不足,小于指定的swap额定值,需要换出内存页。 查看free结果的时候,我们主要查看第二行。一眼就能看出4G的内存,其中有3898M内存被用了,还有49M内存没有,都快用完了。这也证实了我们第一步的猜想,内存被用完。这里,我们进一步猜想,内存空间严重不足的情况下,进程会被blocked,系统会不断地将不用的数据换出so,将要用的数据读入si。我们能通过vmstat进一步验证,我们的这个猜想。 3.指令vmstat监控内存使用情况 作为对内存监控,我们比较关心swpd、free、si、so。一般系统不繁忙的状态下,我们看到swpd,so的值不会持续很高,经常为0。这里,我们看到swpd值为1.5G,以及free值很小,再一次表明物理内存不足。其中si报告了每秒从swap区移入到物理内存的内存总量,so报告了每秒从物理内存移出到swap区的内存总量。当然,si有时较大,并不要过份的焦虑,经常碰到一个程序需要较大内存来读写媒体文件时,si值就会变大。反倒是 so,它通常是一个内存紧缺的一个信号,如果长时间这个值一直保持较大的话,则很有可能内存不够,小额波动,可以不用理会。接下来,可以通过ps找出消耗内存的元凶。 4.指令ps找出消耗内存的元凶 [root@localhost ~]# ps -A –sort -rss -o comm,pmem,pcpu |uniq -c |head -15 1 COMMAND %MEM %CPU 1 mysqld 0.6 0.0 503 php-cgi 0.3 0.0 5 php-cgi 0.2 0.0 1 php-cgi 0.1 0.0 1 php-cgi 0.0 0.0 1 memcached 0.0 0.0 1 sshd 0.0 0.0 1 nginx 0.0 0.0 1 sshd 0.0 0.0 1 nginx 0.0 0.0 2 bash 0.0 0.0 3 nginx 0.0 0.0 1 sshd 0.0 0.0 1 nginx 0.0 0.0 指令ps比较常用,也比较简单。上面报告结果,我们一眼就可以命中php-cgi这个进程。虽然单个php-cgi占用内存并不算太大,但是503 个php-cgi进程,就有点恐怖了。几乎占尽了全部内存(503*0.3%)。我们可以猜想,php-cgi由php-fpm管理,是不是可以php- fpm的某个参数配置不当,导致打开过多的php-cgi进程。 5. 设置php-fpm进程数量管理 通过重新将php-conf.conf的max_children值设置为150,系统内存又恢复到正常使用情况。free、si、so、b均表示内存系统资源正常,没有压力。 php-cgi进程释放的内存并不会被系统立即回收,一个php-cgi大概占用20kb内存(取决于你加载的php extensions)。所以,有必要限制你启动的php-cgi进程数量。那么,这个数量多少合适呢,你可以在服务器高峰期通过top统计出php- cgi数量。也可以像php-fpm建议的那样,通过netstat -np | grep 127.0.0.1:9000来收集数据,通过设置max_children使等待的数量尽量小 6.一个php-cgi占用多少内存 一个php-cgi进程,大概占用多少内存呢,大概是20MB。可以通过pmap指令查看哪些地方占用了内存。所以,尽量不要加载不必要的php扩展模块,可以减少不必要的内存浪费。 [root@localhost etc]# pmap $(pgrep php-cgi |head -1) 6746: /usr/local/php/bin/php-cgi –fpm –fpm-config /usr/local/php/etc/php-fpm.conf 0000000000400000 6680K r-x– /usr/local/php/bin/php-cgi 0000000000c86000...
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折
2024-12-23
如果我使用服务器来存放这些视频,怎么调用呢? 使用以下的代码来插入自己的网站的视频: 代码里面的 http://www.player.com/v.swf 要换成你自己的视频的的地址,即你上传到网站空间上的视频的路径。
[v_notice]现在给很多用户安装了宝塔、但是怕不有攻击、所以安装个安全狗[/v_notice] 使用wget方式下载发布包:wget http://down.safedog.cn/safedog_linux64.tar.gz 安装网站安全狗 在root 帐户下执行以下命令: tar xzvf safedog_linux64.tar.gz(在这里一定要看解压后的路径,否则会无法进入目录,如上图) cd safedog_an_linux64_2.8.17991 chmod +x *.py ./install.py 安装有可能会提示错误: 错误1:Need system command ‘locate’ to install safedog for linux. Installation aborted! 这个问题是缺少搜索命令组件 运行 [v_tips]yum -y install mlocate[/v_tips] 问题2:Need system command ‘lspci’ to install safedog for linux.Installation aborted! 原因是lspci未安装,lspci不能使用,安装记录下。 运行: [v_tips]yum -y install pciutils[/v_tips] 问题3:need system command ‘lsof’ to install safedog for linux 原因是:找不到lsof 运行: [v_tips]yum install lsof[/v_tips] 4. 软件运行 步骤 1:打开安全狗官网 http://www.safedog.cn,进行服云账号注册登录。 步骤 2:在客户端进行命令行方式:输入命令 sdcloud –u 用户名;然后提示输入密码 步骤 3:客户端加入服云后,可进行命令行功能操作(详细见第 6 章节); 使用: service safedog status 查看安全狗服务; service safedog start 启动安全狗服务; service safedog stop 停止安全狗服务; sdstart 重启安全狗服务。 [v_error]重要提醒:[/v_error] 软件的防火墙等功能依赖于 iptables,在使用软件时,请勿随意修改 iptables, 否则可能造成软件功能异常。建议修改 iptables 之后,执行 sdstart 重启安全软件服 务。
很多朋友网站访问量稍微增加点、就突然报错,出现数据库挂的情况。一般都是mysql服务设置不当,导致mysql连接数量超过限定值,或者应用程序设计有问题,导致大量休眠连接不能及时释放。 mysql -u root -p 执行指令 show processlist; 查看当前连接数量。 如果进程过多,或存在大量超时的休眠sleep连接,编辑/etc/mysql/my.cnf vim /etc/mysql/my.cnf 在[mysqld]字段处,添加,或去掉注释 max_connections = 500 #增加mysql连接数 wait_timeout = 10 #断开超过10秒的连接 有些没有经过仔细设计,或者需要启用服务器上特定模块的插件,很可能会导致这类的问题。
[v_tips]很多朋友解析域名,一直本地无法打开、下面就用到一个命令了。清理本地DNS[/v_tips] 在打开的窗口中输入 ipconfig/flushdns 按回车键。 此时显示 “已成功刷新DNS解析缓存”
宝塔的liunx面板确实是我用过的至今为止最好的面板,简化很多操作,不过在使用做也会遇到一些坑,有时候会出现打不开的情况。 宝塔各种命令操作 https://www.bt.cn/btcode.html 1、重启服务器后面板打不开,网站不能访问,这个问题一般是掉盘引起的,解决方法是一般是用下面的命令修复下 wget -O update.sh http://download.bt.cn/install/update.sh && sh update.sh 但是有时候修复了也不行,这主要就事挂载的数据盘的路径和宝塔不一样,宝塔默认必须挂载在www下。我就遇到一个奇葩问题,用景安的云主机,重启后网站面板都打不开,修复面板也不行。后来用df -h看了下 挂载的盘变成了home。原来西数服务器重启后数据盘都默认挂载在home下。因此我们要把home改为www,方法是 1、df -h(查看分区情况及数据盘名称) 2、mkdir /www(如果没有www目录就创建,否则此步跳过) 3、umount /home(卸载硬盘已挂载的home目录) 4、mount /dev/sdb1 /www (挂载到www目录) 5、echo "/dev/sdb1 /www ext4 defaults 0 0" >> /etc/fstab 6、mount -a 挂载所有分区 不过景安一般有问题、都有售后给处理了、无需自己操作动手、我是学习。。
IIS7以上版本 1. 安装rewrite组件 2. 找到网站根目录web.config文件,替换一下内容(如果没有此文件可以创建一个); 3.重启IIS测试访问。 APache 版本 如果需要整站跳转,则在网站的配置文件的标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R] 如果对某个目录做https强制跳转,则复制以下代码: RewriteEngine on RewriteBase /yourfolder RewriteCond %{SERVER_PORT} !^443$ #RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R] RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] Nginx版本 在配置80端口的文件里面,写入以下内容即可。 server { listen 80; server_name localhost; rewrite ^(.*)$ https://$host$1 permanent; location / { root html; index index.html index.htm; } 单独页面通用代码段:以下方法较适合指定某一个子页单独https 在需要强制为https的页面上加入以下代码进行处理http–>https 在需要强制为http的页面上加入以下代码进行处理 https–>http PHP页面跳转:添加在网站php页面内 if ($_SERVER["HTTPS"] "on") { $xredir="https://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; header("Location: ".$xredir); } 复制
是因为在php.ini中开启curl扩展这个没开
[v_tips]本文讲的是phpcms v9伪静态规则iis/apache配置方法, phpcms v9伪静态规则 win下IIS 新建一个记事本文件,将文件名改为:httpd.ini。再将以下代码粘贴进去。 代码如下 复制代码 [ISAPI_Rewrite] # 3600 = 1 hour[/v_tips] phpcms v9伪静态规则 win下IIS 新建一个记事本文件,将文件名改为:httpd.ini。再将以下代码粘贴进去。 [ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 RewriteEngine on RewriteRule ^(.*)content-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/index.php?m=content&c=index&a=show&catid=$2&id=$3&page=$4 RewriteRule ^(.*)show-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/index.php?m=content&c=index&a=show&catid=$2&id=$3&page=$4 RewriteRule ^(.*)list-([0-9]+)-([0-9]+).html$ $1/index.php?m=content&c=index&a=lists&catid=$2&page=$3 apache配置 #PHPCMS V9伪静态规则: RewriteEngine on RewriteRule ^content-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3 RewriteRule ^show-([0-9]+)-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=show&catid=$1&id=$2&page=$3 RewriteRule ^list-([0-9]+)-([0-9]+).html index.php?m=content&c=index&a=lists&catid=$1&page=$2
错误出现情形:此错误一般出现在网站搬家到新网站空间报错。 错误原因:web.config文件中定义的php版本路径出错。 原有空间php文件路径: 新空间文件路径: 修改后就能正常使用了
(一)IIS Noinput file specified 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.ini 找到 ; cgi.force_redirect = 1 去掉前面分号,把后面的1改为0 即 cgi.force_redirect = 0 (二)apacheNo input file specified apache No input filespecified,今天是我们配置apache RewriteRule时出现这种问题,解决办法很简单如下 打开.htaccess 在RewriteRule 后面的index.php教程后面添加一个“?” 完整代码如下 .htaccess RewriteEngine on RewriteCond $1 !^(index.php|images|robots.txt) RewriteRule ^(.*)$ /index.php?/$1 [L] 如果是apache服务器出问题,看看是不是的Apache 把 .php 后缀的文件解析哪里有问题了。 总结 Apache 将哪些后缀作为 PHP 解析。例如,让 Apache 把 .php 后缀的文件解析为PHP。可以将任何后缀的文件解析为 PHP,只要在以下语句中加入并用空格分开。这里以添加一个 .phtml 来示例。 AddType application/x-httpd-php .php .phtml 为了将 .phps教程作为 PHP 的源文件进行语法高亮显示,还可以加上: AddType application/x-httpd-php-source .phps 用通常的过程启动 Apache(必须完全停止 Apache 再重新启动,而不是用 HUP 或者USR1 信号使 Apache 重新加载)。 (三)nginx配置遭遇No inputfile specified 虚拟机测试nginx 遭遇 Noinput file specified,多方查找终于找到解决办法 1、 php.ini(/etc/php5/cgi/php.ini)的配置中这两项 cgi.fix_pathinfo=1 (这个是自己添加的) doc_root= 2、nginx配置文件/etc/nginx/sites-available/default中注意以下部分 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include fastcgi_params; } 红色部分路径需要根据你主机主目录的实际情况填写 配置完以上部分,重启一下service nginx restart,应该没问题了 (四)注意检查下网站目录是否有相关用户的写入权限
安装宝塔提示这个错误、一般是DNS问题、或者更换个安装节点 P root@localhost:~ root0104.223.166.114's password: I Last failed login: Tue Jul 17 02:32:19 EDT 2018 from 112.85.42.197 on. ssh :notty IThere were 780 failed login attempts since the last successful login. ILast login: Tue Jul 17 02:19;17 2018 from 125.113.55.4E [rootelocalhost ~]# yum install y wget as wget O install.sh http:/ / download. bt. cn/ install/ install.sh && sh install.shLoaded plugins: fastestmir ror Could not retrieve mirrorlist http: I /mirrorlist. centos .org/ ?release=7sarch=x86_ 64&repo=os error was 14: curl#6 - "Could not resolve host: mirrorlist . centos . org: Unknown error" One of the configured repositories failed (Unknown) , and yum doesn't have enough cached data to continue. At this point the onlysafe thing yum can do is fail. There are...
问题描述:使用TP框架做项目时,在启用REWRITE的伪静态功能的时候,首页可以访问,但是访问其它页面的时候,就提示:“No input file specified.” 原因在于使用的PHP5.6是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误 默认的.htaccess里面的规则: IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] “No input file specified.”,是没有得到有效的文件路径造成的。 修改后的伪静态规则,如下: IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] 仅仅就是在正则结果“/$1”前面多加了一个“?”号,问题也就随之解决了。
现在,很多主题作者都是用 WordPress 多站点网络来做主题演示站,那就遇到一个数据部署的问题,每次都要重新设置一些基本的选项,导入文章和附件等等,实在是麻烦。今天倡萌推荐一个专门解决这个问题的插件 Multisite Cloner ,它可以很方便地将网络中任何一个站点的设置和数据都克隆到另外一个站点,包括设置、文章和其他内容、主题选项和上传的文件等等。 [v_blue]在网络中安装启用 Multisite Cloner 插件以后,在设置界面选择一个站点作为默认站点:[/v_blue] [v_blue]然后在站点列表中,点击站点下的 Clone 即可:[/v_blue] 在插件安装界面搜索 Multisite Cloner 即可在线安装
伪静态是需要服务器支持的,比如mod_rewrite模块,具体可以咨询服务器管理员,另外部分服务器可能不支持中文链接,这个需要注意。 设置方法 进入WordPress后台设置>固定链接,其中第一个“朴素”就是默认的设置,后面几个是WordPress给出的几个可选项,如果都不是你喜欢的链接格式,那么也可以使用最后一个自定义结构。使用自定义结构的话,就需要先了解下有哪些可以设置的参数了。 WordPress官方文档列表如下: %year% 基于文章发布年份,比如2007; %monthnum% 基于文章发布月份,比如05; %day% 基于文章发布当日,比如28; %hour% 基于文章发布小时数,比如15; %minute% 基于文章发布分钟数,比如43; %second% 基于文章发布秒数,比如33; %postname% 基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题; %post_id% 基于文章post_id,比如423; %category% 基于文章分类,子分类会处理成“分类/子分类”这种形式; %author% 基于文章作者名。 将上述参数进行组合,即可得到WordPress的固定链接形式。网上常见的几种设置方法: /%year%/%monthnum%/%day%/%postname%/ /%year%/%monthnum%/%postname%/ /%year%/%monthnum%/%day%/%postname%.html /%year%/%monthnum%/%postname%.html /%category%/%postname%.html /%category%/%post_id% /%postname%.html /%post_id%.html 我们一般使用/%postname%.html或者/%post_id%.html。 设置好了以后,保存即可完成固定链接和伪静态的设置了
1、打开PHP.ini。找到 upload_max_filesize memory_limit post_max_size 这三个参数! (在默认的情况下,php只允许最大的上传数据为2M,也就是2048KB,而极限的最大使用内存memory_limit也仅为128M,Post的最大也为2M) 2、按您的服务器的实际性能配置进行如下改动:(注意:以下是按我的服务器性能和硬件配置进行的更改..) upload_max_filesize = 8M (上传最大极限设定为8M,这个应该足够一般的文件WEB上传了) memory_limit = 512M (因为服务器的内存为2GB,所以这里加到512M不过份吧,呵) post_max_size = 8M (Post数据最大也设置为8MB,这个跟upload_max一样) 备注: 改完后当你在到phpMyadmin的导入命令行时,虽然(有时候可能会仍然显示为:最大限制:2048KB/Max: 2,048KiB);但实际上你已经可以导入不超过8M的MySQL数据库.sql导出的备份文件了! 另,改完php.ini后,别忘了重启一下web服务或者是服务器哟!重启后升效!
快云vps业务:2核CPU、2G内存、4M带宽、100G硬盘 河南多线路 特价499/年 客服QQ:7271895 690624 4582058 微信号:18838889666 tel:18838889666 [v_error]西部数码代理:http://www.sqww.net[/v_error] [v_error]景安代理:http://www.sq9.cn[/v_error] [v_error]阿里云优惠1888元礼包-链接:http://url.cn/5eevCOR ;[/v_error] [v_error]腾讯云新客户无门槛领取总价值高达2775元代金券,每种代金券限量500张,先到先得。 https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=1b60b0938d5b9953242af97303e5d12a&from=console[/v_error] [v_error]景安%20返款优惠链接。 注册链接:http://www.zzidc.com/main/member/initRegister?agentpand=36148 景安购买虚拟主机、vps、云服务器、以后可以找客服 QQ 7271895 690624 索要%20以上返点 [/v_error]