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

posted @ 2017-08-02 09:10  forbest  阅读(180)  评论(0编辑  收藏  举报