1、安装MySQL
1.1、安装MySQL
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-server
1.2、修改MySQL的配置文件
vim /etc/my.cnf
[mysqld]
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = ‘SET NAMES utf8‘
character-set-server = utf8
1.3、设置MySQL自动启动并启动MySQL(CENTOS 7):
# systemctl start mysqld
# systemctl enable mysqld
1.4、设置MySQL安全选项
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we‘ll need the current password for the root user. If you‘ve just installed MySQL, and you haven‘t set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MySQL root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from ‘localhost‘. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] n ... Success! By default, MySQL comes with a database named ‘test‘ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ERROR 1008 (HY000) at line 1: Can‘t drop database ‘test‘; database doesn‘t exist ... Failed! Not critical, keep moving... - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! All done! If you‘ve completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL! Cleaning up...
1.5、创建Zabbix数据库
mysql -uroot -pkingdee
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.04 sec)
mysql> grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
2、安装PHP
2.1、安装PHP
先安装第三方组件:
yum -y groupinstall "Development Tools"
yum install libxml2* -y
yum install curl curl-devel
yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64
yum install libjpeg-devel
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make install
再下载安装PHP 5.5.38:
wget http://php.net/distributions/php-5.5.38.tar.gz
tar zxvf php-5.5.38.tar.gz
./configure --prefix=/usr/local/php-5.5.38 --with-config-file-path=/usr/local/php-5.5.38/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
make
make install
Installing shared extensions: /usr/local/php-5.5.38/lib/php/extensions/no-debug-non-zts-20121212/ Installing PHP CLI binary: /usr/local/php-5.5.38/bin/ Installing PHP CLI man page: /usr/local/php-5.5.38/php/man/man1/ Installing PHP FPM binary: /usr/local/php-5.5.38/sbin/ Installing PHP FPM config: /usr/local/php-5.5.38/etc/ Installing PHP FPM man page: /usr/local/php-5.5.38/php/man/man8/ Installing PHP FPM status page: /usr/local/php-5.5.38/php/php/fpm/ Installing PHP CGI binary: /usr/local/php-5.5.38/bin/ Installing PHP CGI man page: /usr/local/php-5.5.38/php/man/man1/ Installing build environment: /usr/local/php-5.5.38/lib/php/build/ Installing header files: /usr/local/php-5.5.38/include/php/ Installing helper programs: /usr/local/php-5.5.38/bin/ program: phpize program: php-config Installing man pages: /usr/local/php-5.5.38/php/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/php-5.5.38/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: /usr/local/php-5.5.38/etc/pear.conf You may want to add: /usr/local/php-5.5.38/lib/php to your php.ini include_path /root/php-5.5.38/build/shtool install -c ext/phar/phar.phar /usr/local/php-5.5.38/bin ln -s -f phar.phar /usr/local/php-5.5.38/bin/phar Installing PDO headers: /usr/local/php-5.5.38/include/php/ext/pdo/
cp php.ini-production /usr/local/php-5.5.38/etc/php.ini
cp /usr/local/php-5.5.38/etc/php-fpm.conf.default /usr/local/php-5.5.38/etc/php-fpm.conf
vim /usr/local/php-5.5.38/etc/php.ini
post_max_size=16M
max_execution_time=300
max_input_time=300
date.timezone=Asia/Shanghai
always_populate_raw_post_data=1
启动PHP
/usr/local/php-5.5.38/sbin/php-fpm
3、安装NGINX
yum install pcre*
yum install openssl*
mkdir -p /data/logs/nginx/
mkdir -p /data/site/centos7/
编译安装:
wget http://nginx.org/download/nginx-1.13.3.tar.gz
tar zxvf nginx-1.13.3.tar.gz
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre
make
make install
其它安装方法:(可选)
rpm安装:
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx
启动,停止
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s stop
重置:当你有修改配置文件的时候,只需要reload一下即可
/usr/local/nginx/sbin/nginx -s reload
4、配置nginx php互通
在nginx.conf的http断中加上如下内容:(注意把原值注释掉)
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name centos7;
access_log /data/logs/nginx/centos7.access.log;
index index.php index.html index.html;
root /data/site/centos7;
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ .*\.(php)?$
{
expires -1s;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}
建立测试文件
vim /data/site/centos7/info.php
<?php
phpinfo();
?>
3. 访问测试
curl http://centos7/info.php test php
注:nginx将会连接回环地址9000端口执行PHP文件,需要使用tcp/ip协议,速度比较慢.建议大家换成使用socket方式连接。将fastcgi_pass 127.0.0.1:9000;改成fastcgi_pass unix:/var/run/php5fpm.sock;
1、首行,在配置文件/usr/local/php-5.5.38/etc/php-fpm.conf文件中找到
listen = 127.0.0.1:9000
修改为:
listen = /var/run/php5fpm.sock
listen.mode=0666
然后,重启php-fpm
2、接着,配置nginx
在/usr/local/nginx/conf/nginx.conf中找到
fastcgi_pass 127.0.0.1:9000;
修改为:
fastcgi_pass unix: /var/run/php5fpm.sock;
授权然后重启PHP:
chmod 777 /var/run/php5fpm.sock
重启nginx:
注意,不关闭SELINUX可能导致无法启动HTTP服务,参考下面方案关闭:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
5、安装zabbix server
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz
tar -zxvf zabbix-3.2.0.tar.gz
groupadd zabbix
useradd -g zabbix zabbix
yum install mysql-devel
yum install net-snmp-devel
./configure --prefix=/usr/local/zabbix-3.2/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
结果如下:
Configuration: Detected OS: linux-gnu Install path: /usr/local Compilation arch: linux Compiler: gcc Compiler flags: -g -O2 Library-specific flags: database: -I/usr/include/mysql -g -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing libXML2: -I/usr/include/libxml2 Net-SNMP: -I/usr/local/include -I/usr/lib64/perl5/CORE -I. -I/usr/include Enable server: yes Server details: With database: MySQL WEB Monitoring: cURL Native Jabber: no SNMP: yes IPMI: no SSH: no TLS: no ODBC: no Linker flags: -L/usr/lib64/mysql -L/usr/lib64 -rdynamic Libraries: -lmysqlclient -lxml2 -lnetsnmp -lcurl -lm -ldl -lresolv Enable proxy: no Enable agent: yes Agent details: TLS: no Linker flags: -rdynamic Libraries: -lcurl -lm -ldl -lresolv Enable Java gateway: no LDAP support: no IPv6 support: no *********************************************************** * Now run ‘make install‘ * * * * Thank you for using Zabbix! * * <http://www.zabbix.com> * ***********************************************************
make
make install
导入表:
mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
上述导库请务必注意顺序,否则会出现错误:
ERROR 1146 (42S02) at line 2: Table ‘zabbix.hosts‘ doesn‘t exist
配置 zabbix_server 配置文件:vim /usr/local/zabbix-3.2/etc/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
5.1 拷贝前端文件
mkdir /data/site/centos7/zabbix
cp -rp frontends/php/* /data/site/centos7/zabbix
启动 zabbix server
/usr/local/zabbix-3.2/sbin/zabbix_server
启动 nginx
/usr/local/nginx/sbin/nginx
启动 PHP
/usr/local/php-5.5.38/sbin/php-fpm
6、其它相关设置及错误解决
做本机HOTS解析
vim /etc/hosts
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
写zabbix_server服务文件:
vim /lib/systemd/system/zabbix_server.service
[Unit]
Description= zabbix_server
After=network.target
[Service]
Type=forking
ExecStart= /usr/local/zabbix-3.2/sbin/zabbix_server
ExecReload=
ExecStop=
PrivateTmp=true
[Install]
WantedBy=multi-user.target
写Nginx服务文件:
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -r reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
写PHP服务文件:
先启用PHP的PID文件
vim /usr/local/php-5.5.38/etc/php-fpm.conf
pid =/run/php-fpm.pid
再写PHP服务文件
vim /lib/systemd/system/php.service
[Unit]
Description=php
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php-5.5.38/sbin/php-fpm
ExecReload=/usr/local/php-5.5.38/sbin/php-fpm -USR2 `cat ‘run/php-fpm.pid’
ExecStop=/usr/local/php-5.5.38/sbin/php-fpm -INT `cat ‘run/php-fpm.pid’
PrivateTmp=true
[Install]
WantedBy=multi-user.target
完成后,授权、启动服务、设置服务自动启动:
chmod 754 /lib/systemd/system/zabbix_server.service
chmod 754 /lib/systemd/system/nginx.service
chmod 754 /lib/systemd/system/php.service
systemctl start zabbix_server
systemctl start php
systemctl start nginx
systemctl start zabbix_server
systemctl enable php
systemctl enable nginx
systemctl enable zabbix_server
以后如何修改了服务文件,需要使用systemctl daemon-reload 重新加载下服务。
如果少安装了PHP的扩展,以bcmath为例:
先安装
yum install php-bcmath
再参考下面方案添加扩展:
http://blog.csdn.net/u014642915/article/details/60868280
PHP连接MySQL报错"No such file or directory"的解决办法
http://www.linuxidc.com/Linux/2012-12/76150.htm
zabbix_server日志(默认位置)
cat /tmp/zabbix_server.log
很多时间权限会导致一些问题(比如NGINX安装向导要向网站中写入配置文件 /data/site/centos7/zabbix/conf/zabbix.conf.php),需要对CONF目录授权:
chmod -R 777 /data/site/centos7/zabbix/conf
安装后设置服务器:
7、安装Zabbix Agent
7.1、下载相关的软件包
wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.6-1.el7.x86_64.rpm
7.2、安装Zabbix Agent
yum localinstall zabbix-agent-3.2.6-1.el7.x86_64.rpm
7.3、修改Zabbix Agent配置
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.90.127
7.4、设置Zabbix Agent自动启动并启动Zabbix Agent
systemctl start zabbix-agent
systemctl enable zabbix-agent