将CentOS升级至最新版本CentOS7.4教程

最近,最新版本的CentOS 7.4发布了。CentOS 7.0,7.1和7.2的所有用户都可以将他们的系统升级到最新版本。

本快速指南将解释您需要更新CentOS或将CentOS升级到最新版本的步骤。

使用“更新”选项,只需一个操作即可将所有CentOS系统软件升级到最新版本。

请注意,yum操作不建议使用“-y”。当然,在允许yum进行之前,您有一些时间来查看要在系统上安装的软件包,方法是使用“yum update”。

在CentOS的早期版本中,我们需要恢复所有的程序和数据,但现在使用CentOS 7,我们可以直接升级,也就是说,意想不到的情况仍然是可能的,因此升级过程之前进行数据备份。

将CentOS升级至最新版本CentOS7.4教程

1. 检查你的CentOS版本。

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

2. 备份重要数据和目录(例如:/ etc,/ var,/ opt)

我建议,对于VMware虚拟机,请采用一个好的VMware快照或运行操作系统和数据的完整备份。(MySQL,Apache,NGINX,DNS等),可以查看本站如何备份数据的教程.

3. 用yum更新升级。

# yum clean all
# yum update

4. 用下面的命令重新启动服务器。

# reboot

5. 确认您的系统已成功升级

# cat /etc/redhat-release
CentOS Linux release 7.4.1611 (Core)

我希望这篇文章为您提供一些关于如何更新CentOS或升级CentOS操作系统的想法和基本指导。

未分类

注意:检查您的系统,确保它正常运行,并验证升级之前安装的每个服务。

CentOS 7.x上gitlab搭建教程(https可用,邮件可用)

知识要求

  • nginx基础知识

搭建感想

注:以下是我搭建gitlab时的思考,需要nginx的基础知识,Docker的基础知识才容易理解,与下面的搭建过程是独立的,不感兴趣可直接略过。

其实gitlab已经搭建并用了一年多了,现在所有的项目管理都通过gitlab完成。但是一直以来都有2个问题:

  • 80端口被系统的nginx占用了,所以只能监听非80端口;
  • 443端口也被系统的nginx占用,所以也一直没增加对https的支持;

最近正在尝试对所有已有的服务Docker化,一方面想让gitlab的搭建更简单些,另一方面也把这两个问题都处理掉。

于是就做了两个Docker容器: nginx和gitlab,相当于nginx和gitlab运行在局域网的不同主机,所以端口上没冲突。nginx是对外的服务器,它做一层反向代理到gitlab就能让gitlab提供对外的服务。
然而。。。这个做法却带来了一个新问题:gitlab需要的是22,80,443端口,80与443通过反向代理解决了,22却没办法解决。因为正常来讲,宿主机的SSH肯定也在使用,所以gitlab的SSH监听端口映射到宿主机会有冲突。

当然了,解决办法还是有的,不过非常繁琐。我们做Docker的目的不就是为了降低布署难度吗?如果使用Docker的配置比在宿主机上还繁琐,那使用起来就没太大意义了。

于是gitlab就没有放在Docker中,而是直接搭在宿主机上。

搭建过程

安装

gitlab的安装是很简单的,先下载安装包:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.5-ce.0.el7.x86_64.rpm

安装:

rpm -Uvh gitlab-ce-10.2.5-ce.0.el7.x86_64.rpm

配置

gitlab内置了nginx的服务,所以默认会占用80和443端口。一般来说,我们做WEB开发,服务器上早就安装了nginx或者apache,把80和443端口给占了,所以需要做些修改防止冲突。

简单的修改端口是不可行的,比如80改成85,当查看gitlab项目时,下图中的项目地址会变成http://git.papamk.com:85/papamk/groupbill这样,看着就不舒服。启用https则在使用过程中则会出现其他的问题。这里不一一论述,直接说明正确的配置方法。

未分类

具体步骤:

1、首先确保你的服务器已经有运行nginx,并且该nginx监听宿主机的80和443端口。(如果你原来使用的apache,请通过nginx反向代理到apache,这样apache原来的服务仍然可用)。

2、编辑/etc/gitlab/gitlab.rb:

# 编辑对外的域名(gitlab.papamk.com请添加A记录指向本服务器的公网IP):
external_url 'http://gitlab.papamk.com/'

# 禁用`gitlab`内置的`nginx`:
nginx['enable'] = false
# 修改成与nginx运行时的用户一致
web_server['external_users'] = ['www']

修改监听方式和监听地址(如果nginx与gitlab都在宿主机上,不用改也行;如果nginx在docker中,则需要修改)

gitlab_workhorse['listen_network'] = "tcp"
# 下面的172.18.147.173为本机IP,根据实际情况修改,不能为localhost或者127.0.0.1,否则docker访问不到
gitlab_workhorse['listen_addr'] = "172.18.147.173:8181" 

最后执行下面命令让配置生效:

$gitlab-ctl reconfigure

3、配置nginx

增加gitlab.conf的配置(所有需要注意的地方都加了中文注释):

upstream gitlab-workhorse {
  server 172.18.147.173:8181; #根据实际情况修改
}

## Normal HTTP host
server {
  listen 80;
  listen [::]:80 default_server;
  server_name gitlab.papamk.com; ## 修改成自己的域名;
  server_tokens off; ## Don't show the nginx version number, a security best practice
  root /opt/gitlab/embedded/service/gitlab-rails/public;

  ## See app/controllers/application_controller.rb for headers set

  ## Individual nginx logs for this GitLab vhost
  access_log  /home/wwwlogs/gitlab_access.log; # 根据实际情况修改
  error_log   /home/wwwlogs/gitlab_error.log; # 根据实际情况修改

  location / {
    client_max_body_size 0;
    gzip off;

    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_http_version 1.1;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;

    proxy_pass http://gitlab-workhorse;
  }
}

该配置根据官网提供的配置修改而来: https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/nginx/gitlab-omnibus-nginx.conf。

重启nginx:

$sudo service nginx restart

4、登陆浏览器,这时可以看到安装成功了,如下图所示:

首次登陆会要求重置管理员密码,管理员的默认用户名为root。

未分类

https的支持

1、使用Let’s encrypt申请免费的SSL证书,该项目提供了一个叫certbot/certbot-auto的工具获取证书,执行下面命令获取工具:

$wget https://dl.eff.org/certbot-auto
$chmod +x certbot-auto

执行下面命令生成生成gitlab.papamk.com的证书,其中–agree-tos表示同意协议,–email [email protected]为自己的email。

$./certbot-auto --agree-tos --email [email protected] certonly --webroot -w /opt/gitlab/embedded/service/gitlab-rails/public/ -d gitlab.papamk.com 

执行成功后,可通过以下命令查看下证书位置,nginx需要引用这些文件。(一般位于/etc/letsencrypt/live/gitlab.papamk.com/目录)

$./certbot-auto certificates

2、修改/etc/gitlab/gitlab.rb,对外的URL改为https:

external_url 'https://gitlab.papamk.com'

执行重新配置命令以便让新配置生效:

$gitlab-ctl reconfigure

3、修改前面的nginx的gitlab.conf的配置,全部替换成下面的内容(所有需要注意的地方都加了中文注释):

upstream gitlab-workhorse {
  server 172.18.147.173:8181; #根据实际情况修改
}
## Redirects all HTTP traffic to the HTTPS host
server {
  ## Either remove "default_server" from the listen line below,
  ## or delete the /etc/nginx/sites-enabled/default file. This will cause gitlab
  ## to be served if you visit any address that your server responds to, eg.
  ## the ip address of the server (http://x.x.x.x/)
  listen 0.0.0.0:80;
  listen [::]:80 ipv6only=on default_server;
  server_name gitlab.papamk.com; ## 改成自己的域名
  server_tokens off; ## Don't show the nginx version number, a security best practice
  return 301 https://$http_host$request_uri;
  access_log  /home/wwwlogs/gitlab_access.log; # 根据实际情况修改
  error_log   /home/wwwlogs/gitlab_error.log; # 根据实际情况修改
}
## HTTPS host
server {
  listen 0.0.0.0:443 ssl;
  listen [::]:443 ipv6only=on ssl default_server;
  server_name gitlab.papamk.com; ## 改成自己的域名
  server_tokens off; ## Don't show the nginx version number, a security best practice
  root /opt/gitlab/embedded/service/gitlab-rails/public;

  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html & https://cipherli.st/
  ssl on;
  ssl_certificate /etc/letsencrypt/live/gitlab.papamk.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/gitlab.papamk.com/privkey.pem;

  # GitLab needs backwards compatible ciphers to retain compatibility with Java IDEs
  ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 5m;

  ##   sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
  # ssl_dhparam /etc/ssl/certs/dhparam.pem;

  access_log  /home/wwwlogs/gitlab_access.log; # 根据实际情况修改
  error_log   /home/wwwlogs/gitlab_error.log; # 根据实际情况修改
  location / {
    client_max_body_size 0;
    gzip off;

    ## https://github.com/gitlabhq/gitlabhq/issues/694
    ## Some requests take more than 30 seconds.
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;

    proxy_http_version 1.1;

    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-Ssl     on;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_pass http://gitlab-workhorse;
  }
}

重启nginx:

$sudo service nginx restart

4、定期更新ssl证书

Let’s encrypt提供的证书,有效期为90天,到期后执行如下命令即可继续使用:

$./certbot-auto renew

将该命令加入到crontab,每小时刷新一次,就不用担心过期了。先将该命令移到系统目录下:

$sudo mv certbot-auto /usr/bin/certbot-auto

然后执行crontab -e,添加一行:

0 */1 * * *  /usr/bin/certbot-auto renew

发送邮件的支持

官网已经给出详细的配置说明和各大邮件服务提供商的示例,不再对配置做说明:
https://docs.gitlab.com/omnibus/settings/smtp.html。

我自己使用163邮箱做测试,而官网示例没有,这里给出参考配置:

gitlab_rails['gitlab_email_from'] = '[email protected]' # 替换成实际的email
gitlab_rails['smtp_enable'] = true                                                      
gitlab_rails['smtp_address'] = "smtp.163.com"                                          
gitlab_rails['smtp_port'] = 465                                                        
gitlab_rails['smtp_user_name'] = "[email protected]" # 替换成实际的email                               
gitlab_rails['smtp_password'] = "xxx"  # 替换成实际的密码                                          
#gitlab_rails['smtp_domain'] = "163.com"                                                
gitlab_rails['smtp_authentication'] = "login"                                          
gitlab_rails['smtp_enable_starttls_auto'] = true                                        
gitlab_rails['smtp_tls'] = true 

一般来说,服务提供商的SMTP邮箱都会限制每日发送次数(250封左右),所以推荐有兴趣的同学用Postfix自建邮箱服务器,或者使用mailgun这种专业的邮件服务提供商。

如果是阿里云上的服务器,作为客户端使用第三方的SMTP配置,会发现被禁止连接SMTP的25端口,需要使用465或者587。

安全相关

  • root的密码建议设置得复杂些;

  • 管理员登陆后,推荐开启注册邮箱验证, 防恶意注册,见:https://docs.gitlab.com/ce/security/user_email_confirmation.html。

centos 7 vsftpd服务器搭建及本地用户

centos 7 vsftpd服务器搭建及本地用户

1. 安装vsftpd server端

yum install -y vsfptd

2. 安装ftp客户端

yum install -y ftp

3. 编辑配置文件/etc/vsftp/vsftpd.conf

sudo cp /etc/vsftp/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
sudo vim /etc/vsftpd/vsftpd.conf

local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to FTP service
chroot_local_user=YES
ls_recurse_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
local_root=/home/vsftpd
allow_writeable_chroot=YES
tcp_wrappers=YES
sudo useradd ftpuser -s /sbin/nologin

sudo echo "ftpduserpass" |passwd -stdin ftpuser

4. 创建ftp目录

mkdir -p /home/vsftpd
chown -R ftpuser /home/vsftpd
chmod -R 755 /home/vsftpd

5. 启动服务

systemctl start vsftpd
systemctl enable vsftpd

6. 放通防火墙

firewall-cmd --zone = public --add-port = 22/tcp --permanen
firewall-cmd --zone = public --add-port = 21/tcp --permanen
firewall-cmd --reload

7. 测试

ftp localhost

username :ftpuser
password : ftpduserpass

注:记得关闭selinux

CentOS上用Squid搭建HTTP代理小结

1、安装Squid

yum install squid -y

# -y 代表自动选择y,全自动安装

2、安装后,可以自定义http代理端口,设置来源IP白名单等

vi /etc/squid/squid.conf

# ------ 自定义http端口:

# Squid normally listens to port 3128
http_port 8088

# ------ 设置来源IP白名单,增加的这两行要在 http_access deny all 前面

acl client src 122.55.87.125
http_access allow client

# And finally deny all other access to this proxy
http_access deny all

3、默认squid的access日志里的时间为unix时间戳,不方便阅读,可以通过在 /etc/squid/squid.conf 增加一行logformat配置:

#此行加在配置文件末尾即可
#access log time human-readable
logformat squid %tl.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt

4、修改完配置文件后,reload即可生效:

/etc/init.d/squid reload

#另外启动和重启命令
/etc/init.d/squid start
/etc/init.d/squid restart

5、如果想在防火墙级别就限定只允许白名单IP访问代理端口:

vi /etc/sysconfig/iptables

-A INPUT -s 122.55.87.125 -p tcp -m tcp --dport 8088 -j ACCEPT

service iptables restart

CentOS下nginx的编译安装与配置

一、安装编译工具以及库文件

[root@zfs src]# yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

二、安装nginx依赖关系

nginx所需的依赖关系,一般我们都需要先装pcre, zlib, 前者为了重写rewrite,后者为了gzip压缩。如果系统已经yum安装了这些库也没关系,无需卸载。
直接编译安装最新的就可以了。为了一次性完成编译,先准备编译下面的依赖关系。

1. 安装PCRE库

[root@zfs src]# wget https://sourceforge.net/projects/pcre/files/pcre/8.40/pcre-8.40.tar.gz
[root@zfs src]# tar zxvf pcre-8.40.tar.gz 
[root@zfs src]# cd pcre-8.40
[root@zfs pcre-8.40]# ./configure 
[root@zfs pcre-8.40]# make && make install
[root@zfs pcre-8.40]# cd ../

2. 安装zlib库

[root@zfs src]# wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.11.tar.gz
[root@zfs src]# tar zxvf zlib-1.2.11.tar.gz 
[root@zfs src]# cd zlib-1.2.11
[root@zfs zlib-1.2.11]# ./configure 
[root@zfs zlib-1.2.11]# make && make install
[root@zfs zlib-1.2.11]# cd ../

3. 安装openssl

[root@zfs src]# wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
[root@zfs src]# tar zxvf openssl-1.0.1g.tar.gz 
[root@zfs src]# cd openssl-1.0.1g
[root@zfs openssl-1.0.1g]# ./config 
[root@zfs openssl-1.0.1g]# make && make install
[root@zfs openssl-1.0.1g]# cd ../

三、安装nginx

准备工作完成以后,现在开始安装nginx

[root@zfs src]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
[root@zfs src]# tar zxvf nginx-1.12.2.tar.gz 
[root@zfs src]# cd nginx-1.12.2
[root@zfs
 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx 
--with-http_stub_status_module --with-http_ssl_module 
--with-pcre=/usr/local/src/pcre-8.40 
--with-zlib=/usr/local/src/zlib-1.2.11 
--with-openssl=/usr/local/src/openssl-1.0.1g
[root@zfs nginx-1.12.2]# make && make install

查看nginx版本

[root@zfs nginx-1.12.2]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.12.2

至此,nginx安装完成

四、nginx配置

创建nginx运行时用户nginx

groupadd nginx
useradd -g nginx nginx

然后修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

将 #user nobody改成 user nginx;
检查nginx配置文件

[root@zfs nginx-1.12.2]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

配置正确无误

[root@zfs nginx-1.12.2]# /usr/local/nginx/sbin/nginx

在浏览器中输入http://127.0.0.1 如果出现如下欢迎界面,表示nginx启动成功

未分类

centos7忘记mysql密码

个人环境

  • mysql 5.7.16
  • centos 7.4

1. 修改mysql配置文件

编辑配置文件

vim /etc/my.cnf

按i在[mysqld]中添加skip-grant-tables,即跳过权限认证

skip-grant-tables

按esc后输入:wq保存退出

2. 重启mysql

输入命令重启

service mysqld restart

3. 登录mysql

mysql -u root -p

无需输入密码直接回车进入mysql

4. 修改mysql的root密码

选择mysql数据库

use mysql;

修改root密码 (密码需要满足mysql的密码策略,见底部)

update user set authentication_string=password('你的密码') where user='root';

刷新权限

flush privileges;

退出mysql

quit;

5. 修改/etc/my.cnf 删除skip-grant-tables

6. 重启mysql

service mysqld restart

7. 再次登录mysql,出现错误提示

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改密码即可

set password=password("密码");

密码策略如下:

  • 至少8位
  • 至少包含1位特殊字符
  • 至少包含大小写混合
  • 至少1位数字
  • 如果出现1819错误,代表密码不符合要求
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

CentOS6.x安装memcached-1.5.x

一、系统及安装说明

系统:CentOS6.x_x64,memcached-1.5.3。memcached官方下载地址 http://www.memcached.org/files/memcached-1.5.3.tar.gz。libevent 库:https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz

二、开始安装

1>首先yum安装gcc

yum install -y wget gcc

2>安装源码libevent库

#wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
#tar zxvf libevent-2.0.21-stable.tar.gz
#./configure --prefix=/usr/local/libevent
#make && make install

检查是否安装成功

#输入: ls -al /usr/local/libevent/lib | grep libevent
#如果输出为下所示则表示安装成功
lrwxrwxrwx 1 root root      21 Dec  4 18:08 libevent-2.0.so.5 -> libevent-2.0.so.5.1.9
-rwxr-xr-x 1 root root  968442 Dec  4 18:08 libevent-2.0.so.5.1.9
-rw-r--r-- 1 root root 1571130 Dec  4 18:08 libevent.a
lrwxrwxrwx 1 root root      26 Dec  4 18:08 libevent_core-2.0.so.5 -> libevent_core-2.0.so.5.1.9
-rwxr-xr-x 1 root root  585057 Dec  4 18:08 libevent_core-2.0.so.5.1.9
-rw-r--r-- 1 root root  977914 Dec  4 18:08 libevent_core.a
-rwxr-xr-x 1 root root     985 Dec  4 18:08 libevent_core.la
lrwxrwxrwx 1 root root      26 Dec  4 18:08 libevent_core.so -> libevent_core-2.0.so.5.1.9
lrwxrwxrwx 1 root root      27 Dec  4 18:08 libevent_extra-2.0.so.5 -> libevent_extra-2.0.so.5.1.9
-rwxr-xr-x 1 root root  404772 Dec  4 18:08 libevent_extra-2.0.so.5.1.9
-rw-r--r-- 1 root root  593288 Dec  4 18:08 libevent_extra.a
-rwxr-xr-x 1 root root     992 Dec  4 18:08 libevent_extra.la
lrwxrwxrwx 1 root root      27 Dec  4 18:08 libevent_extra.so -> libevent_extra-2.0.so.5.1.9
-rwxr-xr-x 1 root root     950 Dec  4 18:08 libevent.la
lrwxrwxrwx 1 root root      29 Dec  4 18:08 libevent_openssl-2.0.so.5 -> libevent_openssl-2.0.so.5.1.9
-rwxr-xr-x 1 root root   94209 Dec  4 18:08 libevent_openssl-2.0.so.5.1.9
-rw-r--r-- 1 root root  131836 Dec  4 18:08 libevent_openssl.a
-rwxr-xr-x 1 root root    1021 Dec  4 18:08 libevent_openssl.la
lrwxrwxrwx 1 root root      29 Dec  4 18:08 libevent_openssl.so -> libevent_openssl-2.0.so.5.1.9
lrwxrwxrwx 1 root root      30 Dec  4 18:08 libevent_pthreads-2.0.so.5 -> libevent_pthreads-2.0.so.5.1.9
-rwxr-xr-x 1 root root   18462 Dec  4 18:08 libevent_pthreads-2.0.so.5.1.9
-rw-r--r-- 1 root root   18702 Dec  4 18:08 libevent_pthreads.a
-rwxr-xr-x 1 root root    1013 Dec  4 18:08 libevent_pthreads.la
lrwxrwxrwx 1 root root      30 Dec  4 18:08 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.1.9
lrwxrwxrwx 1 root root      21 Dec  4 18:08 libevent.so -> libevent-2.0.so.5.1.9

3>下载安装memcached

#wget 
#tar -zxvf  memcached-1.5.3.tar.gz
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
#make && make install
#ln -s /usr/local/memcached/bin/memcached /usr/local/bin   #建立软连接

三、编辑脚本加入启动项

1>脚本

vim cat /etc/init.d/memcached
#!/bin/sh
#
# memcached:    MemCached Daemon
#
# chkconfig:    - 90 25
# description:  MemCached Daemon
# Source function library.
# Author: pkey san 2015/12/07
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
prog=memcached
pidfile=${PIDFILE-/var/run/memcached.pid}
start()
{
        echo -n $"Starting memcached: "
        daemon --pidfile=${pidfile} /usr/local/bin/memcached -u daemon -d -m 512 -l 127.0.0.1 -c 4096 -p 11211
        echo `ps aux |grep memcached |grep 11211 |grep -v grep |awk '{print $2}'` >$pidfile
        echo
}
stop()
{
        echo -n $"Shutting down memcached: "
        killproc  $prog
        echo
}
rh_status(){
status -p ${pidfile} $prog
}
[ -f /usr/local/bin/memcached ] || exit 0
# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        rh_status
        ;;
  restart|reload)
        stop
        start
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|}"
        exit 1
esac
exit 0

2>解释说明

daemon --pidfile=${pidfile} /usr/local/bin/memcached -u daemon -d -m 512 -l 127.0.0.1 -c 4096 -p 11211     

-p memcached监听的TCP端口
-l 监听的ip地址,127.0.0.1是本机,当然也可以写上你的服务器IP,如:10.0.0.10,这是我服务器的IP地址,如果你需要多个服务器都能够读取这台memcached的缓存数据,那么就必须设定这个ip
-d 以daemon方式运行,将程序放入后台
-u memcached的运行用户
-P memcached的pid文件路径
-m memcached可以使用的最大内存数量
-c memcached同时可以接受的最大的连接数
如果你希望以socket方式来访问memcached,那么在启动的时候就必须去掉 -l和-p参数,并加上-s参数:
-s memcached的socket文件路径

3>添加开机启动

#chmod +x /etc/init.d/memcached
#chkconfig --add memcached
#chkconfig memcached on
#service memcached start|stop|restart|reload|status

四、编译配置(第二种启动方式)

#安装好之后
ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
/bin/cp scripts/memcached.sysv /etc/init.d/memcached
sed -i 's@^USER=.*@USER=root@' /etc/init.d/memcached
sed -i 's@chown@#chown@' /etc/init.d/memcached
sed -i 's@/var/run/memcached/memcached.pid@/var/run/memcached.pid@' /etc/init.d/memcached
sed -i 's@^prog=.*@prog="/usr/local/memcached/bin/memcached"@' /etc/init.d/memcached #前面有软链接,这里可以省略
chmod +x /etc/init.d/memcached
chkconfig --add memcached
chkconfig memcached on

此种方式也可以加到启动项里。

centos iptables只允许某一ip访问某端口设置方法

首先,清除所有预设置

iptables -F

其次,设置只允许指定ip地址访问指定端口

1、在tcp协议中,禁止所有的ip访问本机的8080端口。

iptables -I INPUT -p tcp --dport 8080 -j DROP

2、允许192.168.1.123访问本机的1521端口

iptables -I INPUT -s 211.211.211.211 -p tcp --dport 8080 -j ACCEPT

最后,保存当前规则

/etc/rc.d/init.d/iptables save 
service iptables restart

添加后打开iptables后如图所示,

-A INPUT -s 192.168.1.123/32 -p tcp -m tcp --dport 1521 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1521 -j DROP

未分类

CentOS下apache绑定域名

本文主要介绍在CentOS下apache绑定域名以及apache绑定多个域名,首先要找到apache的配置文件httpd.conf的位置。CentOS操作系统一般在 /etc/httpd/conf 下,有的Linux操作系统版本是在 /etc/Apache2/conf 或 /usr/local/etc/apache 文件夹里面,剩下需要做的是修改配置文件httpd.conf,一般配置文件最下面有如下绑定域名说明:

# VirtualHost example:  
# Almost any Apache directive may go into a VirtualHost container.  
# The first VirtualHost section is used for requests without a known  
# server name.  
#  
#<VirtualHost *:80> 
#    ServerAdmin [email protected]  
#    DocumentRoot /www/docs/dummy-host.example.com  
#    ServerName dummy-host.example.com  
#    ErrorLog logs/dummy-host.example.com-error_log  
#    CustomLog logs/dummy-host.example.com-access_log common  
#</VirtualHost> 

大家可以依葫芦画瓢,也可以结合相关语法加入自己的配置说明,下面是我无忧程序的配置文件:1、* 星号修改成自己网站的IP地址 2、ServerAdmin管理员邮箱(可有可无) 3、DocumentRoot网站文件在服务器的目录路径 4、ServerName绑定相应域名 5、ServerAlias泛解析绑定子域名 6、ErrorLog和CustomLog指定日志文件存放路径。

<VirtualHost 175.102.8.117:80> 
    addDefaultCharset gbk  
    DocumentRoot /chengxu 
    ServerName 66php.com  
    ServerAlias *.66php.com  
    ErrorLog /sym/logs/66php.com-error_log  
    CustomLog /sym/logs/66php.com-access_log common  
</VirtualHost> 

如果一个服务器绑定多个域名不是在ServerName添加多个域名,ServerName 后面只能加一个域名,要重复绑定则需要添加多加多个VirtualHost模块。

CentOS7防火墙firewalld配置

启动:

systemctl start firewalld

停止:

systemctl stop firewalld

重启:

systemctl restart firewalld.service

查看状态:

systemctl status firewalld

开机启动:

systemctl enable firewalld.service

开机禁用:

systemctl disable firewalld

查看服务是否开机启动:

systemctl is-enabled firewalld.service

查看已启动的服务列表:

systemctl list-unit-files|grep enabled

查看启动失败的服务列表:

systemctl --failed

查看版本:

firewall-cmd --version

查看帮助:

firewall-cmd --help

显示状态:

firewall-cmd --state

查看所有打开的端口:

firewall-cmd --zone=public --list-ports

更新防火墙规则:

firewall-cmd --reload

查看区域信息:

firewall-cmd --get-active-zones

查看指定接口所属区域:

firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:

firewall-cmd --panic-on

取消拒绝状态:

firewall-cmd --panic-off

查看是否拒绝:

firewall-cmd --query-panic

开放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

查看80端口:

firewall-cmd --zone=public --query-port=80/tcp

删除80端口:

firewall-cmd --zone=public --remove-port=80/tcp --permanent

开放端口区间:

firewall-cmd --permanent --zone=public --add-port=8080-9999/tcp //永久

重新载入使配置立即生效:

firewall-cmd --reload