设为首页 收藏本站
查看: 3383|回复: 0

[经验分享] CentOS 6.8编译PHP 7.0.10安装Zabbix3.0.4

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-6 10:11:03 | 显示全部楼层 |阅读模式
环境:

操作系统: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



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/fedor ... ease-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
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
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
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.sour ... 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.jpg

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






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-268393-1-1.html 上篇帖子: Ubuntu系统LNMP环境下安装配置zabbix3.0 下篇帖子: zabbix监控windows,怎么监控内存前5或者CPU前五的进程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表