php配置步骤说明

14 篇文章 0 订阅

php线程安全 和 非线程安全 的区别 TS和NTS的区别

TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查

NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

 

我使用Apache+PHP的模式下,一般是把PHP作为一个Module load到apache中,那么以apache父进程-多子进程的工作模式,是需要进行线程安全检查的,所以如果是以这种方式执行php,选择ts版本

 

那么如果是使用fastcgi,比如说用php-fpm管理php执行,则不需要进行线程安全检查,则选择nts版本的php

 

PHP配置步骤

1.将C:\www\tools\php-5.6.29-nts-Win32-VC11-x64\php.ini-production 复制一份,并重命名为php.ini;

2.用记事本打开C:\www\tools\php-5.6.29-nts-Win32-VC11-x64\php.ini将; extension_dir = "ext"修改为 extension_dir = "ext" (去掉extension前面的分号)

3.将;extension=php_mbstring.dll 修改为 extension=php_mbstring.dll(去掉extension前面的分号,这是php多字节字符串扩展) 需要用到的ext都可以开起来

 

extension=php_bz2.dll
extension=php_curl.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_pdo_sqlsrv_55_ts.dll

; The MIBS data available in the PHP distribution must be installed. 
; See http://www.php.net/manual/en/snmp.installation.php 
;extension=php_snmp.dll

;extension=php_soap.dll
;extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
extension=php_xsl.dll

 

其他设置

4.时间 搜索“date.timezone”,找到:;date.timezone = 先去前面的分号再改为 date.timezone = PRC

测试

 

date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海
date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆”
date_default_timezone_set('PRC');//其中PRC为“中华人民共和国”

 5.搜索“cgi.force_redirect” ;cgi.force_redirect = 1 先去前面的分号再改为 cgi.force_redirect = 0

; PHP页面的根路径, 只有非空时有效.
; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root
; 针对安全问题查看文档. 一种替代方案是使用下面的cgi.force_redirect
doc_root =

; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的.
; 没有配置的情况下,PHP会默认打开此项.
; 你可以在这里关闭此项并且自己承担风险
; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.**
; cgi.force_redirect = 1

; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200.
; cgi.nph = 1

; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行,
; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果.

 

6.设置上传文件大小

表单post提交最大内容4G

post_max_size = 4096M

设置最大上传文件大小

 

 

upload_max_filesize = 1024M

  

7.开启代码加速

1、打开php.ini文件

2、找到:[opcache],设置为:

 

[opcache]
; dll地址
zend_extension=php_opcache.dll
; 开关打开
opcache.enable=1
; 开启CLI
opcache.enable_cli=1
; 可用内存, 酌情而定, 单位为:Mb
opcache.memory_consumption=528
; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
opcache.interned_strings_buffer=8
; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=10000
; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒
opcache.revalidate_freq=1
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1
 

8.memcached的配置

Memcached是一个高并发的内存键值对缓存系统,它的主要作用是将数据库查询结果,内容,以及其它一些耗时的计算结果缓存到系统内存中,从而加速Web应用程序的响应速度。

Memcached最开始是作为Linux应用程序被安装在Linux服务器上来使用的,不过自从开源之后,它又被重新编译以适用于Windows环境。Jellycan和Northscale两个站点都提供了Windows的二进制可执行文件下载,下面是下载的地址:

     http://code.jellycan.com/files/memcached-1.2.5-win32-bin.zip

  http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

  http://downloads.northscale.com/memcached-win32-1.4.4-14.zip

  http://downloads.northscale.com/memcached-win64-1.4.4-14.zip

  http://downloads.northscale.com/memcached-1.4.5-x86.zip

  http://downloads.northscale.com/memcached-1.4.5-amd64.zip

 

https://pecl.php.net/package/memcache/3.0.8/windows

DLL List
PHP 5.6 5.6 Non Thread Safe (NTS) x86
5.6 Thread Safe (TS) x86
5.6 Non Thread Safe (NTS) x64
5.6 Thread Safe (TS) x64
PHP 5.5 5.5 Non Thread Safe (NTS) x86
5.5 Thread Safe (TS) x86
5.5 Non Thread Safe (NTS) x64
5.5 Thread Safe (TS) x64
PHP 5.4 5.4 Non Thread Safe (NTS) x86
5.4 Thread Safe (TS) x86
PHP 5.3 5.3 Non Thread Safe (NTS) x86
5.3 Thread Safe (TS) x86

       php7+版本 dll下载 https://github.com/nono303/PHP7-memcache-dll

在1.4.5版本之前,memcached可以被安装成一个服务,但之后的版本中该功能被移除了。因此memcached的安装可以分为两类,第一类是1.4.5之前的版本,另一类是1.4.5之后的版本。

安装memcached < 1.4.5:

  1. 将下载的文件解压到任意目录。

 

  2. 1.4.5之前版本的memcached会被安装成一个服务,以administrator打开控制台,运行下面的命令:

 

c:\memcached\memcached.exe -d install
       注意将路径c:\memcached\memcached.exe替换成你本地的安装路径。

 

  3. 然后使用下面的命令启动或停止memcached服务:

 

c:\memcached\memcached.exe -d start
c:\memcached\memcached.exe -d stop
     4. 通过注册表键值来修改memcached的配置项。在运行中输入regedit.exe,然后导航到"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached"。修改其中的键值。例如你想增加memcached所使用的最大内存限制,可以修改ImagePath的值:

 

 

"c:\memcached\memcached.exe" -d runservice -m 512
    * 除了参数'-m 512'之外,你还可以使用其它的参数。通过“c:\memcached\memcached.exe -h”可以查看所有能使用的参数。

 

  5. 如果要卸载memcached服务,可以使用下面的命令:

 

c:\memcached\memcached.exe -d uninstall
  安装memcached >= 1.4.5

 

  1. 将下载的文件解压到任意目录。

  2. 1.4.5之后版本的memcached不能作为Windows服务来运行,必须使用Windows计划任务来运行它。要将memcached配置成当Windows启动时自动运行,在命令行运行下面的命令:

 

schtasks /create /sc onstart /tn memcached /tr "'c:\memcached\memcached.exe' -m 512"
       * 注意将路径c:\memcached\memcached.exe替换成你本地的安装路径。

 

       ** 除了参数'-m 512'之外,你还可以使用其它的参数。通过“c:\memcached\memcached.exe -h”可以查看所有能使用的参数。

  3. 通过下面的命令将memcached从Windows计划任务中移除:

 

schtasks /delete /tn memcached
 

 

修改php.ini文件 底部追加如下代码

 

[memcache]
extension=php_memcache.dll
;一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
;它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
;是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover = 0
;接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。
memcache.max_failover_attempts = 20
;数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
;如果发现无法解释的速度降低,可以尝试将此值增加到32768。
memcache.chunk_size = 8192
;连接到memcached服务器时使用的默认TCP端口。
memcache.default_port = 11211
;控制将key映射到server的策略。默认值"standard"表示使用先前版本的老hash策略。
;设为"consistent"可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。
memcache.hash_strategy = "consistent"
;控制将key映射到server的散列函数。默认值"crc32"使用CRC32算法,而"fnv"则表示使用FNV-1a算法。
;FNV-1a比CRC32速度稍低,但是散列效果更好。
memcache.hash_function = "crc32"
;以下2个设置见上上面的[session]
;当值为memcache时标记使用memcache作为session处理器
;session.save_handler = "files"
;定义用于通话存储的各服务器链接的分隔符号,例如:“tcp://host1:11211, tcp://host2:11211”
;每服务器个链接可以包含被接受于该服务器的参数,比较类似使用 Memcache::addServer() 来添加的服务器
;例如:“tcp://host1:11211?persistent=1&weight=1&timeout=1& amp;retry_interval=15”
;session.save_path = ""
 重启php

 

 

打开cmd 运行 C:\www\tools\php-5.6.29-nts-Win32-VC11-x64\php.exe 看看是否正常 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值