php opcache 配置

系统安装的是php5.5 自带opcache

修改/usr/local/php/etc/php.ini 文件,保存后重启php

配置参数:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
配置参数说明:
名字 默认 可修改范围 含义
opcache.enable “1” PHP_INI_ALL 是否启用opcache
opcache.enable_cli “0” PHP_INI_SYSTEM 是否在CLI(即命令行时)启用opcache
opcache.memory_consumption “64” PHP_INI_SYSTEM 为opcache分配多少共享内存,单位M
opcache.interned_strings_buffer “4” PHP_INI_SYSTEM interned string的内存大小
opcache.max_accelerated_files “2000” PHP_INI_SYSTEM 最大缓存的文件数目。

实际上这个值会使用第一个大于你配置的数字的下列素数

{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 },

如你将该值指定为400,则实际上该值为463.

opcache.max_wasted_percentage “5” PHP_INI_SYSTEM
opcache.use_cwd “1” PHP_INI_SYSTEM 如果置为1,则将当前路径加入到文件key中,

以避免可能产生的同文件名的文件key冲突

opcache.validate_timestamps “1” PHP_INI_ALL 如果置为1,则OPCACHE会自动检测文件的时间戳

(检测周期为revalidate_freq),

并根据文件的时间戳来更新opcode,如果置为0,

则只能手动去重启opcache或

重启webserver以使更新后的php文件生效

opcache.revalidate_freq “2” PHP_INI_ALL opcache自动检测文件是否更新的周期,单位秒。

如果是0,则每次请求时opcache都要进行检测。

当validate_timestamps为0时,本指令无效。

opcache.revalidate_path “0” PHP_INI_ALL
opcache.save_comments “1” PHP_INI_SYSTEM 是否保存文件中的注释
opcache.load_comments “1” PHP_INI_ALL 是否load comments,与save_comments联合起来使用,

如果该值为0,则即使save_comments为1,

那么php脚本中的comments也是不使用的

opcache.fast_shutdown “0” PHP_INI_SYSTEM 是否打开快速关闭,

打开时可使php在request shutdown时回收内存快

opcache.enable_file_override “0” PHP_INI_SYSTEM 如果置为1,则每次调用file_exist() is_file() is_readable()函数时,

opcache将要检查该文件是否被cache了,

这样增加了检查存在性和可读性的开销,

但避免了当validate_timestamps为disable时返回错误文件状态的风险。

opcache.optimization_level “0xffffffff” PHP_INI_SYSTEM 运行时控制优化的掩码(干什么的?)
opcache.inherited_hack “1” PHP_INI_SYSTEM 5.3以前使用。5.3后废弃
opcache.dups_fix “0” PHP_INI_ALL 为解决“cannot redecllare class” 时,可将其置为1
opcache.blacklist_filename “” PHP_INI_SYSTEM 设置黑名单文件,符合黑名单文件中定义的php文件将不被opcache。黑名单文件的例子如下:

; Matches a specific file.
/var/www/broken.php
; A prefix that matches all files starting with x.
/var/www/x
; A wildcard match.
/var/www/*-broken.php
一行为一条规则,支持通配符,注释以分号开头
opcache.max_file_size “0” PHP_INI_SYSTEM 被cache的文件的最大size,单位bytes。0表示不限
opcache.consistency_checks “0” PHP_INI_ALL 如果置为N,N非零,则opcache会每N个请求核实一下cache的检验和。

这会损害性能,应该只在debug时使用

opcache.force_restart_timeout “180” PHP_INI_SYSTEM 如果opcache处于非active状态,当N秒后opcache将自动重启
opcache.error_log “” PHP_INI_SYSTEM opcache自身的errorlog文件路径,为空时则使用stderr
opcache.log_verbosity_level “1” PHP_INI_SYSTEM 日志记录level,默认只有fatal error和error
opcache.preferred_memory_model “” PHP_INI_SYSTEM opcache首选使用的内存模型,为空时会选择最适当的模型。

常用的有,mmap shm posix 和win32

opcache.protect_memory “0” PHP_INI_SYSTEM 运行php脚本时保护共享内存防止意外的写入。

只对debug时有用。

opcache.mmap_base NULL PHP_INI_SYSTEM

 

linux ubuntu 16.04禁用ipv6功能

打开文件:

/etc/sysctl.d/99-sysctl.conf

在最后追加如下内容:

net.ipv6.conf.all.disable_ipv6 = 1  
net.ipv6.conf.default.disable_ipv6 = 1  
net.ipv6.conf.lo.disable_ipv6 = 1  

保存后执行如下命令更新配置:

sudo sysctl -p

如果需要恢复,只要把那三条删除掉,再重新执行更新命令即可。

 

linux ubuntu系统 apt-get更新错误

执行命令:apt-get update

提示:0% [Connecting to archive.ubuntu.com (2001:67c:1360:8001::17)] [Connecting to s

原因:这个个是ubuntu系统默认为ipv6引起,可以使用命令把apt改为ipv4链接

命令:apt-get -o Acquire::ForceIPv4=true update

lnmp 支持THINKPHP设置方法

1.修改php.ini文件支持pathinfo模式

php配置文件:/usr/local/php/etc/php.ini

找到:cgi.fix_pathinfo=0
更改为:cgi.fix_pathinfo=1

重启nginx:

/root/lnmp restart

2.修改对应需要支持网站vhost文件:

地址:/usr/local/nginx/conf/vhost/

原文件 这块注释或删除掉:

#location ~ .*\.(php|php5)?$
		#	{
		#		try_files $uri =404;
		#		fastcgi_pass  unix:/tmp/php-cgi.sock;
		#		fastcgi_index index.php;
		#		include fcgi.conf;
		#	}

替换为:

location ~ \.php {  
                    #fastcgi_pass 127.0.0.1:9000;   
                    #fastcgi_pass unix:/dev/shm/php-cgi.sock;   
                    fastcgi_pass  unix:/tmp/php-cgi.sock;  
                    fastcgi_index index.php;  
                    include fastcgi.conf;  
                    set $real_script_name $fastcgi_script_name;  
                    if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {  
                    set $real_script_name $1;  
                    set $path_info $2;  
                }  
                    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;  
                    fastcgi_param SCRIPT_NAME $real_script_name;  
                    fastcgi_param PATH_INFO $path_info;  
                }  	
		location / {  
					if (!-e $request_filename){  
					rewrite ^/(.*)$ /index.php?s=/$1 last;  
        }  
    }  

保存后测试正确性:

/usr/local/nginx/sbin/nginx -t

平滑重启nginx:

/usr/local/nginx/sbin/nginx -s reload

Linux服务器空间占用查看方法

1.可能是eAccelerator缓存文件占用

如果服务器有开启缓存功能,那么在使用一段时间后eAccelerator将会占用很多硬盘空间,这时需要一个eAccelerator面板来清空缓存

解决方法:

下载并解压control.php文件

放在/home/wwwroot/目录

使用ip/control.php登陆

账号是:admin 密码:eAccelerator

下面三个都是清除缓存功能可以一个一个试试:

2.也有可能是clientmqueue占用 目录地址:/var/spool/clientmqueue

先使用df -T 看看挂载的哪个硬盘满了,如果是启动盘,那就有可能是这个文件目录

再到启动盘根目录使用 du -sh * 查看所有目录大小,判断出是哪个目录出的问题。

如果是clientmqueue目录占用可以使用如下命令: ls|xargs rm -f

来清除目录下所有文件。

在clientmqueue目录占用硬盘的原因是定时任务产生日志造成的。

解决方法:

进入定时任务目录:

cd /var/spool/cron

查看目录下有哪些用户

使用如果下命令修改:

crontab -u username -e

在打开的页面可以使用insert来修改,

在用户的每一条定时任务后加入以下代码:

> /dev/null 2>&1

例如:

ls -l / > /dev/null 2>&1

其中:

> 代表重定向错误

2>&1 代表把错误重定向输出要送到的地方

> /dev/null 2>&1 代表把命令的执行结果抛弃,同时把产生的错误也抛弃。

phpmyadmin 修改管理目录,增加安全

为了服务器安全,一般需要将管理目录改名

1.将管理目录改名,可以使用winscp 或 mv 命令

mv olddir newdir

2.改名后需要conf配置文件,并重启nginx

vi /usr/local/nginx/conf/vhost/域名.conf

/usr/local/nginx/sbin/nginx -t

/usr/local/nginx/sbin/nginx -s reload

3.修改目录下的user.ini文件中的管理目录名

chattr -i .user.ini

vi .user.ini

chattr +i .user.ini

 

lnmp 在修改文件目录后网站无法正常访问解决办法

修改Lnmp 目录后页面打开显示:

No input file specified.

原因:

LNMP 跨目录保护提示。

修改文件目录后还需要修改目录下的 .user.ini 文件。此文件是隐藏文件,在winscp下无法查看,只能使用PUTTY来打开使用如下修改:

1.去掉.user.ini的隐藏属性

chattr -i .user.ini

2.修改.user.ini的目录内容

vi .user.ini

3.增加.user.ini的隐藏属性

chattr +i .user.ini

linux 删除隐藏文件

如果使用rm 目录删除不掉,或不允许操作,原因可能是目录下存在隐藏文件

删除方法:

1.ll -a  查看目录下所有文件,包含隐藏文件

2.lsattr 文件名   查看文件有什么以属性

3.chattr -R -i 文件名  删除文件属性, i是属性,可以替换删除

4.rm -rf 文件名 直接删除文件

pptp 链接出现619错误 解决方法

1.可能是电脑或路由问题,导致临时网络故障,可以重启路由试试

2.清除DNS缓存,使用 ipconfig/flushdns, 尝试使用一个另一个账号登陆试试。

3.有可能是路由中设置了不允许PPTP穿透,需要到路由器界面把设置打开。

4.PPTP链接需要TCP1723和47端口支持,可以在电脑防火墙设置中,把这两个端口加入到例外。这个设置后不需要重启电脑。

5.有些线路只支持fms-chap v2 加密协议,这个需要在VPN的安全设置中的高级自定义设置中打开microsoft chap 版本。

6.ping vpn服务器IP 看看是否能正常PING通,如果可以PING通,再使用telnet看看链接服务器端口是否成功,两个端口1723和47,有一个可以链接就可以:

telnet VPN服务器IP 端口