【Web 集群实战】14_PHP 服务缓存加速(Opcache+Memcached+pdo_mysql+imagick)

版权声明: https://blog.csdn.net/weixin_42061048/article/details/82887349

【Web 集群实战】14_PHP 服务缓存加速(Opcache+Memcached+pdo_mysql+imagick)

标签(空格分隔): Web集群实战


一、LNMP 基础 Web 环境准备

软件 版本
Linux CentOS 7.4.1708 64bit
Nginx 1.14.0
PHP 7.1.22
MySQL 5.5.61
[root@ylt001 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@ylt001 ~]# uname -r
3.10.0-693.el7.x86_64
[root@ylt001 ~]# uname -m
x86_64

[root@ylt001 ~]# /application/nginx/sbin/nginx -v
nginx version: nginx/1.14.0

[root@ylt001 ~]# /application/php/bin/php -v
PHP 7.1.22 (cli) (built: Sep 25 2018 06:46:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.22, Copyright (c) 1999-2018, by Zend Technologies

[root@ylt001 ~]# mysqladmin -uroot -p version
Enter password:
mysqladmin  Ver 8.42 Distrib 5.5.61, for linux-glibc2.12 on x86_64
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.61
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 5 min 28 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.012
  • 开启所有服务
[root@ylt001 ~]# /application/nginx/sbin/nginx
[root@ylt001 ~]# /application/nginx/sbin/nginx -t
[root@ylt001 ~]# /application/nginx/sbin/nginx -s reload

[root@ylt001 ~]# killall php-fpm
[root@ylt001 ~]# /application/php/sbin/php-fpm
[root@ylt001 ~]# ps -ef|grep php-fpm

[root@ylt001 ~]# /etc/init.d/mysqld start
[root@ylt001 ~]# /etc/init.d/mysqld restart
[root@ylt001 ~]# netstat -lntup|grep mysql

二、Perl 编译问题

[root@ylt001 ~]# echo 'export LC_ALL=C'>> /etc/profile
# 设置环境变量,解决后面 Perl 程序插件的编译问题
[root@ylt001 ~]# tail -1 /etc/profile
export LC_ALL=C
[root@ylt001 ~]# source /etc/profile
[root@ylt001 ~]# echo $LC_ALL
C

[root@ylt001 ~]# yum install -y perl-devel
# 安装 Perl 相关软件依赖软件包
[root@ylt001 ~]# rpm -qa perl-devel
perl-devel-5.16.3-292.el7.x86_64

三、安装 PHP Opcache 缓存加速模块

  • php 5.5 以前的版本使用 APC、eAccelerator、XCache 等加速模块,本文使用 PHP 7.1.22 不需安装扩展,只需直接开启 Opcache 即可。
  • 可以直接修改 php.ini 的参数,vim /application/php/lib/php.ini,搜索 opcache,在下面添加:
opcache.enable=1
zend_extension=opcache.so
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

Opcache

  • 重启 php 服务
[root@ylt001 php-memcached]# killall php-fpm
[root@ylt001 php-memcached]# /application/php/sbin/php-fpm
[root@ylt001 php-memcached]# ps -ef|grep php-fpm
  • 在 phpinfo 页面可以看到运行状态

ZendOpcache

四、安装 PHP Memcached 插件

1. 服务器端 memcached 安装

[root@ylt001 ~]# yum -y install memcached
[root@ylt001 ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
[root@ylt001 ~]# firewall-cmd --zone=public --add-port=11211/tcp --permanent
[root@ylt001 ~]# systemctl enable memcached
[root@ylt001 ~]# systemctl restart memcached
[root@ylt001 ~]# /usr/bin/memcached -d -l 127.0.0.1 -p 11211 -m 150 -u root
# -d:守护进程。当从终端窗口退出的时候 memcached 还会继续运行 
# -l:指定 ip 地址,这里我们指定本地 ip 
# -p:指定端口号,端口号为 11211 
# -m:分配内存,这里我分配了 150M 内存 
# -u:使用哪个用户运行 memcached
[root@ylt001 ~]# ps -ef | grep memcached
memcach+   2043      1  0 13:40 ?        00:00:00 /usr/bin/memcached -u memcache                                                          d -p 11211 -m 64 -c 1024
root      62328  62236  0 16:21 pts/0    00:00:00 grep --color=auto memcached
# ps 命令是 Precess Status 的缩写,也就是列出当前系统中运行那些进程 
# ps -ef 就是显示所有进程,连同命令行 
# ps 通常与 grep 组合使用,查找特定进程 

2. php-memcached 拓展安装

2.1 libmemcached 拓展安装

[root@ylt001 tools]# wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
[root@ylt001 tools]# tar -zxvf libmemcached-1.0.18.tar.gz
[root@ylt001 tools]# mv libmemcached-1.0.18 /application/
[root@ylt001 tools]# cd /application/libmemcached-1.0.18
[root@ylt001 libmemcached-1.0.18]# ./configure --prefix=/application/libmemcached-1.0.18
[root@ylt001 libmemcached-1.0.18]# make && make install
[root@ylt001 libmemcached-1.0.18]# ln -s /application/libmemcached-1.0.18 /application/libmemcached

2.1 php-memcached 拓展安装

[root@ylt001 tools]# git clone https://github.com/php-memcached-dev/php-memcached   
[root@ylt001 tools]# cd php-memcached/
[root@ylt001 php-memcached]# git checkout php7
Branch php7 set up to track remote branch php7 from origin.
Switched to a new branch 'php7'
[root@ylt001 php-memcached]# /application/php/bin/phpize
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
[root@ylt001 php-memcached]# ./configure --with-php-config=/application/php/bin/php-config --with-libmemcached-dir=/application/libmemcached-1.0.18 --disable-memcached-sasl
[root@ylt001 php-memcached]# make && make install
[root@ylt001 php-memcached]# mv ../php-memcached /application/
  • 修改 php.ini 文件,vim /application/php/lib/php.ini,shift+G,在最后一行添加
extension=memcached.so
  • 重启 php 服务
[root@ylt001 php-memcached]# killall php-fpm
[root@ylt001 php-memcached]# /application/php/sbin/php-fpm
[root@ylt001 php-memcached]# ps -ef|grep php-fpm
  • 在 phpinfo 页面可以看到运行状态

memcached

五、安装 PDO_MYSQL

  • 在编译安装时加上 --with-pdo-mysql=mysqlnd 参数即可。

  • 重启 php 服务

[root@ylt001 php-memcached]# killall php-fpm
[root@ylt001 php-memcached]# /application/php/sbin/php-fpm
[root@ylt001 php-memcached]# ps -ef|grep php-fpm
  • 在 phpinfo 页面可以看到运行状态

pdo_mysql

六、安装 imagick

[root@ylt001 tools]# wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.9.10-12.tar.gz
[root@ylt001 tools]# tar zxvf ImageMagick-6.9.10-12.tar.gz
[root@ylt001 tools]# mv ImageMagick-6.9.10-12 /application/
[root@ylt001 tools]# cd /application/ImageMagick-6.9.10-12
[root@ylt001 tools]# ./configure --prefix=/application/ImageMagick-6.9.10-12
[root@ylt001 tools]# make && make install
[root@ylt001 tools]# ln -s /application/ImageMagick-6.9.10-12 /application/ImageMagick
[root@ylt001 tools]# wget http://pecl.php.net/get/imagick-3.4.3.tgz
[root@ylt001 tools]# tar zxvf imagick-3.4.3.tgz
[root@ylt001 tools]# mv imagick-3.4.3 /application/
[root@ylt001 tools]# cd /application/imagick-3.4.3
[root@ylt001 imagick-3.4.3]# /application/php/bin/phpize
[root@ylt001 imagick-3.4.3]# ./configure --with-php-config=/application/php/bin/php-config --with-imagick=/application/ImageMagick
[root@ylt001 imagick-3.4.3]# make && make install
[root@ylt001 imagick-3.4.3]# ln -s /application/imagick-3.4.3 /application/imagick
  • 修改 php.ini 文件,vim /application/php/lib/php.ini,shift+G,在最后一行添加
extension=imagick.so
  • 重启 php 服务
[root@ylt001 php-memcached]# killall php-fpm
[root@ylt001 php-memcached]# /application/php/sbin/php-fpm
[root@ylt001 php-memcached]# ps -ef|grep php-fpm

七、检查效果

[root@ylt001 tools]# cd /application/php-7.1.22/lib/php/extensions/no-debug-non-zts-20160303/
[root@ylt001 no-debug-non-zts-20160303]# ll
total 6668
-rwxr-xr-x 1 root root 1185176 Sep 28 14:55 imagick.so
-rwxr-xr-x 1 root root  383312 Sep 28 14:16 memcached.so
-rwxr-xr-x 1 root root  205632 Sep 26 11:12 mysql.so
-rwxr-xr-x 1 root root 3406756 Sep 26 04:05 opcache.a
-rwxr-xr-x 1 root root 1636664 Sep 26 04:05 opcache.so
[root@ylt001 no-debug-non-zts-20160303]# cd /application/php/lib/
[root@ylt001 lib]# tail -5 php.ini
; Local Variables:
; tab-width: 4
extension=memcached.so
extension=imagick.so
; End:
[root@ylt001 lib]# grep opcache php.ini
[opcache]
opcache.enable=1
zend_extension=opcache.so
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

猜你喜欢

转载自blog.csdn.net/weixin_42061048/article/details/82887349