Zabbix server(离线版)安装手册
由于zabbix server需要依赖MySQL及PHP的相关依赖,因此需要先安装好MySQL及PHP的相关依赖后方可安装zabbixserver。
安装MySQL
目录mysql下的rpm
1.新建mysql用户
- useradd mysql;
- passwd mysql;
2.用root用户
先查看有没有冲突,rpm -qa|grep mysql 如果已经有了卸载 rpm -e --nodeps
- rpm -ivh mysql-community-common-5.7.-.el6.x86_64.rpm
- rpm -ivh mysql-community-libs-5.7.-.el6.x86_64.rpm
- rpm -ivh mysql-community-libs-compact-
- rpm -ivh mysql-community-client-5.7.-.el6.x86_64.rpm
- rpm -ivh mysql-community-server-5.7.-.el6.x86_64.rpm
- rpm -ivh mysql-community-dev*
全安装方式ls *|xargs rpm -ivh
3.按照自己规划的目录修改。
- 使用root修改/etc/my.cnf
- datadir=/home/mysql/datadir
- log-error=/home/mysql/logs/mysqld.log
- pid-file=/home/mysql/mysqld/mysqld.pid
- 使用mysql用户创建上述目录 datadir logs及mysqld
- //chown -R mysql:mysql /home/mysql/datadir
- //chown -R mysql:mysql /home/mysql/logs/
- //chown -R mysql:mysql /home/mysql/mysqld/
- //根据/etc/my.cnf创建相应的文件,并授权
- //mkdir -p /var/run/mysql
- //mkdir -p /var/log/mysql
- //chown -R mysql:mysql /var/log/mysql
- //chown -R mysql:mysql /var/run/mysql
- //注:/etc/my.cnf中没有basedir路径,需要添加
- //basedir=/usr/local/mysql
4初始化数据库
使用root用户
- cd /usr/bin
4.1 创建一个有随机密码的root账户,
- mysqld --initialize --user=mysql
初始化成功后,查看该随机密码vi /home/mysql/logs/mysqld.log,最后一行记录了密码
使用mysql -u root -p,输入随机密码就可以登录
4.2 创建一个没有密码的root账户
- mysqld --initialize-insecure --user=mysql
使用命令mysql -u root--skip-password 登录
注:初始化时,mysqld服务会检查数据目录是否存在:
如果数据目录不存在,mysqld则会创建它。
如果数据目录存在,且不是空目录(即包含有文件或子目录),mysqld会显示一条错误信息并中止:
[ERROR] --initialize specified but thedata
directory exists. Aborting.
解决方案: 将数据目录重命名后,重新再初始化一次 mv /var/lib/mysql /var/lib/mysql.bak8.
4.配置mysql服务开机自动启动
#检查自启动项列表中没有mysqld这个,如果没有就添加mysqld:
- chkconfig --list mysqld
- chkconfig --add mysqld
#设置开机启动
- chkconfig mysqld on
5.关闭SELinux(安全控制模块)
查看是否关闭getenforce 或者sestatus -v
如果没有执行命令 setenforce 0 命令设置临时关闭,不用重启生效
或者vi /etc/sysconfig/selinux 永久关闭 SELINUX=disabled
5.启动mysql
#启动mysqld服务
- service mysqld start
#检查mysqld是否已经启动
- service mysqld status
6修改mysql用户密码(初始root密码文件在/home/mysql/log/mysqld.log)
- mysql -u root -p
- mysql -u root --skip-password
- mysql>alter user 'root'@'localhost' identified by 'unicom';
7.已root用户身份登录
- mysql -uroot -punicom
8.赋权 (若已含有zabbix_new则需要,否则不需要执行)
- grant all on zabbix_new.* to zabbix
安装PHP及相关依赖
1.检查gcc 及g++编译器(make 时需要,centos编译器目录)
- gcc -v
- g++ -v
如果没有g++
- rpm -ivh libstdc-++**
- rpm -ivh gcc-c++**
可以强制安装(慎用):
- rpm -ivh --force gcc-2.96-.i386.rpm
- rpm -ivh --nodeps --replacefilesgcc-c++-4.4.-.el6.x86_64.rpm (不依赖替代升级)
2.安装openssl(httpd需要),httpd依赖目录
检查rpm -qa|grep-i openssl
如果没有需要安装
- rpm -ivh zlib-devel-1.2.-.el6.x86_64.rpm
- rpm -ivh keyutils-libs-devel-1.4-.el6.x86_64.rpm
- rpm -ivh libcom_err-devel-1.41.-.el6.x86_64.rpm
- rpm -ivh libsepol-devel-2.0.-.el6.x86_64.rpm
- rpm -ivh libselinux-devel-2.0.-5.3.el6_4..x86_64.rpm
- rpm -ivh krb5-devel-1.10.-.el6_4..x86_64.rpm
- rpm -ivh openssl-devel-1.0.1e-.el6.x86_64.rpm
全安装ls *|xargs rpm -ivh
3.安装libmcrypt
解压包
- tar -xzvf libmcrypt-2.5..tar.gz
- cdlibmcrypt-2.5.
- ./configure --prefix=/usr/local/libmcrypt/ --with-zlib=/usr/local/zlib/
- make
- make install
4.安装httpd
- httpd-2.2..tar.gz解压
- ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-ssl--with-ssl=/usr/lib64/ --enable-cgi
- make
- make install
- 修改/etc/httpd/conf/httpd.conf在httpd.conf 里加入如下几句
- AddTypeapplication/x-httpd-PHP .php
- LoadModulephp5_module modules/libphp5 .so
- <IfModulemod_php5.c>
- AddType application/x-httpd-php .php
- AddType application/x-httpd-php-source .phps
- </IfModule>
- 做软连接
- ln -s /usr/local/apache2/modules/libphp5.so /usr/lib64/httpd/modules/libphp5.so(php安装完了之后才有)
5.安装libxml2 及 libxml2-devel是否安装了(php需要)
检测是否安装了 rpm -qa|grep libxml2
- rpm -ivh rpm -ivh libxml2-devel-2.7.-.el6.x86_64.rpm
检查/usr/lib/下是否有libxml2,若没有按如下方式加入软连接
- ln -s /usr/lib64/libxml2.so /usr/lib/libxml2.so
6.安装libcurl-devel ,libidn, automake
在php依赖包的libcurl-devel目录下
检查是否已安装:rpm-qa|grep libcurl-devel
libcurl-devel安装
- rpm -ivh autoconf-2.63-5.1.el6.noarch.rpm
- rpm -ivh automake-1.11.-.el6.noarch.rpm
- rpm -ivh libidn-devel-1.18-.el6.x86_64.rpm
- rpm -ivh libcurl-devel-7.19.-.el6_4.x86_64.rpm
7.检查在/usr/lib 下mysql目录是否存在,不存在建软连接(已完成)
- ln -s /usr/lib64/mysql /usr/lib/mysql
8.安装zlib
- zlib-1.2..tar.gz
- CFLAGS="-O3-fPIC" ./configure --prefix=/usr/local/zlib/
- make
注:需要将目录下的.a文件删掉重新编译才能使用。切记
- make install
9.安装libpng
- libpng-1.5..tar.xz
- ./configure --prefix=/usr/local/libpng
- xz -d *.xz
- make
- make install
- 安装libpng-devel
- rpm -ivh libpng-devel-1.2.-.el6_2.x86_64.rpm
10.安装jpeg
- jpegsrc.v6b.tar.gz
- ./configure --prefix=/usr/local/jpeg
- mkdir -p /usr/local/jpeg/bin
- mkdir -p /usr/local/jpeg/man/man1/
- make
- make install
- 需要自己建立目录
- 查找jpeglib.h,没有装libjpeg-devel相关包
- rpm -ivh libjpeg-turbo-devel-1.2.-.el6.x86_64.rpm
11.安装freetype
- freetype-2.1..tar
- ./configure --prefix=/usr/local/freetype
- make
- make install
- 先安装vpx
- rpm-ivh libvpx-1.3.-.el6_5.x86_64.rpm --nodeps
13.phpconfig ,按照实际情况修改/usr/local/apache2/bin/apxs,curl地址
- php-5.6..tar
- //MySQL安装指定到/usr/local/mysql版
- ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql --with-mysqli=/usr/bin/mysql_config--with-iconv-dir=/usr/local --with-freetype-dir=/usr/local/freetype/--with-jpeg-dir=/usr/local/jpeg/ --with-png-dir=/usr/local/libpng/--with-zlib=/usr/local/zlib/ --with-libxml-dir=/usr/local/libxml2 --enable-xml--disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl--with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect--enable-mbstring --with-mcrypt=/usr/local/libmcrypt/ --with-openssl --with-mhash --enable-pcntl --enable-sockets--enable-opcache=no --with-ldap-sasl --with-xmlrpc--with-apxs2=/usr/local/apache2/bin/apxs --enable-gettext --enable-soap --without-pear--enable-bcmath --with-xpm-dir=/usr/lib64 --with-mysql=/usr/--with-mysqli=/usr/bin/mysql_config --with-vpx-dir=/usr/lib64/
- //MySQL默认安装rpm版
- ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc--with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config--with-iconv-dir=/usr/local --with-freetype-dir=/usr/local/freetype/--with-jpeg-dir=/usr/local/jpeg/ --with-png-dir=/usr/local/libpng/--with-zlib=/usr/local/zlib/ --with-libxml-dir=/usr/local/libxml2 --enable-xml--disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl--with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm--enable-force-cgi-redirect --enable-mbstring --with-mcrypt=/usr/local/libmcrypt/--with-openssl --with-mhash--enable-pcntl --enable-sockets --enable-opcache=no --with-ldap-sasl--with-xmlrpc --with-apxs2=/usr/local/apache2/bin/apxs --enable-gettext--enable-soap --without-pear --enable-bcmath --with-xpm-dir=/usr/lib64--with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config--with-vpx-dir=/usr/lib64/
- //内存小于1G版
- ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc--with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local--with-freetype-dir=/usr/local/freetype/ --with-jpeg-dir=/usr/local/jpeg/--with-png-dir=/usr/local/libpng/ --with-zlib=/usr/local/zlib/--with-libxml-dir=/usr/local/libxml2 --enable-xml --disable-rpath--enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop--enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers--enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect--enable-mbstring --with-mcrypt=/usr/local/libmcrypt/ --with-openssl --with-mhash --enable-pcntl --enable-sockets--enable-opcache=no --with-ldap-sasl --with-xmlrpc--with-apxs2=/usr/local/apache2/bin/apxs --enable-gettext --enable-soap--without-pear --enable-bcmath --with-xpm-dir=/usr/lib64 --with-mysql=/usr/--with-mysqli=/usr/bin/mysql_config --with-vpx-dir=/usr/lib64/--disable-fileinfo
- //内存小于1G最终版
- ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc--with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config--with-iconv-dir=/usr/local --with-freetype-dir=/usr/local/freetype/--with-jpeg-dir=/usr/local/jpeg/ --with-png-dir=/usr/local/libpng/--with-zlib=/usr/local/zlib/ --with-libxml-dir=/usr/ --enable-xml--disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath--enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl--with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm--enable-force-cgi-redirect --enable-mbstring--with-mcrypt=/usr/local/libmcrypt/ --with-openssl --with-mhash --enable-pcntl --enable-sockets--enable-opcache=no --with-ldap-sasl --with-xmlrpc--with-apxs2=/usr/local/apache2/bin/apxs --enable-gettext --enable-soap--without-pear --enable-bcmath --with-xpm-dir=/usr/lib64 --with-mysql=/usr/--with-mysqli=/usr/bin/mysql_config --with-vpx-dir=/usr/lib64/--disable-fileinfo
- //内存大于1G最终版
- ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc--with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config--with-iconv-dir=/usr/local --with-freetype-dir=/usr/local/freetype/ --with-jpeg-dir=/usr/local/jpeg/--with-png-dir=/usr/local/libpng/ --with-zlib=/usr/local/zlib/--with-libxml-dir=/usr/ --enable-xml --disable-rpath --enable-discard-path--enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem--enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex--enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring--with-mcrypt=/usr/local/libmcrypt/ --with-openssl --with-mhash --enable-pcntl --enable-sockets--enable-opcache=no --with-ldap-sasl --with-xmlrpc--with-apxs2=/usr/local/apache2/bin/apxs --enable-gettext --enable-soap--without-pear --enable-bcmath --with-xpm-dir=/usr/lib64 --with-mysql=/usr/--with-mysqli=/usr/bin/mysql_config --with-vpx-dir=/usr/lib64/
- make
- make install
14.配置php.ini,拷贝到/usr/local/php/etc下,可以使用<?php phpinfo(); ?>检测路径
- 修改php.ini-development
- max_execution_time =
- post_max_size =32M
- max_input_time =
- date.timezone=PRC
- always_populate_raw_post_data=-
- cp php.ini-development /usr/local/php/etc/php.ini
12.安装gd(php安装完成后再安装)
- cd /root/software/php-5.6./ext/gd
- 执行:
- /usr/local/php/bin/phpize(php安装完后增加扩展时使用)
- #./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg=/usr/local/jpeg--with-png=/usr/local/libpng --with-freetype=/usr/local/freetype
- ./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg--with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
- 创建扩展,需要在/usr/local/php/etc/php.ini配置扩展
- make
- make install
- 然后打开/usr/local/php/etc/php.ini
- 找到;extension=/path/to/extension/msql.so增加一条:
- extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-/gd.so
- 安装gettext
- cd /root/software/php-5.6./ext/gettext
- 执行:
- /usr/local/php/bin/phpize
- ./configure --with-php-config=/usr/local/php/bin/php-config
- make
- make install
- 然后打开/usr/local/php/etc/php.ini
- 创建扩展,需要在/usr/local/php/etc/php.ini配置扩展
- extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-/gettext.so
- 在/var/www/html/下,建立test.php文件测试扩展包是否正确
- <?php
- php info();
- ?>
- php -r "phpinfo()"
15.启动hppted
- service httpd start
安装zabbix
1.安装依赖包(net-snmp*.rpm) (已完成)
- rpm -ivh elfutils-libelf-devel-0.152-.el6.x86_64.rpm
- rpm -ivh elfutils-devel-0.152-.el6.x86_64.rpm
- rpm -ivh lm_sensors-devel-3.1.-.el6.x86_64.rpm
- rpm -ivh tcp_wrappers-devel-7.6-.el6.x86_64.rpm
- rpm -ivh file-devel-5.04-.el6.x86_64.rpm
- rpm -ivh popt-devel-1.13-.el6.x86_64.rpm
- rpm -ivh rpm-devel-4.8.-.el6.x86_64.rpm
- rpm -ivh net-snmp-devel-5.5-.el6.x86_64.rpm
2.安装zabbix
- zabbix-3.0..tar.gz
- ./configure --prefix=/home/zabbix --enable-server --enable-agent --enable-proxy--with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl--with-libxml2
- make
- make install
3.创建zabbix用户及相应目录
- //检查是否已创建完成zabbix用户
- useradd zabbix
- passwd zabbix
- mkdir -p /var/log/zabbix/
- chown -R zabbix:zabbix /var/log/zabbix
4.创建zabbix数据库
- CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
5.创建mysql用户
- grantall privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
- flush privileges;
6.在zabbix的database目录下导入数据库,数据文件
- cd /root/software/zabbix-3.0.2/database/mysql
- mysql -uroot -punicom zabbix < schema.sql;
- mysql -uroot -punicom zabbix < images.sql;
- mysql -uroot -punicom zabbix < data.sql;
7.需要关闭iptables
查看防火墙状态:
- [root@centos6~]# service iptables status
iptables:未运行防火墙。
开启防火墙:
- [root@centos6~]# service iptables start
关闭防火墙:
- [root@centos6~]# service iptables stop
配置防火墙,开启80端口、3306端口
- vi /etc/sysconfig/iptables #编辑防火墙配置文件
- #Firewall configuration written by system-config-firewall
- #Manual customization of this file is not recommended.
- *filter
- :INPUTACCEPT [:]
- :FORWARDACCEPT [:]
- :OUTPUTACCEPT [:]
- -AINPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- -AINPUT -p icmp -j ACCEPT
- -AINPUT -i lo -j ACCEPT
- -AINPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
- -AINPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
- -AINPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
- -AINPUT -j REJECT --reject-with icmp-host-prohibited
- -AFORWARD -j REJECT --reject-with icmp-host-prohibited
- COMMIT
8.拷贝界面到www目录下
#根据自己设置的目录来
- cp -rf /root/software/zabbix-3.0./frontends/php /var/www/html/zabbix
- cp -rf /root/software/zabbix-3.0./frontends/php /usr/local/apache2/htdocs/zabbix(必须要设置,否则看不到)
- service httpd restart
9.配置服务端服务
#根据实际安装路径来
- cp /usr/local/src/zabbix-2.2./misc/init.d/fedora/core/zabbix_server/etc/rc.d/init.d/zabbix_server #服务端
- cp /usr/local/src/zabbix-2.2./misc/init.d/fedora/core/zabbix_agentd/etc/rc.d/init.d/zabbix_agentd #客户端
- chmod +x /etc/rc.d/init.d/zabbix_server #添加脚本执行权限
- chmod +x /etc/rc.d/init.d/zabbix_agentd #添加脚本执行权限
- chkconfig zabbix_server on #添加开机启动
10.查看zabbix_server.config配置是否正确
zabbix_server.config信息
- vi /home/zabbix/etc/zabbix_server.conf
- 注:主要配置数据库信息
- 详细查阅:
- http://blog.csdn.net/csolo/article/details/53083033
- servicezabbix_server start 启动zabbix-server
11设置/etc/systemd/logind.confRemoveIPC=no
- 访问zabbix地址
- http://ip/zabbix/setup.php
注:具体安装路径需以实际安装路径为准
Zabbix server(离线版)安装手册的更多相关文章
- w3cschool菜鸟教程离线版chm手册正式发布
w3cschool菜鸟教程是一个提供了最全的的web技术基础教程网站.网站包含了HTML教程.CSS教程.Javascript教程.PHP教程等各种建站基础教程.同时也提供了大量的在线实例,通过实例, ...
- Zabbix server 3.2安装部署
zabbix server 前提环境: CentOS 6 Lnmp php需要的包(bcmath,mbstring,sockets,gd,libxml,xmlwriter,xmlreader,ctyp ...
- Chrome小技巧:如何下载离线版安装文件
每当chrome有更新之后,都有不少用户想要下载离线版的安装文件,但苦于找不到下载地址而发愁,其实这个问题很简单,下面我来分享一下方法(仅针对Windows操作系统): 对于稳定版(正式版)Chrom ...
- zabbix server源码安装
一.准备工作 yum -y install net-snmp-devel php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-se ...
- MYSQL社区版安装手册
https://www.jb51.net/article/140412.htm 在本教程中使用MySQL最新的MySQL服务8.0.11的社区绿色版本进行安装,绿色版为zip格式的包,安装分为以下四步 ...
- zabbix server、agent安装及使用
先准备yum源,当然你有打好的rpm包那更好 [root@linux-node1 ~]# cat /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix O ...
- node离线版安装
1.下载 下载地址:https://nodejs.org/zh-cn/download/ 选择相应的版本下载 2.解压缩 将文件解压到要安装的位置,并新建两个目录 node-global :npm全局 ...
- docker 一键安装zabbix server、zabbix agent
基本原理.须知:1.zabbix 分为zabbix server和zabbix agent,其中zabbix server需要web环境,并且其数据存储在独立的数据库中:2.docker是一种容器服务 ...
- zabbix server安装(二)
https://mp.weixin.qq.com/s/ogaqiX4vhtGLepuNf-1ItA zabbix依赖LNMP或LAMP,下面讲解LNMP安装到zabbix web页面的访问. 一.ng ...
随机推荐
- Docker Swarm学习教程
原创作品,转载请注明出处:点我 Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机 ...
- 高精度 - SGU 112 a^b-b^a
a^b-b^a Problem's Link Mean: 略 analyse: 简单题,只用编个高精度乘法和减法即可. Time complexity: O(N) view code java im ...
- HashSet非常的消耗空间,TreeSet因为有排序功能,因此资源消耗非常的高,我们应该尽量少使用
注:HashMap底层也是用数组,HashSet底层实际上也是HashMap,HashSet类中有HashMap属性(我们如何在API中查属性).HashSet实际上为(key.null)类型的Has ...
- 【HDU】3622 Bomb Game(2-SAT)
http://acm.hdu.edu.cn/showproblem.php?pid=3622 又是各种逗.. 2-SAT是一种二元约束,每个点可以置于两种状态,但只能处于一种状态,然后图是否有解就是2 ...
- Mac终端运行java程序
1.编辑源文件HelloWorld.java 2.编译源文件 javac HelloWorld.java 生成HelloWorld.class文件 3.执行java字节码 注意,一定要到源目录下,并且 ...
- linux默认的目录介绍
http://www.cnblogs.com/shishm/archive/2011/11/03/2234954.html
- Linux命令之乐--md5sum
md5sum命令用于生成和校验文件的md5值.它会逐位对文件的内容进行校验,它常用于检查文件的完整性. 读取文件的MD5值 [root@new ~]# md5sum /usr/local/sbin/* ...
- 《Shiro框架》shiro学习中报错解决方法
[1] 最近在学习shiro,在学习过程中出现了一个问题,报错如下: org.apache.shiro.UnavailableSecurityManagerException: No Security ...
- 《jquery权威指南2》学习笔记------基础函数
Math.floor(Math.random() * 7 + 1); Math.random() 生成0和1之间的随机小数Math.random() * 7 生成0和7之间的随机小数Math.rand ...
- Windows下IPython安装
1:安装Python, 下载后安装即可:https://www.python.org/downloads/windows/,(选择Python2或Python3) 添加Path环境变量 2:安装ez_ ...