分类 centos6 下的文章

生成定制的 mysql的rpm 包

mysql 5.6
centos 6.8 minimal

下载 src.rpm 后缀的包
安装所需软件

yum install rpm-build

切换到普通用户

su - jin

创建rmpbuild目录

mkdir rembuild

解压rpm包文件

rpm -ivh MySQL-5.6.33-1.el6.src.rpm 

进入 rpmbuild 目录

vim SPECS/mysql.spec 

找到 Build full release ,在修改自定义的编译参数,这里以修改数据库支持的字符集为例,如下

${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
           -DWITH_INNODB_MEMCACHED=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
           -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
           -DFEATURE_SET="%{feature_set}" \
           %{ssl_option} \
           -DCOMPILATION_COMMENT="%{compilation_comment_release}" \
           -DMYSQL_SERVER_SUFFIX="%{server_suffix}"

改成下面的

${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
           -DWITH_INNODB_MEMCACHED=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
           -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
           -DFEATURE_SET="%{feature_set}" \
           %{ssl_option} \
           -DCOMPILATION_COMMENT="%{compilation_comment_release}" \
           -DMYSQL_SERVER_SUFFIX="%{server_suffix}" \
           -DWITH_EXTRA_CHARSETS=all

或者直接修改最上面变量声明的位置,这里以修改运行用户为例,

%global mysqld_user     mysql

修改为

%global mysqld_user     mysql1

构建 rpm 包

cd SPECS/
rpmbuild -bb mysql.spec

报错了

gperf is needed by MySQL-5.6.33-1.linux_glibc.x86_64
    time is needed by MySQL-5.6.33-1.linux_glibc.x86_64
    zlib-devel is needed by MySQL-5.6.33-1.linux_glibc.x86_64

缺什么安装即可

sudo yum install -y gperf time zlib-devel

重新构建

rpmbuild -bb mysql.spec

报错

CMake Error at cmake/build_configurations/mysql_release.cmake:46 (MESSAGE):


          aio is required on Linux, you need to install the required library:



            Debian/Ubuntu:              apt-get install libaio-dev
            RedHat/Fedora/Oracle Linux: yum install libaio-devel
            SuSE:                       zypper install libaio-devel



          If you really do not want it, pass -DIGNORE_AIO_CHECK to cmake.

Call Stack (most recent call first):
  CMakeLists.txt:134 (INCLUDE)

按照提示执行即可

sudo yum install libaio-devel

重新构建

rpmbuild -bb mysql.spec

报了个这个错

-DWITH_EXTRA_CHARSETS=all: command not found

犯二了,加的选项没加 \

重新构建

rpmbuild -bb mysql.spec

出现以下的,就ok了

Wrote: /home/jin/rpmbuild/RPMS/x86_64/MySQL-server-5.6.33-1.linux_glibc.x86_64.rpm
Wrote: /home/jin/rpmbuild/RPMS/x86_64/MySQL-client-5.6.33-1.linux_glibc.x86_64.rpm
Wrote: /home/jin/rpmbuild/RPMS/x86_64/MySQL-test-5.6.33-1.linux_glibc.x86_64.rpm
Wrote: /home/jin/rpmbuild/RPMS/x86_64/MySQL-devel-5.6.33-1.linux_glibc.x86_64.rpm
Wrote: /home/jin/rpmbuild/RPMS/x86_64/MySQL-shared-5.6.33-1.linux_glibc.x86_64.rpm
Wrote: /home/jin/rpmbuild/RPMS/x86_64/MySQL-embedded-5.6.33-1.linux_glibc.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.0k7Cbk
+ umask 022
+ cd /home/jin/rpmbuild/BUILD
+ cd mysql-5.6.33
+ '[' /home/jin/rpmbuild/BUILDROOT/MySQL-5.6.33-1.linux_glibc.x86_64 '!=' / ']'
+ '[' -d /home/jin/rpmbuild/BUILDROOT/MySQL-5.6.33-1.linux_glibc.x86_64 ']'
+ rm -rf /home/jin/rpmbuild/BUILDROOT/MySQL-5.6.33-1.linux_glibc.x86_64
+ exit 0

测试能否安装

yum install MySQL-server-5.6.33-1.linux_glibc.x86_64.rpm

报错

file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-5.6.33-1.linux_glibc.x86_64 conflicts with file from package mysql-libs-5.1.73-7.el6.x86_64

是已经安装的 mysql-libs 的版本太低,先删除,在安装

yum remove mysql-libs
yum install MySQL-server-5.6.33-1.linux_glibc.x86_64.rpm

复制配置文件

scp /usr/share/mysql/my-default.cnf /etc/my.cnf

因为在生成 rpm 包的时候,把默认的用户和用户组改成了 mysql1 , 所以在 yum 安装的时候创建了 mysql 的用户,直接启动的时候还是会以 mysql 的身份启动,所以在 my.cnf 中手动指定下 用户

[mysqld]

下加一行

user=mysql1

启动

service mysql start

看到下面的就 ok 了

Starting MySQL.. SUCCESS!

安装客户端

yum install MySQL-client-5.6.33-1.linux_glibc.x86_64.rpm

在这里查看默认密码

cat /root/.mysql_secret

登录,登录之后需要修改密码才能做其他操作

mysql -u root -p 

设置密码

SET PASSWORD = PASSWORD('123456'); 

允许远程登录

update user set password=password('123456') where user='root';
update user set host='%' where user='root' and host='localhost';
flush privileges;

mysql5.6 编译安装

先关闭selinux
编译需要的软件

yum install gcc-c++
yum install gcc
yum install cmake

添加mysql运行的用户

useradd mysql -s /sbin/nologin

创建mysql数据目录

mkdir mysql
cd mysql
mkdir data
chown -R mysql:mysql mysql

编译

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.socket  \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql

5.7,编译(5.7需要下载一个库(boots),我这下载特别慢,就不装5.7了)

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.socket \ 
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost

DCMAKE_INSTALL_PREFIX : 执行文件路径
DMYSQL_DATADIR : 数据存放地址
DSYSCONFDIR : 配置文件目录
WITH_ARCHIVE_STORAGE_ENGINE : 存储引擎
WITH_BLACKHOLE_STORAGE_ENGINE : 存储引擎
WITH_PERFSCHEMA_STORAGE_ENGINE : 存储引擎(分区)
MYSQL_UNIX_ADDR : socket文件路径
ENABLED_LOCAL_INFILE : 是否能使用本地文件
WITH_EXTRA_CHARSETS : 支持的字符集
MYSQL_USER : 运行时的用户

报了下面的错,安装 ncurses-devel 即可

-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) 
CMake Error at cmake/readline.cmake:85 (MESSAGE):
  Curses library not found.  Please install appropriate package,
yum install -y ncurses-devel

清空下文件,不然还会报错

echo "" > CMakeLists.txt
\rm CMakeCache.txt

再执行

cmake

显示

-- Configuring done
-- Generating done

即可
报了个警告(不知道有没有影响。。。把 MYSQL_USER 这个选项去掉好像就没有影响了,我没去掉,编译安装之后是正常的)

Manually-specified variables were not used by the project:
MYSQL_USER

显示 100% 即可

gmake

安装

make install

文件移动到该目录,就能被 service 管理

cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

配置文件

cp support-files/my-default.cnf /etc/my.cnf

[mysqld] 添加:

datadir=/var/mysql/data
#default-storage-engine=MyISAM
# 以下可选:
log-error = /var/mysql/data/error.log
#pid-file = /var/mysql/mysql.pid
user = mysql
tmpdir = /tmp

安装默认数据表

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql

开启启动

chkconfig --add mysql

阿里云配置iptables防火墙

转载自:http://www.biphp.com/website-design/%E9%98%BF%E9%87%8C%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8linux%E9%85%8D%E7%BD%AEiptables/
尽管阿里云有云盾这样的对云服务器的安全监控保护,但是就如房子在相对安全的小区,关门总比不关门更安全吧。下面我们就开始配置阿里云服务器的iptables,为你的云服务器linux系统加上一道安全门。如果你对iptables基础知识不了解,请查看【IPTABLES】。
阿里云服务器的iptables服务默认是未开启的:

[root@AY12072 ~]# service iptables status
Firewall is stopped.

开始配置

一、配置filter表的防火墙

(1)查看本机关于IPTABLES的设置情况

[root@AY12072 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all — 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp — 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp — 0.0.0.0/0 0.0.0.0/0
ACCEPT ah — 0.0.0.0/0 0.0.0.0/0
ACCEPT udp — 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all — 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
如果你在安装linux时没有选择启动防火墙,是这样的

[root@AY12072 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

什么规则都没有.

(2)清除原有规则.
不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则.

[root@AY12072 ~]# iptables -F 清除预设表filter中的所有规则链的规则
[root@AY12072 ~]# iptables -X 清除预设表filter中使用者自定链中的规则
我们在来看一下
[root@AY12072 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存.

[root@AY12072 ~]# /etc/rc.d/init.d/iptables save

这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.

[root@AY12072 ~]# service iptables restart

现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧

(3)设定预设规则

[root@AY12072 ~]# service iptables stop
[root@AY12072 ~]# iptables -p INPUT DROP
[root@AY12072 ~]# iptables -p OUTPUT ACCEPT
[root@AY12072 ~]# iptables -p FORWARD DROP

上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包
而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.
可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.
这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.
注:如果你是远程SSH登陆的话,如果不把iptables服务停止掉,当你输入iptables -p INPUT DROP回车的时候就应该SSH连接断了。因为你没有设置任何规则。怎么办?除了本机操作只有重启了!

(4)添加规则.
首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链
为了能采用远程SSH登陆,我们要开启22端口.

[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 22 -j ACCEPT
[root@AY12072 ~]# iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT 
```(注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.
其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:
```shell
[root@AY12072 ~]# iptables -A OUTPUT -p tcp –sport 80 -j ACCEPT #,其他同理.)
#如果做了WEB服务器,开启80端口.
[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 80 -j ACCEPT
#如果做了邮件服务器,开启25,110端口.
[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 110 -j ACCEPT
[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 25 -j ACCEPT
#如果做了FTP服务器,开启21端口
[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 21 -j ACCEPT
[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 20 -j ACCEPT
#如果做了DNS服务器,开启53端口
[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 53 -j ACCEPT

如果你还做了其他的服务器,需要开启哪个端口,照写就行了.
上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP
允许icmp包通过,也就是允许ping,

[root@AY12072 ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)
[root@AY12072 ~]# iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成DROP的话)

允许loopback!(不然会导致DNS无法正常关闭等问题)

IPTABLES -A INPUT -i lo -p all -j ACCEPT #(如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT #(如果是OUTPUT DROP)

下面写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.
减少不安全的端口连接

[root@AY12072 ~]# iptables -A OUTPUT -p tcp –sport 31337 -j DROP
[root@AY12072 ~]# iptables -A OUTPUT -p tcp –dport 31337 -j DROP

有些些特洛伊木马会扫描端口31337到31340(即黑客语言中的 elite 端口)上的服务。既然合法服务都不使用这些非标准端口来通信,阻塞这些端口能够有效地减少你的网络上可能被感染的机器和它们的远程主服务器进行独立通信的机会
还有其他端口也一样,像:31335、27444、27665、20034 NetBus、9704、137-139(smb),2049(NFS)端口也应被禁止,我在这写的也不全,有兴趣的朋友应该去查一下相关资料.
当然出入更安全的考虑你也可以包OUTPUT链设置成DROP,那你添加的规则就多一些,就像上边添加
允许SSH登陆一样.照着写就行了.
下面写一下更加细致的规则,就是限制到某台机器
如:我们只允许192.168.0.3的机器进行SSH连接

[root@AY12072 ~]# iptables -A INPUT -s 192.168.0.3 -p tcp –dport 22 -j ACCEPT

如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.
24表示子网掩码数.但要记得把 /etc/sysconfig/iptables 里的这一行删了.
-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT 因为它表示所有地址都可以登陆.
或采用命令方式:

[root@AY12072 ~]# iptables -D INPUT -p tcp –dport 22 -j ACCEPT

然后保存,我再说一边,反是采用命令的方式,只在当时生效,如果想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.

[root@AY12072 ~]# /etc/rc.d/init.d/iptables save

这样写 !192.168.0.3 表示除了192.168.0.3的ip地址
其他的规则连接也一样这么设置.
在下面就是FORWARD链,FORWARD链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链,对正在转发链的监控.
开启转发功能,(在做NAT时,FORWARD默认规则是DROP时,必须做)

[root@AY12072 ~]# iptables -A FORWARD -i eth0 -o eth1 -m state –state RELATED,ESTABLISHED -j ACCEPT
[root@AY12072 ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
#丢弃坏的TCP包
[root@AY12072 ~]#iptables -A FORWARD -p TCP ! –syn -m state –state NEW -j DROP
#处理IP碎片数量,防止攻击,允许每秒100个
[root@AY12072 ~]#iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.
[root@AY12072 ~]#iptables -A FORWARD -p icmp -m limit –limit 1/s –limit-burst 10 -j ACCEPT
#我在前面只所以允许ICMP包通过,就是因为我在这里有限制.

二、配置NAT表防火墙

1.查看本机关于NAT的设置情况

[root@tp rc.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all — 192.168.0.0/24 anywhere to:211.101.46.235
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则).关于怎么配置NAT,参考我的另一篇文章
当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的
如果你想清除,命令是

[root@AY12072 ~]# iptables -F -t nat
[root@AY12072 ~]# iptables -X -t nat
[root@AY12072 ~]# iptables -Z -t nat

2.添加规则
添加基本的NAT地址转换,添加规则,我们只添加DROP链。因为默认链全是ACCEPT。
防止外网用内网IP欺骗

[root@AY12072 sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
[root@AY12072 sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[root@AY12072 sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)
例:
禁止与211.101.46.253的所有连接

[root@AY12072 ~]# iptables -t nat -A PREROUTING -d 211.101.46.253 -j DROP
#禁用FTP(21)端口
[root@AY12072 ~]# iptables -t nat -A PREROUTING -p tcp –dport 21 -j DROP
#这样写范围太大了,我们可以更精确的定义.
[root@AY12072 ~]# iptables -t nat -A PREROUTING -p tcp –dport 21 -d 211.101.46.253 -j DROP

这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.
按照我写的,你只要找到QQ,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.
最后:
drop非法连接

[root@AY12072 ~]# iptables -A INPUT -m state –state INVALID -j DROP
[root@AY12072 ~]# iptables -A OUTPUT -m state –state INVALID -j DROP
[root@AY12072 ~]# iptables-A FORWARD -m state –state INVALID -j DROP
#允许所有已经建立的和相关的连接
[root@AY12072 ~]# iptables-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
[root@AY12072 ~]# iptables-A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
[root@AY12072 ~]# /etc/rc.d/init.d/iptables save
#这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.
[root@AY12072 ~]# service iptables restart

用命令行之后别忘了保存,你可以一边保存,一边做实验,看看是否达到你的要求,上面的所有规则我都试过,没有问题。
另外分享几个自己实验的端口设置:
1. 阿里云服务器linux centos的iptables关于DNS设置:

[root@AY12072 ~]# iptables -A INPUT -p tcp –sport 53 -j ACCEPT
[root@AY12072 ~]# iptables -A INPUT -p udp –sport 53 -j ACCEPT

不开以上端口无法ping通如www.baidu.com的网址
2. 阿里云服务器linux centos的iptables关于vncserver设置:

[root@AY12072 ~]# iptables -A INPUT -p tcp –dport 5901 -j ACCEPT
#具体端口查看对应进程所需端口号:
[root@AY12072 ~]# netstat -tunlp
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 7019/Xvnc
  1. 如果你的阿里云服务器linux centos安装了GNOME,并且firefox无法打开网页,可以用如下设置iptables:
[root@AY12072 ~]# iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

centos6.6,7minimal安装之后,不能补全命令

centos7minimal安装之后,tab键不能补全了。。。
上网搜了下,原来是要安装一个插件bash-completion
我就直接安装了

yum install bash-completion

安装ok了
然后再退出终端,,在登陆一下就ok了~~~~

参考网址:http://blog.csdn.net/zokie/article/details/8730542
http://www.51ou.com/browse/centos/61405.html

centos6.6执行yum安装的话,找不到这个软件
去这里下载http://www.caliban.org/files/redhat/RPMS/noarch/bash-completion-20060301-1.noarch.rpm

sudo rpm -ivf bash-completion-20060301-1.noarch.rpm

重新登陆下就好了

centos6.6搭建LANP环境(yum)

nginx
自带的yum源的nginx版本比较低,到nginx官网下载版本对应的源http://nginx.org/en/linux_packages.html#stable

然后安装

rpm -ivf nginx-release-centos-6-0.el6.ngx.noarch.rpm

再安装nginx

yum install nginx

安装成功,启动nginx

service nginx start 

mysql
去mysql的官网下载源,http://dev.mysql.com/downloads/repo/yum/
这个页面有安装步骤,http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
安装下载的源

rpm -ivf mysql-community-release-el6-5.noarch.rpm

安装mysql

yum install mysql-community-server

启动mysql

service mysqld start

会报错,启动不成功

初始化 MySQL 数据库: 2015-06-08T13:15:59.011125Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-06-08T13:15:59.013681Z 0 [ERROR] Can't change data directory owner to mysql
2015-06-08T13:15:59.013693Z 0 [ERROR] Aborting

关闭下selinux

setenforce 0

再启动下,然后进行运行mysql的命令进行一些初始化工作(具体设置内容可以看centos7安装LANP)
运行这个命令需要的密码可以用这个命令看到

grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation

php
安装php的源,比较新

yum install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

安装php(这里安装了一些php的扩展,有些不知道是干嘛的~~~可以根据需求去掉,但是php-fpm和php-mysqlnd最好别去掉,一个是之后和nginx整合需要用到的,一个连接mysql的)

yum install --enablerepo=remi --enablerepo=remi-php56 php php-fpm php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

php和nginx
先启动php-fpm

service php-fpm start

修改nginx配置文件(配置在这里点击我)
然后就ok了

php和mysql
先打开selinux的一个选项

setsebool -P httpd_can_network_connect=1

再测试下,应该就ok了~~~~

设置下服务在开机的时候自启动

chkconfig --level 235 php-fpm on
chkconfig --level 235 mysqld on
chkconfig --level 235 nginx on

这样设置之后因为防火墙的关系,只有本机可以访问,查看防火墙的设定防火墙设定