Memcached部署(下)
搭建Nginx+PHP环境
搭建Nginx+PHP环境用于Memcached的PHP扩展的测试
1. 安装PHP
[root@chunlin PHP]# tar -zxf php-7.1.5.tar.gz
[root@chunlin PHP]# cd php-7.1.5
[root@chunlin php-7.1.5]# mkdir /usr/local/php
[root@chunlin php-7.1.5]# mkdir /usr/local/php/etc
[root@chunlin php-7.1.5]# mkdir /usr/local/php/etc/php.d
[root@chunlin php-7.1.5]# useradd -s /sbin/nologin php_fpm
[root@chunlin php-7.1.5]# yum install -y libxml2.x86_64
[root@chunlin php-7.1.5]# yum install -y libxml2-devel.x86_64
[root@chunlin php-7.1.5]# ./configure
--prefix=/usr/local/php
--with-config-file-path=/usr/local/php/etc
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--enable-fpm
--with-fpm-user=php_fpm
--with-fpm-group=php_fpm \
--with-mysqli=/usr/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql
--with-mysql-sock=/var/lib/data/mysql/mysql.sock \
--enable-xml
--with-libxml-dir=/usr/bin/xml2-config
2. PHP配置
- 准备配置文件
[root@chunlin php-7.1.5]# cp php.ini-production /usr/local/php/etc/php.ini
[root@chunlin php-7.1.5]# cd /usr/local/php/etc/
[root@chunlin etc]# mv php-fpm.conf.default php-fpm.conf
[root@chunlin etc]# ln -s /usr/local/php/etc/php.ini /etc/php.ini
[root@chunlin etc]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@chunlin ~]# cd /usr/local/php/etc/php-fpm.d/
[root@chunlin php-fpm.d]# mv www.conf.default www.conf
-
修改配置文件
-
vim php-fpm.conf
[root@chunlin ~]# cd /usr/local/php/etc/
[root@chunlin etc]# vim php-fpm.conf
[global]
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = warning其他选项使用文件中给出的默认配置即可
- vim www.conf
[root@chunlin php-fpm.d]# cd /usr/local/php/etc/php-fpm.d/
[root@chunlin php-fpm.d]# vim www.conf
user = php_fpm
group = php_fpm
listen.owner = php_fpm
listen.group = php_fpm
listen.mode = 0660其他选项使用文件中给出的默认配置即可
- vim php.ini
[root@chunlin ~]# ln -s
/usr/share/zoneinfo/Asia/Shanghai /etc/localtime设置时区为上海
[root@chunlin ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
expose_php = Off出于安全靠虑
short_open_tag = On
支持短标签
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,
proc_open,proc_get_status,ini_alter,ini_restore,dl,openlog,
syslog,readlink,symlink,popepassthru,stream_socket_server,
fsocket,popen出于安全的考虑禁用某些函数
opcache.enable=1
opcache.enable_cli=1
extension_dir = "/usr/local/php/lib/php/extensions
/no-debug-non-zts-20160303"
zend_extension=opcache.so开启opcache缓存
其他选项使用文件中给出的默认配置即可
- 配置php-fpm自启动
[root@chunlin ~]# cd /usr/local/package/LNMP/PHP/php-7.1.5
[root@chunlin php-7.1.5]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@chunlin php-7.1.5]# chmod 755 /etc/init.d/php-fpm
[root@chunlin php-7.1.5]# chkconfig --add php-fpm
[root@chunlin php-7.1.5]# chkconfig php-fpm on
3. Nginx编译安装
1)安装准备
- 系统:redhat6.5.x86_64
- 软件:nginx-1.10.3.tar.gz(稳定版)、gcc.x86_64、pcre-devel.x86_64、perl-ExtUtils-Embed.x86_64、zlib-devel.x86_64、openssl-devel.x86_64
[root@chunlin Nginx]# mkdir /opt/nginx
[root@chunlin Nginx]# tar -zxf nginx-1.10.3.tar.gz
[root@chunlin Nginx]# ls
nginx-1.10.3 nginx-1.10.3.tar.gz
[root@chunlin Nginx]# cd nginx-1.10.3
[root@chunlin nginx-1.10.3]# vim auto/cc/gcc
debug
CFLAGS="$CFLAGS -g"
将以上两行注释掉,取消nginx的debug编译模式,编译更快。
[root@chunlin nginx-1.10.3]# vim src/core/nginx.h
define NGINX_VER "nginx"
上面的那条修改是为了nginx服务器的安全,隐藏了nginx版本,需要将#define NGINX_VER后面的双引号中的字符串改为nginx
2)编译安装
[root@chunlin nginx-1.10.3]# ./configure --prefix=/opt/nginx
--with-http_gzip_static_module
--with-http_stub_status_module
--with-http_perl_module
--with-http_ssl_module
configure是个shell脚本,是autoconf的工具的基本应用,用来配置软件属性,安装目录,检查编译所需的库文件是否存在或者符合条件等,生成编译所需要的Makefile 文件。
编译的时候我选择将http_gzip_static_module、http_stub_status_module、http_perl_module、http_ssl_module这四个模块编译进去。
- http_gzip_static_module:这个模块支持在线实时压缩输出数据流
- http_stub_status_module:监控Nginx的状态
- http_perl_module:支持Perl脚本
- http_ssl_module:开启SSL模块,支持使用HTTPS协议的网页
[root@chunlin nginx-1.10.3]# make
make 是 Linux 开发套件里面自动化编译的一个控制程序,它根据Makefile控制代码编译源码。如果在make过程中出错了,可以通过先make clean,然后再重新make。
[root@chunlin nginx-1.10.3]# make install
4. Nginx配置
[root@chunlin ~]# vim /opt/nginx/conf/nginx.conf
需要先安装Nginx,以下是配置文件中要修改或增加的内容
user php_fpm php_fpm;
location / {
root html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@chunlin ~]# nginx -t
[root@chunlin ~]# nginx -s reload