CentOS 6.8编译PHP 7.0.10安装Zabbix3.0.4

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

环境:

操作系统:CentOS 6.8 x86_64(关闭SELinux、iptables)

Nginx:1.10.1

PHP: 7.0.10

MySQL:5.7.13

Zabbix:3.0.4


一.安装MySQL

1.安装依赖

1
yum -y  install  gcc gcc-devel gcc-c++ gcc-c++-devel libaio-devel boost boost-devel autoconf* automake* zlib* libxml* ncurses-devel ncurses libgcrypt* libtool* cmake openssl openssl-devel bison bison-devel unzip numactl-devel net-snmp-devel net-snmp-utils

2.卸载mysql-libs,否则下面安装mysql的时候会报错

1
rpm -e --nodeps mysql-libs

3.下载解压及安装

1
2
wget  tar  xf mysql-5.7.13-1.el6.x86_64.rpm-bundle. tar
rpm -ivh ` ls  | grep  mysql-community| grep  - v  test `

4.由于mysql 5.7跟之前的5.6安全性有很大提升,有很多地方是不一样的

先重置密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#修改默认字符集
sed  -i  '/\[mysqld\]/a\character-set-server=utf8'  my.cnf
#启动mysqld,并进行初始化
/etc/init .d /mysqld  start
#停止mysqld,以便进行无密码启动
/etc/init .d /mysqld  stop
#无密码启动mysql
mysqld_safe --skip-grant-tables &
mysql
#注意新版的mysql 5.7在mysql.user表下已经没有password字段了
mysql> update mysql.user  set  authentication_string=password( '123456.abcd' ) where user= 'root'  and Host =  'localhost' ;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
#会被告知你的密码不符合当前策略
#修改对应的密码策略,但是密码也至少为9位
mysql>  set  global validate_password_policy=0;
mysql> update mysql.user  set  authentication_string=password( '123456.abcd' ) where user= 'root'  and Host =  'localhost' ;
service mysqld restart

二.编译安装PHP 7.0.10

1.安装EPEL源及安装对应的依赖包

1
2
rpm -ivh http: //mirrors .ustc.edu.cn /fedora/epel/6/x86_64/epel-release-6-8 .noarch.rpm
yum -y  install  libmcrypt-devel mcrypt mhash gd-devel ncurses-devel libxml2-devel  bzip2 -devel libcurl-devel curl-devel libjpeg-devel libpng-devel freetype-devel net-snmp-devel openssl-devel

2.安装libiconv

1
2
3
4
5
6
wget http: //ftp .gnu.org /pub/gnu/libiconv/libiconv-1 .14. tar .gz
tar  zxf libiconv-1.14. tar .gz
cd  libiconv-1.14
. /configure  --prefix= /usr/local/libiconv1 .14
make  &&  make  install
cd  ..

3.下载及编译php

1
2
3
4
5
6
wget http: //cn2 .php.net /get/php-7 .0.10. tar .gz /from/this/mirror
tar  zxf mirror
cd  php-7.0.10/
. /configure  --prefix= /usr/local/php7 .0.10 --with-config- file -path= /usr/local/php7 .0.10 /etc  -- enable -mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv- dir = /usr/local/libiconv1 .14 --with-pcre-regex --with-zlib --with-bz2 -- enable -calendar --with-curl -- enable -dba --with-libxml- dir  -- enable - ftp  --with-gd --with-jpeg- dir  --with-png- dir  --with-zlib- dir  --with-freetype- dir  -- enable -gd-native-ttf --with-mhash -- enable -mbstring --with-mcrypt -- enable -pcntl -- enable -xml --disable-rpath -- enable -shmop -- enable -sockets -- enable -zip -- enable -bcmath --with-snmp --disable-ipv6 --with-gettext  -- enable -fpm --with-fpm-user=www  --with-fpm-group=www --with-openssl
#注意不能有--enable-gd-jis-conv参数,否则后面图形乱码
make  &&  make  install

4.修改相应参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
cp  sapi /fpm/init .d.php-fpm  /etc/init .d /php-fpm
chmod  +x  /etc/init .d /php-fpm
cp  /usr/local/php7 .1.0 /etc/php-fpm .conf.default  /usr/local/php7 .1.0 /etc/php-fpm .conf
cp  php.ini-production  /usr/local/php7 .0.10 /etc/php .ini
#修改时区
sed  -i  's#;date.timezone =#date.timezone = PRC#g'  /usr/local/php7 .0.10 /etc/php .ini
#隐藏PHP版本
sed  -i  's#expose_php = On#expose_php = Off#g'  /usr/local/php7 .0.10 /etc/php .ini
 
cp  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf.default  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
sed  -i  's#;rlimit_files = 1024#rlimit_files = 65535#g'  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
sed  -i  's#;listen.owner = www#listen.owner = www#g'  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
sed  -i  's#;listen.group = www#listen.group = www#g'  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
sed  -i  's#;listen.mode = 0660#listen.mode = 0660#g'  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
sed  -i  's#listen = 127.0.0.1:9000#;listen = 127.0.0.1:9000#g'  /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
sed  -i  '/;listen = 127.0.0.1:9000/a\listen = /tmp/php-fpm.sock'   /usr/local/php7 .0.10 /etc/php-fpm .d /www .conf
 
#安全配置,禁用相关函数,注意不能包含scandir和fsockopen,zabbix需要使用到这2个函数
sed  -i  's#^;cgi.fix_pathinfo=1#cgi.fix_pathinfo=0#g'  /usr/local/php7 .0.10 /etc/php .ini
sed  -i  's#disable_functions =#disable_functions =exec,system,eval,passthru,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,fsocket,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server#g'  /usr/local/php7 .0.10 /etc/php .ini
#限制执行目录,我的WEB目录都在/var/www/html下
sed  -i  's#;open_basedir =#open_basedir = "/var/www/html/:/tmp/"#g'  /usr/local/php7 .0.10 /etc/php .ini
 
#修改PHP相关参数以保证zabbix最低要求
sed  -i  's#max_execution_time = 30#max_execution_time = 300#g'  /usr/local/php7 .0.10 /etc/php .ini
sed  -i  's#max_input_time = 60#max_input_time = 300#g'  /usr/local/php7 .0.10 /etc/php .ini
sed  -i  's#post_max_size = 8M#post_max_size = 24M#g'  /usr/local/php7 .0.10 /etc/php .ini
sed  -i  's#upload_max_filesize = 2M#upload_max_filesize = 4M#g'  /usr/local/php7 .0.10 /etc/php .ini
 
#修改php连接mysql
sed  -i  's#pdo_mysql.default_socket=#pdo_mysql.default_socket= /var/lib/mysql/mysql.sock#g'  /usr/local/php7 .0.10 /etc/php .ini
sed  -i  's#mysqli.default_socket =#mysqli.default_socket = /var/lib/mysql/mysql.sock#g'  /usr/local/php7 .0.10 /etc/php .ini
 
增加PHP执行用户
groupadd -g 10080 www
useradd  -g www -u 10080 -s  /sbin/nologin  -d  /dev/null  www


三.安装Nginx

1.下载及安装nginx

1
2
3
4
5
6
7
8
9
10
11
12
wget http: //nginx .org /download/nginx-1 .10.1. tar .gz
tar  zxf nginx-1.10.1. tar .gz
cd  nginx-1.10.1
#隐藏Nginx版本
sed  -i  's#1.10.1#2.2.14.0#g'  src /core/nginx .h
sed  -i  's#"nginx/"#"Apache/"#g'  src /core/nginx .h
sed  -i  's#"Server: nginx"#"Server: Apache"#g'  src /http/ngx_http_header_filter_module .c
sed  -i  's#<center>nginx</center>#<center>Apache</center>#g'  src /http/ngx_http_special_response .c
 
. /configure  --prefix= /usr/local/nginx1 .10.1 --user=www --group=www --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module
make  &&  make  install
sed  -i  's#nginx/$nginx_version;#Apache/$nginx_version;#g'  /usr/local/nginx1 .10.1 /conf/fastcgi .conf

2.配置Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
vim  /usr/local/nginx1 .10.1 /conf/nginx .conf
 
user  www www;
worker_processes  4;
 
error_log  logs /error .log;
 
pid        logs /nginx .pid;
 
worker_rlimit_nofile 65535;
events {
     use epoll;
     worker_connections  65535;
}
 
http {
     include       mime.types;
     default_type  application /octet-stream ;
 
     log_format  main   '$remote_addr - $remote_user [$time_local] "$request" '
                       '$status $body_bytes_sent "$http_referer" '
                       '"$http_user_agent" "$http_x_forwarded_for"' ;
 
     access_log  logs /access .log  main;
 
   server_names_hash_bucket_size 128;
   client_header_buffer_size 32k;
   large_client_header_buffers 4 32k;
   client_max_body_size 8m;
 
   fastcgi_connect_timeout 300;
   fastcgi_send_timeout 300;
   fastcgi_read_timeout 300;
   fastcgi_buffer_size 64k;
   fastcgi_buffers 4 64k;
   fastcgi_busy_buffers_size 128k;
   fastcgi_temp_file_write_size 128k;
   fastcgi_param HTTP_PROXY  "" ;
   #隐藏后端服务器的相关参数
   proxy_hide_header X-Powered-By;
   proxy_hide_header X-Forwarded-For;
   proxy_hide_header X-AspNet-Version;
   proxy_hide_header X-AspNetMvc-Version;
   proxy_hide_header Via;
   proxy_hide_header X-Varnish;
   proxy_hide_header Server;
 
   gzip  on;
   gzip_min_length  1k;
   gzip_buffers     4 16k;
   gzip_http_version 1.1;
   gzip_comp_level 5;
   gzip_disable  "MSIE [1-6]\." ;
   gzip_types text /plain  text /css  text /xml  application /javascript  application /x-javascript ;
   gzip_vary on;
 
   include host/*.conf;
}

3.配置站点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mkdir  /usr/local/nginx1 .10.1 /conf/host
vim  /usr/local/nginx1 .10.1 /conf/host/zabbix .conf
     server {
         listen       80;
         server_name  localhost zabbix;
         location / {
             root    /var/www/html ;
             index  index.html index.htm index.php;
 
         error_page   500 502 503 504   /50x .html;
         location =  /50x .html {
             root   html;
         }
 
         location ~ \.php$ {
             fastcgi_pass   unix: /tmp/php-fpm .sock;
             fastcgi_index  index.php;
             fastcgi_param HTTP_PROXY  "" ;
             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include        fastcgi_params;
         }
         }
     }


四.安装Zabbix

1.下载及安装zabbix

1
2
3
4
5
6
yum -y  install  OpenIPMI-devel
wget http: //120 .52.73.47 /nchc .dl.sourceforge.net /project/zabbix/ZABBIX %20Latest%20Stable /3 .0.4 /zabbix-3 .0.4. tar .gz
tar  -zxvf zabbix-3.0.4. tar .gz
cd  zabbix-3.0.4
. /configure  --prefix= /usr/local/zabbix3 .0.4 -- enable -server --with-mysql --with-net-snmp --with-libxml2 --with-libcurl --with-openipmi  -- enable -agent
make  &&  make  installl

2.配置zabbix

1
2
3
4
cp  misc /init .d /fedora/core5/zabbix_server  /etc/init .d/
cp  misc /init .d /fedora/core5/zabbix_agentd  /etc/init .d/
sed  -i  's#/usr/local/sbin/zabbix_server#/usr/local/zabbix3.0.4/sbin/zabbix_server#g'  /etc/init .d /zabbix_server
sed  -i  's#/usr/local/sbin/zabbix_agentd#/usr/local/zabbix3.0.4/sbin/zabbix_agentd#g'  /etc/init .d /zabbix_agentd

3.复制WEB站点

1
2
mkdir  /var/www/html/zabbix
cp  -rf frontends /php/ /var/www/html/zabbix

4.zabbix乱码图形处理

将Windows操作系统的C:\Windows\Fonts\simkai.ttf字体文件上传至/var/www/html/zabbix/font。防止出现乱码情况

1
sed  -i  's#DejaVuSans#simkai#g'  /var/www/html/zabbix/include/defines .inc.php

5.使用MySQL创建zabbix数据库并授权

1
2
3
mysql -uroot -p
mysql> create database zabbix character  set  utf8;
mysql> grant all on zabbix.* to  'zabbix' @ 'localhost'  identified by  'zabbix.localhost' ;

6.导入数据库

1
2
3
4
进入zabbix-3.0.4源码文件目录
mysql -uroot -p zabbix < database /mysql/schema .sql
mysql -uroot -p zabbix < database /mysql/data .sql
mysql -uroot -p zabbix < database /mysql/images .sql

7.修改zabbix_server配置文件,以下是我的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
egrep  - v  '^:|^#'  /usr/local/zabbix3 .0.4 /etc/zabbix_server .conf| awk  'NF>0'
LogFile= /tmp/zabbix_server .log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix.localhost
StartPollers=10
StartPingers=4
StartDiscoverers=4
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
StartVMwareCollectors=5
VMwareFrequency=60
VMwareCacheSize=8M

8.再修改zabbix web目录下的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vim  /var/www/html/zabbix3 .0.4 /conf/zabbix .conf.php
<?php
//  Zabbix GUI configuration  file .
global $DB;
 
$DB[ 'TYPE' ]     =  'MYSQL' ;
$DB[ 'SERVER' ]   =  'localhost' ;
$DB[ 'PORT' ]     =  '0' ;
$DB[ 'DATABASE' ] =  'zabbix' ;
$DB[ 'USER' ]     =  'zabbix' ;
$DB[ 'PASSWORD' ] =  'zabbix.localhost' ;
 
//  Schema name. Used  for  IBM DB2 and PostgreSQL.
$DB[ 'SCHEMA' ] =  '' ;
 
$ZBX_SERVER      =  'localhost' ;
$ZBX_SERVER_PORT =  '10051' ;
$ZBX_SERVER_NAME =  '' ;
 
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;



QA:

1.zabbix乱码问题

a.数据库字符集问题,创建数据库时指定字符集

create database zabbix character set utf8;


b.未上传中文字体,或者未修改include/define.inc.php文件


c.编译PHP时携带有--enable-gd-jis-conv参数,如果带有这个参数,画图的时候出现

wKiom1fM4SmBRJkcAAJOxtHJDII525.png


2.php7安装memcache问题

1
2
3
4
5
6
7
8
9
10
git clone 
cd  pecl-memcache
/usr/local/php7 .0.10 /bin/phpize
. /configure  --with-php-config= /usr/local/php7 .0.10 /bin/php-config
make  &&  make  install
echo  'extension = "memcache.so"' >> /usr/local/php7 .0.10 /etc/php .ini
#检查php是否加载memcache模块
/usr/local/php7 .0.10 /bin/php  -m | grep  memcache
#重启php-fpm服务以加载memcache模块
/etc/init .d /php-fpm  restart



本文转自 rong341233 51CTO博客,原文链接:http://blog.51cto.com/fengwan/1846343

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
应用服务中间件 Linux 网络安全
CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
CentOS 7.4源码编译nginx1.12 并且隐藏nginx的版本
14 0
|
1月前
|
Linux 网络安全 数据安全/隐私保护
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
143 0
|
2月前
|
关系型数据库 MySQL Linux
centos7.0环境下安装MySql_8.0.12
centos7.0环境下安装MySql_8.0.12
|
1月前
|
存储 JavaScript Linux
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
|
2月前
|
关系型数据库 MySQL Linux
CentOS7环境下安装MySQL5.6
CentOS7环境下安装MySQL5.6
195 0
|
3天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
32 2
|
9天前
|
关系型数据库 MySQL Linux
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
46 0
|
16天前
|
IDE Linux 开发工具
CentOS7.4+REDHAWK2.3.1安装教程——折腾篇
CentOS7.4+REDHAWK2.3.1安装教程——折腾篇
18 0
|
20天前
|
Linux Shell 开发工具
CentOS8中Docker安装及部署
CentOS8中Docker安装及部署
67 0
|
1月前
|
Linux 网络安全 开发工具
利用pxe无人值守最小化安装centos7
利用pxe无人值守最小化安装centos7
16 0