目前,zabbix的最新版已经到了3.2.x,遗憾的是,因为centos6自带的各类组件版本太老,zabbix自3.0起,官方的repo就不在支持在CentOS6上面安装zabbix server了(agent客户端还是支持的)。但是,实际生产环境中,CentOS6还远未被淘汰,甚至还有很多公司用RHEL5,或者CentOS5的,所以有必要讲解下,在CentOS6(RHEL6)环境下,自己安装nginx最新稳定版1.10.1,php7最新稳定版7.0.12,以及zabbix3.2.1版本。
基础信息
本机IP:192.168.42.15,已安装了EPEL6的源。从官方下载php-7.0.12.tar.gz zabbix-3.2.1.tar.gz两个源码到CentOS上面。
安装Nginx:
本来Nginx我是想自己编译安装的,但是现在EPEL上已经有了最新的稳定版1.10.1,我就直接yum安装了,安装方法:
yum install nginx
cd /usr/share/nginx chown -R nginx:nginx html/ semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/html(/.*)?" restorecon -Rv html/
iptables开放http端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables save service iptables restart
安装PHP7
我们决定自己编译php7,为适应zabbix官方的对php组件的要求,必须安装一些必要的组件:
首先,既然是编译安装,我们先安装编译器gcc
yum -y install gcc
安装编译php7需要的一些组件:
yum install libxml2-devel gettext-devel bison re2c libpng-devel libjpeg-turbo-devel freetype-devel openssl-devel -y
解包php7
tar xf php-7.0.12.tar.gz
切换到php7源码目录
cd php-7.0.12
[root@template php-7.0.12]# ./configure --disable-cgi --with-openssl \ > --with-config-file-path=/etc --sysconfdir=/etc --with-mysql-sock=/var/lib/mysql/mysql.sock \ > --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \ > --with-gd --enable-bcmath --with-libxml-dir --enable-sockets --enable-mbstring \ > --with-gettext --with-mysqli --with-jpeg-dir --with-freetype-dir
LEMP用Nginx+php-fpm的组合,一般不需要cgi功能,另外一些图片上的组件,主要是为了满足zabbix官方对php的要求。
configure结束后,会提示这些:
Thank you for using PHP. config.status: creating php7.spec config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/www.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands
接下来开始编译:
make -j 4
我的机器是4核i5,所以加了-j 4编译参数。
编译成功后,安装
make install
输出如下:
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20151012/ Installing PHP CLI binary: /usr/local/bin/ Installing PHP CLI man page: /usr/local/php/man/man1/ Installing PHP FPM binary: /usr/local/sbin/ Installing PHP FPM config: /etc/ Installing PHP FPM man page: /usr/local/php/man/man8/ Installing PHP FPM status page: /usr/local/php/php/fpm/ Installing phpdbg binary: /usr/local/bin/ Installing phpdbg man page: /usr/local/php/man/man1/ Installing build environment: /usr/local/lib/php/build/ Installing header files: /usr/local/include/php/ Installing helper programs: /usr/local/bin/ program: phpize program: php-config Installing man pages: /usr/local/php/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/lib/php/ [PEAR] Archive_Tar - installed: 1.4.0 [PEAR] Console_Getopt - installed: 1.4.1 [PEAR] Structures_Graph- installed: 1.1.1 [PEAR] XML_Util - installed: 1.3.0 [PEAR] PEAR - installed: 1.10.1 Wrote PEAR system config file at: /etc/pear.conf You may want to add: /usr/local/lib/php to your php.ini include_path /root/php-7.0.12/build/shtool install -c ext/phar/phar.phar /usr/local/bin ln -s -f phar.phar /usr/local/bin/phar Installing PDO headers: /usr/local/include/php/ext/pdo/
要记得这些安装目录,如果你想卸载或者重新编译,升级等,知道现在的安装目录是有必要的。
添加php-fpm的init启动脚本:
[root@template php-7.0.12]# cp /root/php-7.0.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@template php-7.0.12]# chmod a+x /etc/init.d/php-fpm [root@template php-7.0.12]# restorecon -v /etc/init.d/php-fpm
拷贝php.ini配置文件
[root@template php-7.0.12]# cp /root/php-7.0.12/php.ini-production /etc/php.ini
编辑下vim /etc/php.ini 改变如下参数:
cgi.fix_pathinfo=0 date.timezone = Asia/Shanghai post_max_size = 16M max_execution_time = 300 max_input_time = 300
继续拷贝配置:
[root@template php-7.0.12]# cp /etc/php-fpm.conf.default /etc/php-fpm.conf [root@template php-7.0.12]# cp /etc/php-fpm.d/www.conf.default /etc/php-fpm.d/www.conf
编辑php-fpm.conf,我们需要重新配置下日志的路径,放到常用的/var/log下面,方便查看日志
vim /etc/php-fpm.conf
error_log = /var/log/php-fpm/error.log
建立日志目录,进行一些权限处理:
[root@template php-7.0.12]# mkdir -m 700 /var/log/php-fpm [root@template php-7.0.12]# chown nginx:nginx /var/log/php-fpm [root@template php-7.0.12]# semanage fcontext -a -t httpd_log_t /var/log/php-fpm [root@template php-7.0.12]# restorecon -Rv /var/log/php-fpm
系统写入pid的目录,会因为selinux而被拒绝写入pid,我们设置下selinux标签:
[root@template php-7.0.12]# semanage fcontext -a -t httpd_var_run_t /usr/local/var/run [root@template php-7.0.12]# restorecon -v /usr/local/var/run
再给程序本身设置下selinux标签:
[root@template php-7.0.12]# semanage fcontext -a -t httpd_exec_t /usr/local/sbin/php-fpm [root@template php-7.0.12]# restorecon -v /usr/local/sbin/php-fpm
编辑下www.conf的配置:
[root@template php-7.0.12]# vim /etc/php-fpm.d/www.conf
listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
新建立目录,并做一些权限处理:
[root@template php-7.0.12]# mkdir /var/run/php-fpm [root@template php-7.0.12]# restorecon -v /var/run/php-fpm
配置nginx加载php-fpm
编辑下默认的server配置
[root@template php-7.0.12]# cd /etc/nginx/conf.d/
[root@template conf.d]# vim default.conf
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; index index.php index.html index.htm; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
启动nginx、php-fpm
启动php-fpm,并加入开机启动:
[root@template php-7.0.12]# service php-fpm start Starting php-fpm done [root@template php-7.0.12]# chkconfig php-fpm on
启动nginx,并加入开机启动:
[root@template php-7.0.12]# service nginx start Starting nginx: [ OK ] [root@template php-7.0.12]# chkconfig nginx on
phpinfo测试
写一个简单的phpinfo文件进行测试:
vim /usr/share/nginx/html/index.php
<?php phpinfo(); ?>
打开服务器的地址http://192.168.42.15/进行测试,如果看到下面类似的界面,证明php环境搭建成功了。
安装、启动mysql,并加入开机启动
安装:
[root@template ~]# yum install mysql-server -y
启动:
[root@template ~]# service mysqld start
初始化设置:
[root@template ~]# mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on…
…
Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!
…
Remove anonymous users? [Y/n] Y
… Success!
…
Disallow root login remotely? [Y/n] Y
… Success!
…
Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
…
Reload privilege tables now? [Y/n] Y
… Success!
需要注意的是,mysql5.1版本root用户是没有初始密码的,建议按照提示设置下。
加入开机启动:
[root@template ~]# chkconfig mysqld on
好了,本教程的第一部分,关于LEMP环境的安装,在此告一段落了,下一部分我们就开始进行zabbix3.2.1的安装了。
Pingback:CentOS6安装nginx,php7,zabbix3.2教程(2) – NT宝贝网