Centos

Centos

Centos7下使用Yum安装Zabbix2.4

运维技术Geek小A 发表了文章 • 0 个评论 • 51 次浏览 • 2017-06-17 18:09 • 来自相关话题

一、Zabbix简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
 

二、Zabbix安装

本文档在同一台机器上安装了zabbix-server 和zabbix-agent 自己监控自己。
 
 
1、配置LAMP
 
这个可以参考之前的文章:http://openskill.cn/article/578 
 
2、配置Yum源
Zabbix在CentOS基本源里不可获得,因此必须配置EPEL 和Zabbix 官方repository

安装EPEL repository
yum install epel-release配置ZabbixZone package repository and GPG key
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm3、安装Zabbix server and agent(agent是可选的)
安装Zabbix server and agent:(配置自己监控自己,所以安装了zabbix-agent)
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway编辑 file /etc/httpd/conf.d/zabbix:
vi /etc/httpd/conf.d/zabbix.conf更新时区:
php_value date.timezone Asia/Shanghai重启httpd
systemctl restart httpd
4、创建MySQL 数据库和用户
 
登录MariaDB:
mysql –u root –p创建一个数据库‘zabbixdb’和数据库用户‘zabbix’
MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';

MariaDB [(none)]> flush privileges;
 5、数据库导入zabbix template
使用数据库用户zabbix登录数据库
mysql –uzabbix –p切换到zabbix数据库
use zabbix导入模板数据
MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/schema.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/images.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/data.sql
 6、配置Zabbix server
编辑文件/etc/zabbix/zabbix_server.conf
vi /etc/zabbix/zabbix_server.conf配置下面的三个参数
[...]
DBName=zabbix
[...]
DBUser=zabbix
[...]
DBPassword=zabbix
[...]
 7、配置zabbix-agent
vi /etc/zabbix/zabbix_agentd.conf配置zabbix server 的ip
[...]

## Line 85 - Specify Zabbix server ##

Server=127.0.0.1

[...]

## Line 126 - Specify Zabbix server ##

ServerActive=127.0.0.1

[...]

## Line 137 - Specify Zabbix server Hostname or IP address ##

Hostname=127.0.0.1

[...]
8、修改PHP 设置
 
修改php.ini为zabbix 建议的设置

编辑文件 php.ini
vi /etc/php.ini设置下面的参数
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
9、修改Firewall 和SELinux 设置
 
开放zabbix端口10050 and 10051.
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp重启firewall
systemctl restart firewalld如果使用 SELinux, 运行以下命令使 Apache 可以和 Zabbix通信
setsebool -P httpd_can_connect_zabbix=1
 10、允许Zabbix web console 对特定IP段可用 (可选)
编辑文件 /etc/httpd/conf.d/zabbix.conf
vi /etc/httpd/conf.d/zabbix.conf添加允许访问 zabbix web interface的ip段. 如果设置 ‘Allow from All’, 这可以允许全部可以访问
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted

<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>启动zabbix-server 和zabbix-agent。重启httpd,,并设置zabbix-server和zabbix-agent开机自动启动
systemctl start zabbix-server

systemctl start zabbix-agent

systemctl restart httpd

systemctl restart mariadb

systemctl enable zabbix-server

systemctl enable zabbix-agent ---- (可选)
11、通过控制台配置Zabbix
 
浏览器访问http://ip-address/zabbix



检查包的完整性和参数配置




数据zabbix数据库名、数据库用户和密码,并测试




输入Server name(可选)




预安装summary




点击完成,完成安装




安装完成后,重定向到zabbix控制台登录页面. 输入用户名和密码,默认的用户名和密码为admin/zabbix.




管理仪表盘页面如下




英文原文地址:http://www.unixmen.com/how-to-install-zabbix-server-on-centos-7/​   查看全部


一、Zabbix简介


zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
 


二、Zabbix安装


本文档在同一台机器上安装了zabbix-server 和zabbix-agent 自己监控自己。
 
 
1、配置LAMP
 
这个可以参考之前的文章:http://openskill.cn/article/578 
 
2、配置Yum源
Zabbix在CentOS基本源里不可获得,因此必须配置EPEL 和Zabbix 官方repository

安装EPEL repository
yum install epel-release
配置ZabbixZone package repository and GPG key
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm
3、安装Zabbix server and agent(agent是可选的)
安装Zabbix server and agent:(配置自己监控自己,所以安装了zabbix-agent)
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway
编辑 file /etc/httpd/conf.d/zabbix:
vi /etc/httpd/conf.d/zabbix.conf
更新时区:
php_value date.timezone Asia/Shanghai
重启httpd
systemctl restart httpd

4、创建MySQL 数据库和用户
 
登录MariaDB:
mysql –u root –p
创建一个数据库‘zabbixdb’和数据库用户‘zabbix’
MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';

MariaDB [(none)]> flush privileges;

 5、数据库导入zabbix template
使用数据库用户zabbix登录数据库
mysql –uzabbix –p
切换到zabbix数据库
use zabbix
导入模板数据
MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/schema.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/images.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/data.sql

 6、配置Zabbix server
编辑文件/etc/zabbix/zabbix_server.conf
vi /etc/zabbix/zabbix_server.conf
配置下面的三个参数
[...]
DBName=zabbix
[...]
DBUser=zabbix
[...]
DBPassword=zabbix
[...]

 7、配置zabbix-agent
vi /etc/zabbix/zabbix_agentd.conf
配置zabbix server 的ip
[...]

## Line 85 - Specify Zabbix server ##

Server=127.0.0.1

[...]

## Line 126 - Specify Zabbix server ##

ServerActive=127.0.0.1

[...]

## Line 137 - Specify Zabbix server Hostname or IP address ##

Hostname=127.0.0.1

[...]

8、修改PHP 设置
 
修改php.ini为zabbix 建议的设置

编辑文件 php.ini
vi /etc/php.ini
设置下面的参数
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai

9、修改Firewall 和SELinux 设置
 
开放zabbix端口10050 and 10051.
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
重启firewall
systemctl restart firewalld
如果使用 SELinux, 运行以下命令使 Apache 可以和 Zabbix通信
setsebool -P httpd_can_connect_zabbix=1

 10、允许Zabbix web console 对特定IP段可用 (可选)
编辑文件 /etc/httpd/conf.d/zabbix.conf
vi /etc/httpd/conf.d/zabbix.conf
添加允许访问 zabbix web interface的ip段. 如果设置 ‘Allow from All’, 这可以允许全部可以访问
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted

<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
启动zabbix-server 和zabbix-agent。重启httpd,,并设置zabbix-server和zabbix-agent开机自动启动
systemctl start zabbix-server

systemctl start zabbix-agent

systemctl restart httpd

systemctl restart mariadb

systemctl enable zabbix-server

systemctl enable zabbix-agent ---- (可选)

11、通过控制台配置Zabbix
 
浏览器访问http://ip-address/zabbix
zabbix1.png
检查包的完整性和参数配置
zabbix2.png

数据zabbix数据库名、数据库用户和密码,并测试
zabbix3.png

输入Server name(可选)
zabbix4.png

预安装summary
zabbix5.png

点击完成,完成安装
zabbix6.png

安装完成后,重定向到zabbix控制台登录页面. 输入用户名和密码,默认的用户名和密码为admin/zabbix.
zabbix7.png

管理仪表盘页面如下
zabbix8.png

英文原文地址:http://www.unixmen.com/how-to-install-zabbix-server-on-centos-7/​  

Centos7下配置LAMP过程记录

运维技术Geek小A 发表了文章 • 0 个评论 • 49 次浏览 • 2017-06-17 00:45 • 来自相关话题

LAMP指的Linux(操作系统)、Apache HTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
 
下面讨论如何在RHEL/CentOS/Scientific Linux 7上搭建LAMP环境.

一、Install Apache

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

在终端以root权限运行以下命令:yum install httpd -y启动Apachesystemctl start httpd设置开机启动systemctl enable httpdfirewall设置允许远程登录:firewall-cmd --permanent --add-service=http

systemctl restart firewalld测试Apache

浏览器访问 http://localhost/ or http://server-ip-address/





二、Install MariaDB

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
 
安装MariaDB:yum install mariadb-server mariadb -y启动MariaDBsystemctl start mariadb设置开机启动systemctl enable mariadb设置root密码
默认情况下,root密码为空。为防止未授权的访问,我们设置root密码mysql_secure_installation

三、Install PHP

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言,主要适用于Web开发领域。

使用以下的命令安装phpyum install php php-mysql php-gd php-pear -y测试PHP:
在Apache文档根目录创建“testphp.php”vi /var/www/html/testphp.php编辑内容如下<?php
phpinfo();
?>重启 httpd 服务:systemctl restart httpd浏览器访问 http://server-ip-address/testphp.php. 将会显示php的版本信息.




也可以使用如下命令安装所有php modules,重启httpd服务,查看http://server-ip-address/testphp.php  ,可以看到所有安装的modulesyum install php* -y

四、Install phpMyAdmin (可选)

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

添加 EPEL repository   参照(Install EPEL Repository on RHEL/CentOS/Scientific Linux 7)yum install epel-release安装 phpMyAdmin:yum install phpmyadmin -y配置phpMyAdmin

默认,phpMyAdmin只能由本机访问。为了能够远程访问,编辑phpmyadmin.conf file:vi /etc/httpd/conf.d/phpMyAdmin.conf查找/<Directory> ,注释掉或删除如下内容<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>添加<Directory /usr/share/phpMyAdmin/>
Options none
AllowOverride Limit
Require all granted
</Directory>编辑“config.inc.php” 改变phpMyAdmin的authentication,修改“cookie” 为 “http”vi /etc/phpMyAdmin/config.inc.phpChange ‘cookie’ to ‘http’.




重启the Apache service:systemctl restart httpd访问 phpmyadmin 的控制台 http://server-ip-address/phpmyadmin/




输入MySQL username and password,将重定向到PhpMyAdmin main web interface.




现在你可以通过phpMyAdmin web interface 管理你的MariaDB数据库了。 查看全部
LAMP指的Linux(操作系统)、Apache HTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
 
下面讨论如何在RHEL/CentOS/Scientific Linux 7上搭建LAMP环境.


一、Install Apache


Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

在终端以root权限运行以下命令:
yum install httpd -y
启动Apache
systemctl start httpd
设置开机启动
systemctl enable httpd
firewall设置允许远程登录:
firewall-cmd --permanent --add-service=http

systemctl restart firewalld
测试Apache

浏览器访问 http://localhost/ or http://server-ip-address/
apachetesting.png


二、Install MariaDB


MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
 
安装MariaDB:
yum install mariadb-server mariadb -y
启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
设置root密码
默认情况下,root密码为空。为防止未授权的访问,我们设置root密码
mysql_secure_installation


三、Install PHP


PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言,主要适用于Web开发领域。

使用以下的命令安装php
yum install php php-mysql php-gd php-pear -y
测试PHP:
在Apache文档根目录创建“testphp.php”
vi /var/www/html/testphp.php
编辑内容如下
<?php 
phpinfo();
?>
重启 httpd 服务:
systemctl restart httpd
浏览器访问 http://server-ip-address/testphp.php. 将会显示php的版本信息.
phpinfo.png

也可以使用如下命令安装所有php modules,重启httpd服务,查看http://server-ip-address/testphp.php  ,可以看到所有安装的modules
yum install php* -y


四、Install phpMyAdmin (可选)


phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

添加 EPEL repository   参照(Install EPEL Repository on RHEL/CentOS/Scientific Linux 7)
yum install epel-release
安装 phpMyAdmin:
yum install phpmyadmin -y
配置phpMyAdmin

默认,phpMyAdmin只能由本机访问。为了能够远程访问,编辑phpmyadmin.conf file:
vi /etc/httpd/conf.d/phpMyAdmin.conf
查找/<Directory> ,注释掉或删除如下内容
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
添加
<Directory /usr/share/phpMyAdmin/>
Options none
AllowOverride Limit
Require all granted
</Directory>
编辑“config.inc.php” 改变phpMyAdmin的authentication,修改“cookie” 为 “http”
vi /etc/phpMyAdmin/config.inc.php
Change ‘cookie’ to ‘http’.
cookie.png

重启the Apache service:
systemctl restart httpd
访问 phpmyadmin 的控制台 http://server-ip-address/phpmyadmin/
phpmyadmin.png

输入MySQL username and password,将重定向到PhpMyAdmin main web interface.
madmin.png

现在你可以通过phpMyAdmin web interface 管理你的MariaDB数据库了。

Centos7下添加开机自启动服务和脚本

运维技术push 发表了文章 • 0 个评论 • 445 次浏览 • 2017-03-10 20:41 • 来自相关话题

最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法。
 

1、添加开机自启服务

我这里以docker 服务为例,设置如下两条命令即可:
# systemctl enable docker.service #设置docker服务为自启动服务 相当于我们的 chkconfig docker on
# sysstemctl start docker.service #启动docker服务

2、添加开机自启脚本

在centos7中增加脚本有两种常用的方法,以脚本StartTomcat.sh为例:
#!/bin/bash
# description:开机自启脚本
/usr/local/tomcat/bin/startup.sh #启动tomcat方法一:
1、赋予脚本可执行权限(/opt/script/StartTomcat.sh是你的脚本路径)
# chmod +x /opt/script/StartTomcat.sh2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容
echo "/opt/script/StartTomcat.sh" >> /etc/rc.d/rc.local3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
方法二:
1、将脚本移动到/etc/rc.d/init.d目录下
# mv /opt/script/StartTomcat.sh /etc/rc.d/init.d2、增加脚本的可执行权限
chmod +x /etc/rc.d/init.d/StartTomcat.sh3、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add StartTomcat.sh
chkconfig StartTomcat.sh on 查看全部
最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法。
 


1、添加开机自启服务


我这里以docker 服务为例,设置如下两条命令即可:
# systemctl enable docker.service  #设置docker服务为自启动服务 相当于我们的 chkconfig docker on
# sysstemctl start docker.service #启动docker服务


2、添加开机自启脚本


在centos7中增加脚本有两种常用的方法,以脚本StartTomcat.sh为例:
#!/bin/bash
# description:开机自启脚本
/usr/local/tomcat/bin/startup.sh #启动tomcat
方法一:
1、赋予脚本可执行权限(/opt/script/StartTomcat.sh是你的脚本路径)
# chmod +x /opt/script/StartTomcat.sh
2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容
echo "/opt/script/StartTomcat.sh" >> /etc/rc.d/rc.local
3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local

方法二:
1、将脚本移动到/etc/rc.d/init.d目录下
# mv  /opt/script/StartTomcat.sh /etc/rc.d/init.d
2、增加脚本的可执行权限
chmod +x  /etc/rc.d/init.d/StartTomcat.sh
3、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add StartTomcat.sh
chkconfig StartTomcat.sh on

Centos 安装crond出现报错

运维技术Nock 回复了问题 • 2 人关注 • 1 个回复 • 639 次浏览 • 2017-02-11 18:38 • 来自相关话题

CentOS下设置代理上网各种小技巧

运维技术Rock 发表了文章 • 0 个评论 • 405 次浏览 • 2016-12-21 16:37 • 来自相关话题

最近有人问CentOS如何设置各种代理上网;下面就为大家带来CentOS设置各种代理上网的方法;有需要的朋友可以看看。
 

1、网页上网​

桌面版的Centos的话,网页上网设置代理很简单,在firefox浏览器下 :
Edit-->>Preferences-->>Advanced-->>Network在Connection下点击Settings,里面的manual proxy configuration里设置IP和PORT即可。
 

2、yum代理设置

编辑文件为:/etc/yum.conf ,在里面添加这一行:proxy=IP:PORT这里的IP是你代理服务器的ip,端口也是你代理服务器的服务端口。
 

3、wget代理设置

编辑文件为:/etc/wgetrc , 添加下面两行:
http_proxy = IP:PORT
ftp_proxy = IP:PORT
 

4、系统环境代理设置

编辑文件为/etc/profile,如果只想给自己的账户设置,则编辑~/.bashrc即可
添加如下三行:
# add proxy for network
export http_proxy=http://child-prc.intel.com:913
export https_proxy=http://child-prc.intel.com:913
export ftp_proxy=$http_proxy然后source /etc/profile 或者source ~/.bashrc即可 查看全部
Centosimage.png

最近有人问CentOS如何设置各种代理上网;下面就为大家带来CentOS设置各种代理上网的方法;有需要的朋友可以看看。
 


1、网页上网​


桌面版的Centos的话,网页上网设置代理很简单,在firefox浏览器下 :
Edit-->>Preferences-->>Advanced-->>Network
在Connection下点击Settings,里面的manual proxy configuration里设置IP和PORT即可。
 


2、yum代理设置


编辑文件为:/etc/yum.conf ,在里面添加这一行:
proxy=IP:PORT
这里的IP是你代理服务器的ip,端口也是你代理服务器的服务端口。
 


3、wget代理设置


编辑文件为:/etc/wgetrc , 添加下面两行:
http_proxy = IP:PORT  
ftp_proxy = IP:PORT

 


4、系统环境代理设置


编辑文件为/etc/profile,如果只想给自己的账户设置,则编辑~/.bashrc即可
添加如下三行:
# add proxy for network
export http_proxy=http://child-prc.intel.com:913
export https_proxy=http://child-prc.intel.com:913
export ftp_proxy=$http_proxy
然后source /etc/profile 或者source ~/.bashrc即可

安装Vim报错

运维技术采菊篱下 回复了问题 • 2 人关注 • 1 个回复 • 406 次浏览 • 2016-12-10 20:46 • 来自相关话题

利用npm在服务器上安装yslow

运维技术OpenSkill 发表了文章 • 0 个评论 • 420 次浏览 • 2016-09-30 18:22 • 来自相关话题

wget -c http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
tar zxf node-v0.12.4.tar.gz
cd node-v0.12.4
./configure && make && make install
sleep 1

npm config set registry http://registry.cnpmjs.org
npm install yslow -g 查看全部
wget -c http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
tar zxf node-v0.12.4.tar.gz
cd node-v0.12.4
./configure && make && make install
sleep 1

npm config set registry http://registry.cnpmjs.org
npm install yslow -g

Linux的net.ipv4.tcp_timestamps参数

运维技术采菊篱下 发表了文章 • 2 个评论 • 482 次浏览 • 2016-09-05 00:09 • 来自相关话题

今天发生了一个奇怪的现象,在家里始终打开公司的网站打开不了,我就齐了怪了,然后我就各种测试,从ping到dig域名,然后再curl,都是没有问题的,但是就是打不开,最好没有办法只能抓包了,从抓包的然后来看就是syn-ack没有返回,然后就google到底是因为什么?
 
原因就是net.ipv4.tcp_timestamps=1,启用了时间戳,原理如下:
问题出在了 tcp 三次握手,如果有一个用户的时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。
 
解决:
net.ipv4.tcp_timestamps = 0

然后syctlp -p生效即可。 查看全部
今天发生了一个奇怪的现象,在家里始终打开公司的网站打开不了,我就齐了怪了,然后我就各种测试,从ping到dig域名,然后再curl,都是没有问题的,但是就是打不开,最好没有办法只能抓包了,从抓包的然后来看就是syn-ack没有返回,然后就google到底是因为什么?
 
原因就是net.ipv4.tcp_timestamps=1,启用了时间戳,原理如下:
问题出在了 tcp 三次握手,如果有一个用户的时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。
 
解决:
net.ipv4.tcp_timestamps = 0

然后syctlp -p生效即可。

关于Linux平台下/tmp下文件被清理探索

运维技术being 发表了文章 • 0 个评论 • 1214 次浏览 • 2016-07-22 09:31 • 来自相关话题

昨天使用./bin/graceful_stop.sh bighad1停止一台hbase regionserver节点失败,log如下所示:2016-07-21 14:25:59,580 INFO [main] zookeeper.ZooKeeper: Client environment:user.dir=/home/chris/hbase-0.98.7-hadoop2/bin
2016-07-21 14:25:59,581 INFO [main] zookeeper.ZooKeeper: Initiating client connection, connectString=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181 sessionTimeout=90000 watcher=hconnection-0x661261ba, quorum=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181, baseZNode=/hbase
2016-07-21 14:25:59,603 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Opening socket connection to server 10.0.59.225/10.0.59.225:2181. Will not attempt to authenticate using SASL (unknown error)
2016-07-21 14:25:59,610 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Socket connection established to 10.0.59.225/10.0.59.225:2181, initiating session
2016-07-21 14:25:59,617 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Session establishment complete on server 10.0.59.225/10.0.59.225:2181, sessionid = 0x3500747e7e6841d, negotiated timeout = 40000
RuntimeError: Server bighad1:60020 not online
stripServer at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:225
unloadRegions at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:336
(root) at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:515
2016-07-21T06:26:00 Unloaded bighad1 region(s)
2016-07-21T06:26:00 Stopping regionserver
no regionserver to stop because no pid file /tmp/hbase-root-regionserver.pid
2016-07-21T06:26:00 Restoring balancer state to从日记中很容易看出来,no pid file  /tmp/hbase-root-regionserver.pid没有这个pid文件(默认如果不在hbase-env.sh文件中指定pid文件存放目录的话,默认是在/tmp下):# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids

这是hbase-env.sh默认的设置。现在问题很显而易见,就是hbase reregionserver node的pid文件被删除了。那为什么会被删除呢?下面给大家介绍一下/tmp目录,以及在Linux下的清理机制。
 
Linux下/tmp目录,通常被大家叫做临时目录,而且文件夹里面的文件会被清空,那系统默认多长时间清空的,是怎么清空的呢,下面给大家介绍一下,也记录一下我的这次学习过程。
 
在Centos/RHEL/Fedora系统下存在清理机制(Ubuntu下没有,我的系统是Centos6.5)
有时候开发习惯性的将一些临时文件放在tmp目录下,让其自然删除。同时,为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。然后可能好多开源的应用程序如Mysql、HDFS、HBSE的开发者,也有这种习惯。其实如果开发者对系统有这种机制概念的话,我想他不会把一些PID文件目录默认设置到/tmp下面,然后很多开源的软件程序都是由国外的开发者发起的,并且Ubuntu系统在国外深受开发者喜欢,所以可能这个问题在他们那就ok了。如果你是在Centos下最小化安装的,默认是没有tmpwatch命令的。
 
安装:yum install tmpwatch
tmpwatch命令,他的作用就是删除一段时间内不使用的文件(removes files which haven’t been accessed for a period of time)。 
 
安装后会在/etc/cron.daily/目录下生成一个tmpwatch文件。内容如下:#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done从脚本中可看出,tmp目录会删除10天未访问过的文件。

我们看看/usr/sbin/tmpwatch "$flags" 30d /var/tmp这一行,关键的是这个30d,就是30天的意思,这个就决定了30天清理/var/tmp下不访问的文件。如果说,你想一天一清理的话,就把这个30d改成1d。可以DIY!
 
但有个问题需要注意,如果你设置更短的时间来清理的话,比如说是30分钟、10秒等等,你可以在这个文件中设置,但你会发现重新电脑,他不清理/tmp文件夹里面的内容,这是为什么呢?这就是tmpwatch他所在的位置决定的,他的上层目录是/etc/cron.daily/,而这个目录是第天执行一次计划任务,所以说,你设置了比一天更短的时间,他就不起作用了。
 
所以结论是:在Centos6中,系统自动清理/tmp文件夹的默认时限是30天,其他系统待考证!
 
在Debian\Ubuntu系统中(Ubuntu 12.04.2 LTS 为实验环境)
上面我说到在Ubuntu下没有tmpwatch清理机制,但是在Ubuntu系统中,在/tmp文件夹里面的内容,每次开机都会被清空,如果不想让他自动清理的话,只需要更改rcS文件中的TMPTIME的值。 
 
修改:# sudo vi /etc/default/rcS
TMPTIME=0

#change set -1
TMPTIME=-1或者是无限大把 TMPTIME=0修改成 TMPTIME=-1或者是无限大,改成这样的话,系统在重新启动的时候就不会清理你的/tmp目录了。 依些类推,如果说要限制多少时间来更改的话,就可以改成相应的数字(本人没有测试,我是这么理解的)
 
所以结论是:在Ubuntu中,系统自动清理/tmp文件夹的时限默认每次启动
 
tmpwatch工具介绍
tmpwatch工具从指定的目录中递归地搜索并删除指定的目录中一段时间未访问的文件。

tmpwatch参数说明:-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。对于Mysql、HDFS、HBASE等应用,如果将pid和socket文件创建在tmp目录下,要将这两个文件排除在外,否则mysql重启或使用socket文件登录时,提示找不到文件。 查看全部
昨天使用./bin/graceful_stop.sh bighad1停止一台hbase regionserver节点失败,log如下所示:
2016-07-21 14:25:59,580 INFO  [main] zookeeper.ZooKeeper: Client environment:user.dir=/home/chris/hbase-0.98.7-hadoop2/bin
2016-07-21 14:25:59,581 INFO [main] zookeeper.ZooKeeper: Initiating client connection, connectString=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181 sessionTimeout=90000 watcher=hconnection-0x661261ba, quorum=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181, baseZNode=/hbase
2016-07-21 14:25:59,603 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Opening socket connection to server 10.0.59.225/10.0.59.225:2181. Will not attempt to authenticate using SASL (unknown error)
2016-07-21 14:25:59,610 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Socket connection established to 10.0.59.225/10.0.59.225:2181, initiating session
2016-07-21 14:25:59,617 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Session establishment complete on server 10.0.59.225/10.0.59.225:2181, sessionid = 0x3500747e7e6841d, negotiated timeout = 40000
RuntimeError: Server bighad1:60020 not online
stripServer at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:225
unloadRegions at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:336
(root) at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:515
2016-07-21T06:26:00 Unloaded bighad1 region(s)
2016-07-21T06:26:00 Stopping regionserver
no regionserver to stop because no pid file /tmp/hbase-root-regionserver.pid
2016-07-21T06:26:00 Restoring balancer state to
从日记中很容易看出来,no pid file  /tmp/hbase-root-regionserver.pid没有这个pid文件(默认如果不在hbase-env.sh文件中指定pid文件存放目录的话,默认是在/tmp下):
# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids

这是hbase-env.sh默认的设置。
现在问题很显而易见,就是hbase reregionserver node的pid文件被删除了。那为什么会被删除呢?下面给大家介绍一下/tmp目录,以及在Linux下的清理机制。
 
Linux下/tmp目录,通常被大家叫做临时目录,而且文件夹里面的文件会被清空,那系统默认多长时间清空的,是怎么清空的呢,下面给大家介绍一下,也记录一下我的这次学习过程。
 
在Centos/RHEL/Fedora系统下存在清理机制(Ubuntu下没有,我的系统是Centos6.5)
有时候开发习惯性的将一些临时文件放在tmp目录下,让其自然删除。同时,为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。然后可能好多开源的应用程序如Mysql、HDFS、HBSE的开发者,也有这种习惯。其实如果开发者对系统有这种机制概念的话,我想他不会把一些PID文件目录默认设置到/tmp下面,然后很多开源的软件程序都是由国外的开发者发起的,并且Ubuntu系统在国外深受开发者喜欢,所以可能这个问题在他们那就ok了。如果你是在Centos下最小化安装的,默认是没有tmpwatch命令的。
 
安装:
yum install tmpwatch

tmpwatch命令,他的作用就是删除一段时间内不使用的文件(removes files which haven’t been accessed for a period of time)。 
 
安装后会在/etc/cron.daily/目录下生成一个tmpwatch文件。内容如下:
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done
从脚本中可看出,tmp目录会删除10天未访问过的文件。

我们看看/usr/sbin/tmpwatch "$flags" 30d /var/tmp这一行,关键的是这个30d,就是30天的意思,这个就决定了30天清理/var/tmp下不访问的文件。如果说,你想一天一清理的话,就把这个30d改成1d。可以DIY!
 
但有个问题需要注意,如果你设置更短的时间来清理的话,比如说是30分钟、10秒等等,你可以在这个文件中设置,但你会发现重新电脑,他不清理/tmp文件夹里面的内容,这是为什么呢?这就是tmpwatch他所在的位置决定的,他的上层目录是/etc/cron.daily/,而这个目录是第天执行一次计划任务,所以说,你设置了比一天更短的时间,他就不起作用了。
 
所以结论是:在Centos6中,系统自动清理/tmp文件夹的默认时限是30天,其他系统待考证!
 
在Debian\Ubuntu系统中(Ubuntu 12.04.2 LTS 为实验环境)
上面我说到在Ubuntu下没有tmpwatch清理机制,但是在Ubuntu系统中,在/tmp文件夹里面的内容,每次开机都会被清空,如果不想让他自动清理的话,只需要更改rcS文件中的TMPTIME的值。 
 
修改:
# sudo vi /etc/default/rcS
TMPTIME=0

#change set -1
TMPTIME=-1或者是无限大
把 TMPTIME=0修改成 TMPTIME=-1或者是无限大,改成这样的话,系统在重新启动的时候就不会清理你的/tmp目录了。 依些类推,如果说要限制多少时间来更改的话,就可以改成相应的数字(本人没有测试,我是这么理解的)
 
所以结论是:在Ubuntu中,系统自动清理/tmp文件夹的时限默认每次启动
 
tmpwatch工具介绍
tmpwatch工具从指定的目录中递归地搜索并删除指定的目录中一段时间未访问的文件。

tmpwatch参数说明:
-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。
对于Mysql、HDFS、HBASE等应用,如果将pid和socket文件创建在tmp目录下,要将这两个文件排除在外,否则mysql重启或使用socket文件登录时,提示找不到文件。

Linux下iptables允许指定IP访问某应用端口

运维技术being 发表了文章 • 0 个评论 • 1041 次浏览 • 2016-07-03 22:15 • 来自相关话题

指定公网ip地址或者内网网段访问80站点
开启网段10.0.0.0/8可以访问80端口,和允许公网IP123.125.65.82可以访问80端口
# iptables -I INPUT -p tcp --dport 80 -j DROP
# iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -s 123.125.65.82 -p tcp --dport 80 -j ACCEPT以上示例的意思是我先把所有请求80端口的tcp链接都drop掉,然后在插入你想针对开放访问的网段和IP地址。
 
如果开启NAT转发的话,如下设置:
iptables -I FORWARD -p tcp --dport 80 -j DROP
iptables -I FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
下面我再介绍一些常用的iptables规则
1、邮件系统设置,只能收发邮件,其他的都DROP。
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -j DROP
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p udp --dport 53 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 110 -j ACCEPT通过MAC地址控制。
 
IPSEC NAT 策略
iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80
iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500
iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500
 FTP服务器的NATiptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21
只允许访问指定网址iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -d www.3322.org -j ACCEPT
iptables -A Filter -d img.cn99.com -j ACCEPT
iptables -A Filter -j DROP
开放一个IP的一些端口,其它都封闭iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP
多个端口iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
连续端口iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT
指定时间上网iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
iptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
禁止多个端口服务iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT
将WAN 口NAT到PCiptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1
将WAN口8000端口NAT到192.168.100.200的80端口iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:80
MAIL服务器要转的端口iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:110
iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:25
基于MAC,只能收发邮件,其它都拒绝iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT
只允许PING 202.96.134.133 其它公网IP都不许PINGiptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP
禁止某个MAC地址访问internet:iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP参考:http://cnzhx.net/blog/common-iptables-cli/#11 查看全部
指定公网ip地址或者内网网段访问80站点
开启网段10.0.0.0/8可以访问80端口,和允许公网IP123.125.65.82可以访问80端口
# iptables -I INPUT -p tcp --dport 80 -j DROP 
# iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -s 123.125.65.82 -p tcp --dport 80 -j ACCEPT
以上示例的意思是我先把所有请求80端口的tcp链接都drop掉,然后在插入你想针对开放访问的网段和IP地址。
 
如果开启NAT转发的话,如下设置:
iptables -I FORWARD -p tcp --dport 80 -j DROP
iptables -I FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT

下面我再介绍一些常用的iptables规则
1、邮件系统设置,只能收发邮件,其他的都DROP。
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -j DROP
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p udp --dport 53 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 110 -j ACCEPT
通过MAC地址控制。
 
IPSEC NAT 策略
iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80
iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500
iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500

 FTP服务器的NAT
iptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21

只允许访问指定网址
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -d www.3322.org -j ACCEPT
iptables -A Filter -d img.cn99.com -j ACCEPT
iptables -A Filter -j DROP

开放一个IP的一些端口,其它都封闭
iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP

多个端口
iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT

连续端口
iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT

指定时间上网
iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
iptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT

禁止多个端口服务
iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT

将WAN 口NAT到PC
iptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1

将WAN口8000端口NAT到192.168.100.200的80端口
iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:80

MAIL服务器要转的端口
iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:110
iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:25

基于MAC,只能收发邮件,其它都拒绝
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT

只允许PING 202.96.134.133 其它公网IP都不许PING
iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP

禁止某个MAC地址访问internet:
iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP
参考:http://cnzhx.net/blog/common-iptables-cli/#11

Centos 安装crond出现报错

回复

运维技术Nock 回复了问题 • 2 人关注 • 1 个回复 • 639 次浏览 • 2017-02-11 18:38 • 来自相关话题

安装Vim报错

回复

运维技术采菊篱下 回复了问题 • 2 人关注 • 1 个回复 • 406 次浏览 • 2016-12-10 20:46 • 来自相关话题

Typecho怎么修改登录后台路由以提高安全性?

回复

运维技术being 发起了问题 • 1 人关注 • 0 个回复 • 796 次浏览 • 2016-06-11 23:20 • 来自相关话题

新添加用户登录pts只显示-bash-4.1#

回复

运维技术push 回复了问题 • 2 人关注 • 1 个回复 • 778 次浏览 • 2016-04-29 00:11 • 来自相关话题

Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

回复

运维技术采菊篱下 回复了问题 • 2 人关注 • 1 个回复 • 1113 次浏览 • 2015-06-29 10:23 • 来自相关话题

centos 6.2 更新报错解决 yum you could try using skip broken to work around the problem

回复

运维技术采菊篱下 回复了问题 • 1 人关注 • 1 个回复 • 1585 次浏览 • 2015-06-14 10:40 • 来自相关话题

Centos7下使用Yum安装Zabbix2.4

运维技术Geek小A 发表了文章 • 0 个评论 • 51 次浏览 • 2017-06-17 18:09 • 来自相关话题

一、Zabbix简介

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
 

二、Zabbix安装

本文档在同一台机器上安装了zabbix-server 和zabbix-agent 自己监控自己。
 
 
1、配置LAMP
 
这个可以参考之前的文章:http://openskill.cn/article/578 
 
2、配置Yum源
Zabbix在CentOS基本源里不可获得,因此必须配置EPEL 和Zabbix 官方repository

安装EPEL repository
yum install epel-release配置ZabbixZone package repository and GPG key
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm3、安装Zabbix server and agent(agent是可选的)
安装Zabbix server and agent:(配置自己监控自己,所以安装了zabbix-agent)
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway编辑 file /etc/httpd/conf.d/zabbix:
vi /etc/httpd/conf.d/zabbix.conf更新时区:
php_value date.timezone Asia/Shanghai重启httpd
systemctl restart httpd
4、创建MySQL 数据库和用户
 
登录MariaDB:
mysql –u root –p创建一个数据库‘zabbixdb’和数据库用户‘zabbix’
MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';

MariaDB [(none)]> flush privileges;
 5、数据库导入zabbix template
使用数据库用户zabbix登录数据库
mysql –uzabbix –p切换到zabbix数据库
use zabbix导入模板数据
MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/schema.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/images.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/data.sql
 6、配置Zabbix server
编辑文件/etc/zabbix/zabbix_server.conf
vi /etc/zabbix/zabbix_server.conf配置下面的三个参数
[...]
DBName=zabbix
[...]
DBUser=zabbix
[...]
DBPassword=zabbix
[...]
 7、配置zabbix-agent
vi /etc/zabbix/zabbix_agentd.conf配置zabbix server 的ip
[...]

## Line 85 - Specify Zabbix server ##

Server=127.0.0.1

[...]

## Line 126 - Specify Zabbix server ##

ServerActive=127.0.0.1

[...]

## Line 137 - Specify Zabbix server Hostname or IP address ##

Hostname=127.0.0.1

[...]
8、修改PHP 设置
 
修改php.ini为zabbix 建议的设置

编辑文件 php.ini
vi /etc/php.ini设置下面的参数
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai
9、修改Firewall 和SELinux 设置
 
开放zabbix端口10050 and 10051.
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp重启firewall
systemctl restart firewalld如果使用 SELinux, 运行以下命令使 Apache 可以和 Zabbix通信
setsebool -P httpd_can_connect_zabbix=1
 10、允许Zabbix web console 对特定IP段可用 (可选)
编辑文件 /etc/httpd/conf.d/zabbix.conf
vi /etc/httpd/conf.d/zabbix.conf添加允许访问 zabbix web interface的ip段. 如果设置 ‘Allow from All’, 这可以允许全部可以访问
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted

<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>启动zabbix-server 和zabbix-agent。重启httpd,,并设置zabbix-server和zabbix-agent开机自动启动
systemctl start zabbix-server

systemctl start zabbix-agent

systemctl restart httpd

systemctl restart mariadb

systemctl enable zabbix-server

systemctl enable zabbix-agent ---- (可选)
11、通过控制台配置Zabbix
 
浏览器访问http://ip-address/zabbix



检查包的完整性和参数配置




数据zabbix数据库名、数据库用户和密码,并测试




输入Server name(可选)




预安装summary




点击完成,完成安装




安装完成后,重定向到zabbix控制台登录页面. 输入用户名和密码,默认的用户名和密码为admin/zabbix.




管理仪表盘页面如下




英文原文地址:http://www.unixmen.com/how-to-install-zabbix-server-on-centos-7/​   查看全部


一、Zabbix简介


zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
 


二、Zabbix安装


本文档在同一台机器上安装了zabbix-server 和zabbix-agent 自己监控自己。
 
 
1、配置LAMP
 
这个可以参考之前的文章:http://openskill.cn/article/578 
 
2、配置Yum源
Zabbix在CentOS基本源里不可获得,因此必须配置EPEL 和Zabbix 官方repository

安装EPEL repository
yum install epel-release
配置ZabbixZone package repository and GPG key
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm
3、安装Zabbix server and agent(agent是可选的)
安装Zabbix server and agent:(配置自己监控自己,所以安装了zabbix-agent)
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway
编辑 file /etc/httpd/conf.d/zabbix:
vi /etc/httpd/conf.d/zabbix.conf
更新时区:
php_value date.timezone Asia/Shanghai
重启httpd
systemctl restart httpd

4、创建MySQL 数据库和用户
 
登录MariaDB:
mysql –u root –p
创建一个数据库‘zabbixdb’和数据库用户‘zabbix’
MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';

MariaDB [(none)]> flush privileges;

 5、数据库导入zabbix template
使用数据库用户zabbix登录数据库
mysql –uzabbix –p
切换到zabbix数据库
use zabbix
导入模板数据
MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/schema.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/images.sql

MariaDB [zabbix]> source /usr/share/doc/zabbix-server-mysql-2.4.7/create/data.sql

 6、配置Zabbix server
编辑文件/etc/zabbix/zabbix_server.conf
vi /etc/zabbix/zabbix_server.conf
配置下面的三个参数
[...]
DBName=zabbix
[...]
DBUser=zabbix
[...]
DBPassword=zabbix
[...]

 7、配置zabbix-agent
vi /etc/zabbix/zabbix_agentd.conf
配置zabbix server 的ip
[...]

## Line 85 - Specify Zabbix server ##

Server=127.0.0.1

[...]

## Line 126 - Specify Zabbix server ##

ServerActive=127.0.0.1

[...]

## Line 137 - Specify Zabbix server Hostname or IP address ##

Hostname=127.0.0.1

[...]

8、修改PHP 设置
 
修改php.ini为zabbix 建议的设置

编辑文件 php.ini
vi /etc/php.ini
设置下面的参数
max_execution_time = 600
max_input_time = 600
memory_limit = 256
Mpost_max_size = 32M
upload_max_filesize = 16M
date.timezone = Asia/Shanghai

9、修改Firewall 和SELinux 设置
 
开放zabbix端口10050 and 10051.
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
重启firewall
systemctl restart firewalld
如果使用 SELinux, 运行以下命令使 Apache 可以和 Zabbix通信
setsebool -P httpd_can_connect_zabbix=1

 10、允许Zabbix web console 对特定IP段可用 (可选)
编辑文件 /etc/httpd/conf.d/zabbix.conf
vi /etc/httpd/conf.d/zabbix.conf
添加允许访问 zabbix web interface的ip段. 如果设置 ‘Allow from All’, 这可以允许全部可以访问
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted

<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>

<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>

<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
启动zabbix-server 和zabbix-agent。重启httpd,,并设置zabbix-server和zabbix-agent开机自动启动
systemctl start zabbix-server

systemctl start zabbix-agent

systemctl restart httpd

systemctl restart mariadb

systemctl enable zabbix-server

systemctl enable zabbix-agent ---- (可选)

11、通过控制台配置Zabbix
 
浏览器访问http://ip-address/zabbix
zabbix1.png
检查包的完整性和参数配置
zabbix2.png

数据zabbix数据库名、数据库用户和密码,并测试
zabbix3.png

输入Server name(可选)
zabbix4.png

预安装summary
zabbix5.png

点击完成,完成安装
zabbix6.png

安装完成后,重定向到zabbix控制台登录页面. 输入用户名和密码,默认的用户名和密码为admin/zabbix.
zabbix7.png

管理仪表盘页面如下
zabbix8.png

英文原文地址:http://www.unixmen.com/how-to-install-zabbix-server-on-centos-7/​  

Centos7下配置LAMP过程记录

运维技术Geek小A 发表了文章 • 0 个评论 • 49 次浏览 • 2017-06-17 00:45 • 来自相关话题

LAMP指的Linux(操作系统)、Apache HTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
 
下面讨论如何在RHEL/CentOS/Scientific Linux 7上搭建LAMP环境.

一、Install Apache

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

在终端以root权限运行以下命令:yum install httpd -y启动Apachesystemctl start httpd设置开机启动systemctl enable httpdfirewall设置允许远程登录:firewall-cmd --permanent --add-service=http

systemctl restart firewalld测试Apache

浏览器访问 http://localhost/ or http://server-ip-address/





二、Install MariaDB

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
 
安装MariaDB:yum install mariadb-server mariadb -y启动MariaDBsystemctl start mariadb设置开机启动systemctl enable mariadb设置root密码
默认情况下,root密码为空。为防止未授权的访问,我们设置root密码mysql_secure_installation

三、Install PHP

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言,主要适用于Web开发领域。

使用以下的命令安装phpyum install php php-mysql php-gd php-pear -y测试PHP:
在Apache文档根目录创建“testphp.php”vi /var/www/html/testphp.php编辑内容如下<?php
phpinfo();
?>重启 httpd 服务:systemctl restart httpd浏览器访问 http://server-ip-address/testphp.php. 将会显示php的版本信息.




也可以使用如下命令安装所有php modules,重启httpd服务,查看http://server-ip-address/testphp.php  ,可以看到所有安装的modulesyum install php* -y

四、Install phpMyAdmin (可选)

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

添加 EPEL repository   参照(Install EPEL Repository on RHEL/CentOS/Scientific Linux 7)yum install epel-release安装 phpMyAdmin:yum install phpmyadmin -y配置phpMyAdmin

默认,phpMyAdmin只能由本机访问。为了能够远程访问,编辑phpmyadmin.conf file:vi /etc/httpd/conf.d/phpMyAdmin.conf查找/<Directory> ,注释掉或删除如下内容<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>添加<Directory /usr/share/phpMyAdmin/>
Options none
AllowOverride Limit
Require all granted
</Directory>编辑“config.inc.php” 改变phpMyAdmin的authentication,修改“cookie” 为 “http”vi /etc/phpMyAdmin/config.inc.phpChange ‘cookie’ to ‘http’.




重启the Apache service:systemctl restart httpd访问 phpmyadmin 的控制台 http://server-ip-address/phpmyadmin/




输入MySQL username and password,将重定向到PhpMyAdmin main web interface.




现在你可以通过phpMyAdmin web interface 管理你的MariaDB数据库了。 查看全部
LAMP指的Linux(操作系统)、Apache HTTP 服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
 
下面讨论如何在RHEL/CentOS/Scientific Linux 7上搭建LAMP环境.


一、Install Apache


Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

在终端以root权限运行以下命令:
yum install httpd -y
启动Apache
systemctl start httpd
设置开机启动
systemctl enable httpd
firewall设置允许远程登录:
firewall-cmd --permanent --add-service=http

systemctl restart firewalld
测试Apache

浏览器访问 http://localhost/ or http://server-ip-address/
apachetesting.png


二、Install MariaDB


MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
 
安装MariaDB:
yum install mariadb-server mariadb -y
启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
设置root密码
默认情况下,root密码为空。为防止未授权的访问,我们设置root密码
mysql_secure_installation


三、Install PHP


PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言,主要适用于Web开发领域。

使用以下的命令安装php
yum install php php-mysql php-gd php-pear -y
测试PHP:
在Apache文档根目录创建“testphp.php”
vi /var/www/html/testphp.php
编辑内容如下
<?php 
phpinfo();
?>
重启 httpd 服务:
systemctl restart httpd
浏览器访问 http://server-ip-address/testphp.php. 将会显示php的版本信息.
phpinfo.png

也可以使用如下命令安装所有php modules,重启httpd服务,查看http://server-ip-address/testphp.php  ,可以看到所有安装的modules
yum install php* -y


四、Install phpMyAdmin (可选)


phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

添加 EPEL repository   参照(Install EPEL Repository on RHEL/CentOS/Scientific Linux 7)
yum install epel-release
安装 phpMyAdmin:
yum install phpmyadmin -y
配置phpMyAdmin

默认,phpMyAdmin只能由本机访问。为了能够远程访问,编辑phpmyadmin.conf file:
vi /etc/httpd/conf.d/phpMyAdmin.conf
查找/<Directory> ,注释掉或删除如下内容
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8

<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
添加
<Directory /usr/share/phpMyAdmin/>
Options none
AllowOverride Limit
Require all granted
</Directory>
编辑“config.inc.php” 改变phpMyAdmin的authentication,修改“cookie” 为 “http”
vi /etc/phpMyAdmin/config.inc.php
Change ‘cookie’ to ‘http’.
cookie.png

重启the Apache service:
systemctl restart httpd
访问 phpmyadmin 的控制台 http://server-ip-address/phpmyadmin/
phpmyadmin.png

输入MySQL username and password,将重定向到PhpMyAdmin main web interface.
madmin.png

现在你可以通过phpMyAdmin web interface 管理你的MariaDB数据库了。

Centos7下添加开机自启动服务和脚本

运维技术push 发表了文章 • 0 个评论 • 445 次浏览 • 2017-03-10 20:41 • 来自相关话题

最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法。
 

1、添加开机自启服务

我这里以docker 服务为例,设置如下两条命令即可:
# systemctl enable docker.service #设置docker服务为自启动服务 相当于我们的 chkconfig docker on
# sysstemctl start docker.service #启动docker服务

2、添加开机自启脚本

在centos7中增加脚本有两种常用的方法,以脚本StartTomcat.sh为例:
#!/bin/bash
# description:开机自启脚本
/usr/local/tomcat/bin/startup.sh #启动tomcat方法一:
1、赋予脚本可执行权限(/opt/script/StartTomcat.sh是你的脚本路径)
# chmod +x /opt/script/StartTomcat.sh2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容
echo "/opt/script/StartTomcat.sh" >> /etc/rc.d/rc.local3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
方法二:
1、将脚本移动到/etc/rc.d/init.d目录下
# mv /opt/script/StartTomcat.sh /etc/rc.d/init.d2、增加脚本的可执行权限
chmod +x /etc/rc.d/init.d/StartTomcat.sh3、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add StartTomcat.sh
chkconfig StartTomcat.sh on 查看全部
最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法。
 


1、添加开机自启服务


我这里以docker 服务为例,设置如下两条命令即可:
# systemctl enable docker.service  #设置docker服务为自启动服务 相当于我们的 chkconfig docker on
# sysstemctl start docker.service #启动docker服务


2、添加开机自启脚本


在centos7中增加脚本有两种常用的方法,以脚本StartTomcat.sh为例:
#!/bin/bash
# description:开机自启脚本
/usr/local/tomcat/bin/startup.sh #启动tomcat
方法一:
1、赋予脚本可执行权限(/opt/script/StartTomcat.sh是你的脚本路径)
# chmod +x /opt/script/StartTomcat.sh
2、打开/etc/rc.d/rc.local文件,在末尾增加如下内容
echo "/opt/script/StartTomcat.sh" >> /etc/rc.d/rc.local
3、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local

方法二:
1、将脚本移动到/etc/rc.d/init.d目录下
# mv  /opt/script/StartTomcat.sh /etc/rc.d/init.d
2、增加脚本的可执行权限
chmod +x  /etc/rc.d/init.d/StartTomcat.sh
3、添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add StartTomcat.sh
chkconfig StartTomcat.sh on

CentOS下设置代理上网各种小技巧

运维技术Rock 发表了文章 • 0 个评论 • 405 次浏览 • 2016-12-21 16:37 • 来自相关话题

最近有人问CentOS如何设置各种代理上网;下面就为大家带来CentOS设置各种代理上网的方法;有需要的朋友可以看看。
 

1、网页上网​

桌面版的Centos的话,网页上网设置代理很简单,在firefox浏览器下 :
Edit-->>Preferences-->>Advanced-->>Network在Connection下点击Settings,里面的manual proxy configuration里设置IP和PORT即可。
 

2、yum代理设置

编辑文件为:/etc/yum.conf ,在里面添加这一行:proxy=IP:PORT这里的IP是你代理服务器的ip,端口也是你代理服务器的服务端口。
 

3、wget代理设置

编辑文件为:/etc/wgetrc , 添加下面两行:
http_proxy = IP:PORT
ftp_proxy = IP:PORT
 

4、系统环境代理设置

编辑文件为/etc/profile,如果只想给自己的账户设置,则编辑~/.bashrc即可
添加如下三行:
# add proxy for network
export http_proxy=http://child-prc.intel.com:913
export https_proxy=http://child-prc.intel.com:913
export ftp_proxy=$http_proxy然后source /etc/profile 或者source ~/.bashrc即可 查看全部
Centosimage.png

最近有人问CentOS如何设置各种代理上网;下面就为大家带来CentOS设置各种代理上网的方法;有需要的朋友可以看看。
 


1、网页上网​


桌面版的Centos的话,网页上网设置代理很简单,在firefox浏览器下 :
Edit-->>Preferences-->>Advanced-->>Network
在Connection下点击Settings,里面的manual proxy configuration里设置IP和PORT即可。
 


2、yum代理设置


编辑文件为:/etc/yum.conf ,在里面添加这一行:
proxy=IP:PORT
这里的IP是你代理服务器的ip,端口也是你代理服务器的服务端口。
 


3、wget代理设置


编辑文件为:/etc/wgetrc , 添加下面两行:
http_proxy = IP:PORT  
ftp_proxy = IP:PORT

 


4、系统环境代理设置


编辑文件为/etc/profile,如果只想给自己的账户设置,则编辑~/.bashrc即可
添加如下三行:
# add proxy for network
export http_proxy=http://child-prc.intel.com:913
export https_proxy=http://child-prc.intel.com:913
export ftp_proxy=$http_proxy
然后source /etc/profile 或者source ~/.bashrc即可

利用npm在服务器上安装yslow

运维技术OpenSkill 发表了文章 • 0 个评论 • 420 次浏览 • 2016-09-30 18:22 • 来自相关话题

wget -c http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
tar zxf node-v0.12.4.tar.gz
cd node-v0.12.4
./configure && make && make install
sleep 1

npm config set registry http://registry.cnpmjs.org
npm install yslow -g 查看全部
wget -c http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
tar zxf node-v0.12.4.tar.gz
cd node-v0.12.4
./configure && make && make install
sleep 1

npm config set registry http://registry.cnpmjs.org
npm install yslow -g

Linux的net.ipv4.tcp_timestamps参数

运维技术采菊篱下 发表了文章 • 2 个评论 • 482 次浏览 • 2016-09-05 00:09 • 来自相关话题

今天发生了一个奇怪的现象,在家里始终打开公司的网站打开不了,我就齐了怪了,然后我就各种测试,从ping到dig域名,然后再curl,都是没有问题的,但是就是打不开,最好没有办法只能抓包了,从抓包的然后来看就是syn-ack没有返回,然后就google到底是因为什么?
 
原因就是net.ipv4.tcp_timestamps=1,启用了时间戳,原理如下:
问题出在了 tcp 三次握手,如果有一个用户的时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。
 
解决:
net.ipv4.tcp_timestamps = 0

然后syctlp -p生效即可。 查看全部
今天发生了一个奇怪的现象,在家里始终打开公司的网站打开不了,我就齐了怪了,然后我就各种测试,从ping到dig域名,然后再curl,都是没有问题的,但是就是打不开,最好没有办法只能抓包了,从抓包的然后来看就是syn-ack没有返回,然后就google到底是因为什么?
 
原因就是net.ipv4.tcp_timestamps=1,启用了时间戳,原理如下:
问题出在了 tcp 三次握手,如果有一个用户的时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。
 
解决:
net.ipv4.tcp_timestamps = 0

然后syctlp -p生效即可。

关于Linux平台下/tmp下文件被清理探索

运维技术being 发表了文章 • 0 个评论 • 1214 次浏览 • 2016-07-22 09:31 • 来自相关话题

昨天使用./bin/graceful_stop.sh bighad1停止一台hbase regionserver节点失败,log如下所示:2016-07-21 14:25:59,580 INFO [main] zookeeper.ZooKeeper: Client environment:user.dir=/home/chris/hbase-0.98.7-hadoop2/bin
2016-07-21 14:25:59,581 INFO [main] zookeeper.ZooKeeper: Initiating client connection, connectString=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181 sessionTimeout=90000 watcher=hconnection-0x661261ba, quorum=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181, baseZNode=/hbase
2016-07-21 14:25:59,603 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Opening socket connection to server 10.0.59.225/10.0.59.225:2181. Will not attempt to authenticate using SASL (unknown error)
2016-07-21 14:25:59,610 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Socket connection established to 10.0.59.225/10.0.59.225:2181, initiating session
2016-07-21 14:25:59,617 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Session establishment complete on server 10.0.59.225/10.0.59.225:2181, sessionid = 0x3500747e7e6841d, negotiated timeout = 40000
RuntimeError: Server bighad1:60020 not online
stripServer at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:225
unloadRegions at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:336
(root) at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:515
2016-07-21T06:26:00 Unloaded bighad1 region(s)
2016-07-21T06:26:00 Stopping regionserver
no regionserver to stop because no pid file /tmp/hbase-root-regionserver.pid
2016-07-21T06:26:00 Restoring balancer state to从日记中很容易看出来,no pid file  /tmp/hbase-root-regionserver.pid没有这个pid文件(默认如果不在hbase-env.sh文件中指定pid文件存放目录的话,默认是在/tmp下):# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids

这是hbase-env.sh默认的设置。现在问题很显而易见,就是hbase reregionserver node的pid文件被删除了。那为什么会被删除呢?下面给大家介绍一下/tmp目录,以及在Linux下的清理机制。
 
Linux下/tmp目录,通常被大家叫做临时目录,而且文件夹里面的文件会被清空,那系统默认多长时间清空的,是怎么清空的呢,下面给大家介绍一下,也记录一下我的这次学习过程。
 
在Centos/RHEL/Fedora系统下存在清理机制(Ubuntu下没有,我的系统是Centos6.5)
有时候开发习惯性的将一些临时文件放在tmp目录下,让其自然删除。同时,为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。然后可能好多开源的应用程序如Mysql、HDFS、HBSE的开发者,也有这种习惯。其实如果开发者对系统有这种机制概念的话,我想他不会把一些PID文件目录默认设置到/tmp下面,然后很多开源的软件程序都是由国外的开发者发起的,并且Ubuntu系统在国外深受开发者喜欢,所以可能这个问题在他们那就ok了。如果你是在Centos下最小化安装的,默认是没有tmpwatch命令的。
 
安装:yum install tmpwatch
tmpwatch命令,他的作用就是删除一段时间内不使用的文件(removes files which haven’t been accessed for a period of time)。 
 
安装后会在/etc/cron.daily/目录下生成一个tmpwatch文件。内容如下:#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done从脚本中可看出,tmp目录会删除10天未访问过的文件。

我们看看/usr/sbin/tmpwatch "$flags" 30d /var/tmp这一行,关键的是这个30d,就是30天的意思,这个就决定了30天清理/var/tmp下不访问的文件。如果说,你想一天一清理的话,就把这个30d改成1d。可以DIY!
 
但有个问题需要注意,如果你设置更短的时间来清理的话,比如说是30分钟、10秒等等,你可以在这个文件中设置,但你会发现重新电脑,他不清理/tmp文件夹里面的内容,这是为什么呢?这就是tmpwatch他所在的位置决定的,他的上层目录是/etc/cron.daily/,而这个目录是第天执行一次计划任务,所以说,你设置了比一天更短的时间,他就不起作用了。
 
所以结论是:在Centos6中,系统自动清理/tmp文件夹的默认时限是30天,其他系统待考证!
 
在Debian\Ubuntu系统中(Ubuntu 12.04.2 LTS 为实验环境)
上面我说到在Ubuntu下没有tmpwatch清理机制,但是在Ubuntu系统中,在/tmp文件夹里面的内容,每次开机都会被清空,如果不想让他自动清理的话,只需要更改rcS文件中的TMPTIME的值。 
 
修改:# sudo vi /etc/default/rcS
TMPTIME=0

#change set -1
TMPTIME=-1或者是无限大把 TMPTIME=0修改成 TMPTIME=-1或者是无限大,改成这样的话,系统在重新启动的时候就不会清理你的/tmp目录了。 依些类推,如果说要限制多少时间来更改的话,就可以改成相应的数字(本人没有测试,我是这么理解的)
 
所以结论是:在Ubuntu中,系统自动清理/tmp文件夹的时限默认每次启动
 
tmpwatch工具介绍
tmpwatch工具从指定的目录中递归地搜索并删除指定的目录中一段时间未访问的文件。

tmpwatch参数说明:-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。对于Mysql、HDFS、HBASE等应用,如果将pid和socket文件创建在tmp目录下,要将这两个文件排除在外,否则mysql重启或使用socket文件登录时,提示找不到文件。 查看全部
昨天使用./bin/graceful_stop.sh bighad1停止一台hbase regionserver节点失败,log如下所示:
2016-07-21 14:25:59,580 INFO  [main] zookeeper.ZooKeeper: Client environment:user.dir=/home/chris/hbase-0.98.7-hadoop2/bin
2016-07-21 14:25:59,581 INFO [main] zookeeper.ZooKeeper: Initiating client connection, connectString=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181 sessionTimeout=90000 watcher=hconnection-0x661261ba, quorum=10.0.41.94:2181,10.0.55.56:2181,10.0.59.225:2181, baseZNode=/hbase
2016-07-21 14:25:59,603 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Opening socket connection to server 10.0.59.225/10.0.59.225:2181. Will not attempt to authenticate using SASL (unknown error)
2016-07-21 14:25:59,610 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Socket connection established to 10.0.59.225/10.0.59.225:2181, initiating session
2016-07-21 14:25:59,617 INFO [main-SendThread(10.0.59.225:2181)] zookeeper.ClientCnxn: Session establishment complete on server 10.0.59.225/10.0.59.225:2181, sessionid = 0x3500747e7e6841d, negotiated timeout = 40000
RuntimeError: Server bighad1:60020 not online
stripServer at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:225
unloadRegions at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:336
(root) at /home/chris/hbase-0.98.7-hadoop2/bin/region_mover.rb:515
2016-07-21T06:26:00 Unloaded bighad1 region(s)
2016-07-21T06:26:00 Stopping regionserver
no regionserver to stop because no pid file /tmp/hbase-root-regionserver.pid
2016-07-21T06:26:00 Restoring balancer state to
从日记中很容易看出来,no pid file  /tmp/hbase-root-regionserver.pid没有这个pid文件(默认如果不在hbase-env.sh文件中指定pid文件存放目录的话,默认是在/tmp下):
# The directory where pid files are stored. /tmp by default.
# export HBASE_PID_DIR=/var/hadoop/pids

这是hbase-env.sh默认的设置。
现在问题很显而易见,就是hbase reregionserver node的pid文件被删除了。那为什么会被删除呢?下面给大家介绍一下/tmp目录,以及在Linux下的清理机制。
 
Linux下/tmp目录,通常被大家叫做临时目录,而且文件夹里面的文件会被清空,那系统默认多长时间清空的,是怎么清空的呢,下面给大家介绍一下,也记录一下我的这次学习过程。
 
在Centos/RHEL/Fedora系统下存在清理机制(Ubuntu下没有,我的系统是Centos6.5)
有时候开发习惯性的将一些临时文件放在tmp目录下,让其自然删除。同时,为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch。然后可能好多开源的应用程序如Mysql、HDFS、HBSE的开发者,也有这种习惯。其实如果开发者对系统有这种机制概念的话,我想他不会把一些PID文件目录默认设置到/tmp下面,然后很多开源的软件程序都是由国外的开发者发起的,并且Ubuntu系统在国外深受开发者喜欢,所以可能这个问题在他们那就ok了。如果你是在Centos下最小化安装的,默认是没有tmpwatch命令的。
 
安装:
yum install tmpwatch

tmpwatch命令,他的作用就是删除一段时间内不使用的文件(removes files which haven’t been accessed for a period of time)。 
 
安装后会在/etc/cron.daily/目录下生成一个tmpwatch文件。内容如下:
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done
从脚本中可看出,tmp目录会删除10天未访问过的文件。

我们看看/usr/sbin/tmpwatch "$flags" 30d /var/tmp这一行,关键的是这个30d,就是30天的意思,这个就决定了30天清理/var/tmp下不访问的文件。如果说,你想一天一清理的话,就把这个30d改成1d。可以DIY!
 
但有个问题需要注意,如果你设置更短的时间来清理的话,比如说是30分钟、10秒等等,你可以在这个文件中设置,但你会发现重新电脑,他不清理/tmp文件夹里面的内容,这是为什么呢?这就是tmpwatch他所在的位置决定的,他的上层目录是/etc/cron.daily/,而这个目录是第天执行一次计划任务,所以说,你设置了比一天更短的时间,他就不起作用了。
 
所以结论是:在Centos6中,系统自动清理/tmp文件夹的默认时限是30天,其他系统待考证!
 
在Debian\Ubuntu系统中(Ubuntu 12.04.2 LTS 为实验环境)
上面我说到在Ubuntu下没有tmpwatch清理机制,但是在Ubuntu系统中,在/tmp文件夹里面的内容,每次开机都会被清空,如果不想让他自动清理的话,只需要更改rcS文件中的TMPTIME的值。 
 
修改:
# sudo vi /etc/default/rcS
TMPTIME=0

#change set -1
TMPTIME=-1或者是无限大
把 TMPTIME=0修改成 TMPTIME=-1或者是无限大,改成这样的话,系统在重新启动的时候就不会清理你的/tmp目录了。 依些类推,如果说要限制多少时间来更改的话,就可以改成相应的数字(本人没有测试,我是这么理解的)
 
所以结论是:在Ubuntu中,系统自动清理/tmp文件夹的时限默认每次启动
 
tmpwatch工具介绍
tmpwatch工具从指定的目录中递归地搜索并删除指定的目录中一段时间未访问的文件。

tmpwatch参数说明:
-u, --atime 基于访问时间来删除文件,默认的。
-m, --mtime 基于修改时间来删除文件。
-c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。
-M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。
-a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。
-d, --nodirs 不尝试删除目录,即使是空目录。
-d, --nosymlinks 不尝试删除符号链接。
-f, --force 强制删除。
-q, --quiet 只报告错误信息。
-s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。
-t, --test 仅作测试,并不真的删除文件或目录。
-U, --exclude-user=user 不删除属于谁的文件。
-v, --verbose 打印详细信息。
-x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。
-X, --exclude-pattern=pattern 排除某规则下的路径。
对于Mysql、HDFS、HBASE等应用,如果将pid和socket文件创建在tmp目录下,要将这两个文件排除在外,否则mysql重启或使用socket文件登录时,提示找不到文件。

Linux下iptables允许指定IP访问某应用端口

运维技术being 发表了文章 • 0 个评论 • 1041 次浏览 • 2016-07-03 22:15 • 来自相关话题

指定公网ip地址或者内网网段访问80站点
开启网段10.0.0.0/8可以访问80端口,和允许公网IP123.125.65.82可以访问80端口
# iptables -I INPUT -p tcp --dport 80 -j DROP
# iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -s 123.125.65.82 -p tcp --dport 80 -j ACCEPT以上示例的意思是我先把所有请求80端口的tcp链接都drop掉,然后在插入你想针对开放访问的网段和IP地址。
 
如果开启NAT转发的话,如下设置:
iptables -I FORWARD -p tcp --dport 80 -j DROP
iptables -I FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
下面我再介绍一些常用的iptables规则
1、邮件系统设置,只能收发邮件,其他的都DROP。
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -j DROP
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p udp --dport 53 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 110 -j ACCEPT通过MAC地址控制。
 
IPSEC NAT 策略
iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80
iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500
iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500
 FTP服务器的NATiptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21
只允许访问指定网址iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -d www.3322.org -j ACCEPT
iptables -A Filter -d img.cn99.com -j ACCEPT
iptables -A Filter -j DROP
开放一个IP的一些端口,其它都封闭iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP
多个端口iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
连续端口iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT
指定时间上网iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
iptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
禁止多个端口服务iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT
将WAN 口NAT到PCiptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1
将WAN口8000端口NAT到192.168.100.200的80端口iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:80
MAIL服务器要转的端口iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:110
iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:25
基于MAC,只能收发邮件,其它都拒绝iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT
只允许PING 202.96.134.133 其它公网IP都不许PINGiptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP
禁止某个MAC地址访问internet:iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP参考:http://cnzhx.net/blog/common-iptables-cli/#11 查看全部
指定公网ip地址或者内网网段访问80站点
开启网段10.0.0.0/8可以访问80端口,和允许公网IP123.125.65.82可以访问80端口
# iptables -I INPUT -p tcp --dport 80 -j DROP 
# iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -s 123.125.65.82 -p tcp --dport 80 -j ACCEPT
以上示例的意思是我先把所有请求80端口的tcp链接都drop掉,然后在插入你想针对开放访问的网段和IP地址。
 
如果开启NAT转发的话,如下设置:
iptables -I FORWARD -p tcp --dport 80 -j DROP
iptables -I FORWARD -s 10.0.0.0/8 -p tcp --dport 80 -j ACCEPT

下面我再介绍一些常用的iptables规则
1、邮件系统设置,只能收发邮件,其他的都DROP。
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -j DROP
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p udp --dport 53 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0F:wc:35:31:57 -p tcp --dport 110 -j ACCEPT
通过MAC地址控制。
 
IPSEC NAT 策略
iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80
iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500
iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500

 FTP服务器的NAT
iptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21

只允许访问指定网址
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -d www.3322.org -j ACCEPT
iptables -A Filter -d img.cn99.com -j ACCEPT
iptables -A Filter -j DROP

开放一个IP的一些端口,其它都封闭
iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP

多个端口
iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT

连续端口
iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT

指定时间上网
iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP
iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT
iptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT

禁止多个端口服务
iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT

将WAN 口NAT到PC
iptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1

将WAN口8000端口NAT到192.168.100.200的80端口
iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:80

MAIL服务器要转的端口
iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:110
iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:25

基于MAC,只能收发邮件,其它都拒绝
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT

只允许PING 202.96.134.133 其它公网IP都不许PING
iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP

禁止某个MAC地址访问internet:
iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP
参考:http://cnzhx.net/blog/common-iptables-cli/#11

Centos6.4下安装最新版Redis

运维技术Ansible 发表了文章 • 0 个评论 • 750 次浏览 • 2016-06-06 19:02 • 来自相关话题

以下操作过程是记录在Centos6.4下安装最新版的Redis过程。
 
1、安装epel repo Yum安装源//32 位
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

//64 位
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2、安装remi Yum安装源rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
3、制定Yum源安装Redisyum --enablerepo=remi,remi-test install redis
4、配置# vim /etc/sysctl.conf
vm.overcommit_memory=1
# sysctl vm.overcommit_memory=1

# sysctl -w fs.file-max=100000
5、版本确认和添加开机自启# redis-server --version
Redis server v=3.2.0 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=ae5ce1900d9386a6
# chkconfig --add redis
# chkconfig --level 345 redis on 查看全部
以下操作过程是记录在Centos6.4下安装最新版的Redis过程。
 
1、安装epel repo Yum安装源
//32 位
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

//64 位
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2、安装remi Yum安装源
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

3、制定Yum源安装Redis
yum --enablerepo=remi,remi-test install redis

4、配置
# vim /etc/sysctl.conf
vm.overcommit_memory=1
# sysctl vm.overcommit_memory=1

# sysctl -w fs.file-max=100000

5、版本确认和添加开机自启
# redis-server --version
Redis server v=3.2.0 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=ae5ce1900d9386a6
# chkconfig --add redis
# chkconfig --level 345 redis on

Centos6.5 安装PHP扩展模块JsonNet记录

运维技术chris 发表了文章 • 0 个评论 • 819 次浏览 • 2016-06-02 14:56 • 来自相关话题

一、下载devtoolset-3 Yum源# wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo && mv ./*.repo /etc/yum.repos.d/ 
二、下载安装gcc gcc-c++# yum --disablerepo='*' --enablerepo='rhscl-devtoolset-3' install devtoolset-3-gcc devtoolset-3-gcc-c++ -y国外的源,如果下载失败或者Time-out,只好手动下载rpm包安装,超时如下:




下载rpm包:https://copr-be.cloud.fedoraproject.org/results/rhscl/devtoolset-3/epel-6-x86_64/devtoolset-3-gcc-4.9.2-6.el6/devtoolset-3-gcc-4.9.2-6.el6.x86_64.rpm
https://copr-be.cloud.fedoraproject.org/results/rhscl/devtoolset-3/epel-6-x86_64/devtoolset-3-gcc-4.9.2-6.el6/devtoolset-3-gcc-c%2B%2B-4.9.2-6.el6.x86_64.rpm
https://copr-be.cloud.fedoraproject.org/results/rhscl/devtoolset-3/epel-6-x86_64/devtoolset-3-gcc-4.9.2-6.el6/devtoolset-3-libstdc%2B%2B-devel-4.9.2-6.el6.x86_64.rpm利用可以翻墙之后的网络,下载安装包之后,想要安装这些包,还需要安装一些依赖包,如下:# yum -y install scl-utils
# yum -y install devtoolset-3-runtime
# yum -y install devtoolset-3-binutils这些依赖包安装完成后,可以安装三个下载的rpm包了:# rpm -ivh devtoolset-3-libstdc++-devel-4.9.2-6.el6.x86_64.rpm
# rpm -ivh devtoolset-3-gcc-4.9.2-6.el6.x86_64.rpm
# rpm -ivh devtoolset-3-gcc-c++-4.9.2-6.el6.x86_64.rpm
三、安装JsonNet扩展
安装完成后,启用开发环境:# scl enable devtoolset-3 bash这样不会破会你之前系统依赖的GCC环境!
 
设置全局变量,启用新Gcc版本,编译软件# export CC=/opt/rh/devtoolset-3/root/usr/bin/gcc
# export CPP=/opt/rh/devtoolset-3/root/usr/bin/cpp
# export CXX=/opt/rh/devtoolset-3/root/usr/bin/c++然后下载源码编译安装JsonNet# wget -O JsonNet.Latest.tar.gz https://pecl.php.net/get/jsonnet
# mkdir JsonNet-PHP && tar -xzvf JsonNet.Latest.tar.gz -C ./JsonNet-PHP
# cd JsonNet-PHP/JsonNet-1.0.0
# phpize
# ./configure
# make && make install如果中间没有任何error和依赖包的话,我为你感到庆幸,如果你并不这么幸运的话,请挨个解决吧!
最后添加php扩展,检查:[root@web1 src]# echo 'extension=jsonnet.so' > /etc/php.d/jsonnet.ini
[root@web1 src]# php -m |grep -i jsonnet
JsonNet恭喜到这终于结束了! 查看全部
一、下载devtoolset-3 Yum源
# wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo && mv ./*.repo /etc/yum.repos.d/
 
二、下载安装gcc gcc-c++
# yum --disablerepo='*' --enablerepo='rhscl-devtoolset-3' install devtoolset-3-gcc devtoolset-3-gcc-c++  -y
国外的源,如果下载失败或者Time-out,只好手动下载rpm包安装,超时如下:
timeout.png

下载rpm包:
https://copr-be.cloud.fedoraproject.org/results/rhscl/devtoolset-3/epel-6-x86_64/devtoolset-3-gcc-4.9.2-6.el6/devtoolset-3-gcc-4.9.2-6.el6.x86_64.rpm
https://copr-be.cloud.fedoraproject.org/results/rhscl/devtoolset-3/epel-6-x86_64/devtoolset-3-gcc-4.9.2-6.el6/devtoolset-3-gcc-c%2B%2B-4.9.2-6.el6.x86_64.rpm
https://copr-be.cloud.fedoraproject.org/results/rhscl/devtoolset-3/epel-6-x86_64/devtoolset-3-gcc-4.9.2-6.el6/devtoolset-3-libstdc%2B%2B-devel-4.9.2-6.el6.x86_64.rpm
利用可以翻墙之后的网络,下载安装包之后,想要安装这些包,还需要安装一些依赖包,如下:
# yum -y install scl-utils
# yum -y install devtoolset-3-runtime
# yum -y install devtoolset-3-binutils
这些依赖包安装完成后,可以安装三个下载的rpm包了:
# rpm -ivh devtoolset-3-libstdc++-devel-4.9.2-6.el6.x86_64.rpm
# rpm -ivh devtoolset-3-gcc-4.9.2-6.el6.x86_64.rpm
# rpm -ivh devtoolset-3-gcc-c++-4.9.2-6.el6.x86_64.rpm

三、安装JsonNet扩展
安装完成后,启用开发环境:
# scl enable devtoolset-3 bash
这样不会破会你之前系统依赖的GCC环境!
 
设置全局变量,启用新Gcc版本,编译软件
# export CC=/opt/rh/devtoolset-3/root/usr/bin/gcc
# export CPP=/opt/rh/devtoolset-3/root/usr/bin/cpp
# export CXX=/opt/rh/devtoolset-3/root/usr/bin/c++
然后下载源码编译安装JsonNet
# wget -O JsonNet.Latest.tar.gz https://pecl.php.net/get/jsonnet
# mkdir JsonNet-PHP && tar -xzvf JsonNet.Latest.tar.gz -C ./JsonNet-PHP
# cd JsonNet-PHP/JsonNet-1.0.0
# phpize
# ./configure
# make && make install
如果中间没有任何error和依赖包的话,我为你感到庆幸,如果你并不这么幸运的话,请挨个解决吧!
最后添加php扩展,检查:
[root@web1 src]# echo 'extension=jsonnet.so' > /etc/php.d/jsonnet.ini
[root@web1 src]# php -m |grep -i jsonnet
JsonNet
恭喜到这终于结束了!
开源操作系统