2013年3月19日星期二
五步轻松搞定Linux下的文件同步(备份)
rsync文件同步配置
server端:主机名s170
client端:主机名s156
目录:/opt/test
用户:root
目标:配置rsync使得client端可以把server的/opt/test目录中的文件同步(备份)过来。
操作步骤一:确认rsync是否安装
server端和client端:
[root@s156 ~]# yum list rsync
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
Installed Packages
rsync.i386 3.0.6-4.el5_7.1 installed
[root@s156 ~]#
如果没有安装,则使用下面的命令安装
yum install -y rsync
操作步骤二:启动rsync服务
server端:
[root@s170 mysql]# chkconfig rsync --list
rsync 关闭
[root@s170 mysql]# chkconfig rsync on
[root@s170 mysql]# chkconfig rsync --list
rsync 启用
[root@s170 mysql]#
操作步骤三:设置ssh免登录
server端:
检查server端的.ssh目录
[root@s170 ~]# cd .ssh/
[root@s170 .ssh]# ls -a
. .. known_hosts
此步的目的是为了后面确认~/.ssh目录中文件的变化。
client端:
[root@s156 ~]# ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
0b:9d:3e:64:77:17:6a:d8:60:1e:ab:47:42:d1:8e:51 root@s156
[root@s156 ~]#
其中,/root/.ssh/id_dsa 是私钥,/root/.ssh/id_dsa.pub 是公钥。
现在,将公钥复制到server端。
[root@s156 .ssh]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@s170
21
ssh: connect to host s170 port 22: Connection refused
由于s170机器的ssh服务端口已修改,使用默认的22端口访问失败。
注意:下面的命令行中指定端口的方法。
[root@s156 .ssh]# ssh-copy-id -i ~/.ssh/id_dsa.pub "-p 21702 root@s170"
21
root@s170's password:
Now try logging into the machine, with "ssh '-p 21702 root@s170'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@s156 .ssh]#
server端:
[root@s170 .ssh]# ls -a
. .. authorized_keys known_hosts
[root@s170 .ssh]# cat authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAKUqlhhT8mEj39aKgqgziI/TqYEtaz5epS/gWVTZBmtBiY3hgYK1F+/2ItwmKI85ouIuHN4y0axzsPZv27gkYAt+Qz2AZ+QQ4IthN8cNlPQzZ1dcqtoHzFAJYpgB/HcGh2RUl/mpkHXbllOIpr281nyr+Y9LyC/qF0031A0WegyzAAAAFQDroRvSeqS9mpsJmqm0wZpNbFOSGwAAAIA4j9tGmKQ/40fpfJZ+mC5GyW+nbuL9vYHqCujX7mLku7apCq7MXqXR/s2Q4av2T68J6qR2p84obDnqbCN+H3d+7JFblLjST9WSNGMXEiPZB9lTWFV38n6exJ96rSKfeBkdOUO49MYcNX/mMpypmIHqGfpvuXbQKqWFQH7WLxVAYwAAAIBWTyQiWkkLNZkRzKjjcORtYLHss+QfqvbygXNiZSuijZ+mXyjZ9A5CxU781FsU/NmD+i6qtSr5XVyRRuigIJGWAYZ8IcD2Ct18+WPzapgO6/Ptn9I2a+6dV44MbGTtn4Rax0UaSHzWHsg+G3Kvwh9x5gcvmuoSGeamVpmcsEHjZg== root@s156
[root@s170 .ssh]#
注:非对称加密方式下,公钥是可以公开的,而私钥必须妥善保管!
client端:
测试一下免登录ssh。
[root@s156 .ssh]# ssh -p21702 xxx.170
Last login: Sun May 20 11:14:50 2012 from 180.168.215.167
[root@s170 ~]#
[root@s170 ~]# ls
anaconda-ks.cfg backup install.log install.log.syslog setup
[root@s170 ~]# exit
logout
Connection to s170 closed.
[root@s156 .ssh]#
操作步骤四:使用rsync同步文件
server端:
创建测试文件
[root@s170 .ssh]# cd /opt/
[root@s170 opt]# mkdir test
[root@s170 opt]# cd test
[root@s170 test]# ls
[root@s170 test]# cat >1.txt
hello sync
[root@s170 test]#
[root@s170 test]# ls -l
总计 4
-rw-r--r-- 1 root root 11 05-20 17:10 1.txt
client端:
执行同步
[root@s156 .ssh]# cd /opt/
[root@s156 opt]# mkdir test
[root@s156 opt]# cd test
[root@s156 test]# ls
[root@s156 test]# rsync -avR -e ssh s170:/opt/test /
ssh: connect to host s170 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [receiver=3.0.6]
[root@s156 test]# rsync -avR -e "ssh -p 21702" s170:/opt/test /
receiving incremental file list
opt/
opt/test/
opt/test/1.txt
sent 38 bytes received 142 bytes 360.00 bytes/sec
total size is 11 speedup is 0.06
[root@s156 test]# ls -l
总计 4
-rw-r--r-- 1 root root 11 05-20 17:10 1.txt
server端:
又在server端创建了3.txt文件。
[root@s170 test]# cat >3.txt
ddd
ddd
[root@s170 test]#
[root@s170 test]# ls -l
总计 8
-rw-r--r-- 1 root root 11 05-20 17:10 1.txt
-rw-r--r-- 1 root root 9 05-20 17:21 3.txt
[root@s170 test]#
client端:
注意:这次rsync的参数少了-R,对比一下。
[root@s156 test]# rsync -av -e "ssh -p 21702" s170:/opt/test /
receiving incremental file list
test/
test/3.txt
sent 34 bytes received 132 bytes 332.00 bytes/sec
total size is 20 speedup is 0.12
[root@s156 test]# ls -l
总计 8
-rw-r--r-- 1 root root 11 05-20 17:10 1.txt
怪了,没有3.txt。
[root@s156 test]# updatedb
[root@s156 test]# locate 3.txt
/test/3.txt
[root@s156 test]#
如果没有-R参数,要像下面这样写。
[root@s156 test]# rsync -av -e "ssh -p 21702" s170:/opt/test /opt
receiving incremental file list
test/
test/3.txt
sent 34 bytes received 132 bytes 332.00 bytes/sec
total size is 20 speedup is 0.12
[root@s156 test]# ls
1.txt 3.txt
[root@s156 test]#
操作步骤五:使用crontab定期执行同步
使用 crontab 执行同步的最小时间粒度为 1分钟,也就是说最长可能要1分钟才能将新增的文件同步。
如果是主备冗余的方式,这问题也不大。
client端:
crontab -e
* * * * * rsync -avR -e "ssh -p 21702" s170:/opt/test /
现在来测试crontab设置是否有效
server端:
[root@s170 test]# cat >c.txt
hello world
[root@s170 test]#
client端:
[root@s156 test]# ls -l
总计 12
-rw-r--r-- 1 root root 11 05-20 17:10 1.txt
-rw-r--r-- 1 root root 9 05-20 17:21 3.txt
-rw-r--r-- 1 root root 12 05-20 18:22 c.txt
[root@s156 test]#
成功了!
本文链接:http://codingstandards.iteye.com/blog/1539363 转载请注明出处
PS:存在的问题:
使用crontab方式执行rsync,不能实时同步文件。有文章说道,可以采用inotify实现实时通知同步。下次有空再试验一下。
2013年3月16日星期六
linux强制删除目录命令rm -rf
分类: 技术手册 linux 2009-03-06 15:17 7000人阅读 评论(0) 收藏 举报
linux
Linux删除文件夹命令--rm, rmdir
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,
就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf
即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
删除文件夹实例:
#rm -rf /opt/real/RealPlayer
将会删除/opt/real/RealPlayer目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
当然,rm还有更多的其他参数和用法,man rm就可以查看了
删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件
Linux CentOS中cp复制强制覆盖拷贝的命令
Linux下默认cp命令是有别名的(alias cp='cp -i'),无法在复制时强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供几个从网上找的Linux下cp命令覆盖的方法。
1) 取消cp的alias(放心这不是永久生效):
#unalias cp
#cp a /test/a
2) 加反斜杠 \cp 执行cp命令时不走alias(测试过,这个有用):
#\cp a /test/a
如果是要复制所有文件,并包含文件夹下的内容使用如下命令:
\cp ./2013/* /data/www/myweb
3)另外一个有意思的方法:
#yes|cp a /test/a
2013年3月15日星期五
关于linux yum安装目录笔记
用yum安装apache软件:
yum -y install httpd
安装完成后,来查看理解yum安装软件的过程和安装路径。
首先理解YUM:基于RPM包管理,能够从指定的服务器下载RPM包并自动进行安装;并自动处理依赖关系,并一次性安装所有依赖的包
避免了手动安装的麻烦(寻找资源、下载;放到指定目录安装;处理依赖关系并下载依赖关系的包进行安装)
所以用yum安装,实质上是用RPM安装,所以RPM查询信息的指令都可用。
1.安装完apache后用RPM来查询所有安装有关的路径和文件:
[root@localhost www]# rpm -ql httpd --------------->查询所有安装httpd的目录和文件,列出很多文件目录,把所有目录分开进行讲解
(1). 配置文件放在 /etc下面 /etc/httpd ----------->配置文件根目录
/etc/httpd/conf
/etc/httpd/conf.d /etc/httpd/conf.d/README /etc/httpd/conf.d/proxy_ajp.conf
/etc/httpd/conf.d/welcome.conf /etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic /etc/httpd/logs /etc/httpd/modules/etc/httpd/run
/etc/logrotate.d/httpd
/etc/rc.d/init.d/httpd
/etc/sysconfig/httpd------------->把httpd 基本的配置信息(默认都是注释掉的)
(2). httpd所有的安装程序都安装在/usr目录中;根据不同的部分安装在不同的目录中。
(一). httpd 用的基本用户指令都放在/usr/bin中
/usr/bin/ab /usr/bin/htdbm /usr/bin/htdigest /usr/bin/htpasswd /usr/bin/logresolve
(二).httpd程序需要调用的模块、集成的函数库都放在 /usr/lib目录下
/usr/lib/httpd------------>httpd调用函数库、集成模块的根目录
/usr/lib/httpd/modules
/usr/lib/httpd/modules/mod_actions.so
/usr/lib/httpd/modules/mod_alias.so
...............................
/usr/lib/httpd/modules/mod_vhost_alias.so
(三). httpd所需要的系统命令都放在/usr/sbin/目录下面
/usr/sbin/apachectl /usr/sbin/htcacheclean /usr/sbin/httpd /usr/sbin/httpd.event
/usr/sbin/httpd.worker /usr/sbin/httxt2dbm /usr/sbin/rotatelogs /usr/sbin/suexec
(四). httpd所需要的一些共享文件都安装在/usr/share目录下面
/usr/share/doc/httpd-2.2.3 /usr/share/doc/httpd-2.2.3/ABOUT_APACHE
....................
/usr/share/man/man8/suexec.8.gz
(五). 程序在运行时要改变的数据都安装在/var目录下面,根据内容不同在安装在不同的目录下面
/var/cache/mod_proxy ------------>缓存
/var/lib/dav
/var/log/httpd ------------>日志
(六). apache作为web服务器需要一个发布网页的目录,/var/www就是一个放网页的目录。
--->httpd.conf中默认的目录 DocumentRoot=/var/www/html
/var/www ----------------->web服务器根目录
/var/www/cgi-bin
/var/www/error----------->web服务器的错误相关处理的文件
.............................
/var/www/error/noindex.html
/var/www/html --------------->web服务器静态网络的根目录
/var/www/icons --------------->web服务器调用默认(apache、tomcat)网页需要的图片
/var/www/icons/README
......................................
/var/www/icons/world2.png
2. 用 rpm -qa httpd 查询安装包中所有包含字符串httpdd 的安装包,然后利用此包可以卸载、更新、删除
[root@localhost www]# rpm -qa httpd
httpd-2.2.3-45.el5.centos.1
3. 用 rpm -q httpd 查询系统安装httpd程序的安装包的全名:
[root@localhost www]# rpm -q httpd
httpd-2.2.3-45.el5.centos.1
4. 在用find / -name httpd-2.2.3-45.el5.centos.1 找到安装包在根目录中的路径。
使用YUM安装MySQL 5.5(适用于CentOS6.2/5.8及Fedora 17/16平台)
目前CentOS/Red Hat (RHEL) 6.2官方自带的mysql版本为5.1,mysql5.5已经出来了。本文将指导你如何在CentOS/Red Hat (RHEL) 6.2下安装最新版本的社区版本mysql。如果您要升级mysql,请先备份好你的数据及配置文件再行升级。
让我们开始动手吧。
step1. 切换到root用户
su -
step2. 安装remi软件源---CentOS及Red Hat (RHEL)平台
## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
## CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
step3. 查看MySQL版本号
CentOS 6.2/6.1/6/5.8 and Red Hat (RHEL) 6.2/6.1/6/5.8
yum --enablerepo=remi,remi-test list mysql mysql-server
step4. 安装或升级到MySQL5.5.25
yum --enablerepo=remi,remi-test install mysql mysql-server
step5. 开启mysql服务并配置自启动
/etc/init.d/mysqld start
## OR ##
service mysqld start
chkconfig --levels 235 mysqld on
step6. MySQL 安全设置包括以下几个方面:
设置(修改)root密码
删除匿名用户
禁用root远程登录
删除测试数据库test
重载权限表
要启用MySQL 安全设置请输入以下命令
/usr/bin/mysql_secure_installation
【注】:如果您不想启动MySQL 安全设置命令,但至少也得修改一下root用户密码
mysqladmin -u root password [your_password_here]
step7. 使用密码连接本地数据库
mysql -u root -p
step8. 为指定数据库,指定用户配置指定客户端(IP)远程访问
本示例的配置参数如下:
DB_NAME = webdb
USER_NAME = webdb_user
REMOTE_IP = 10.0.15.25
PASSWORD = password123
PERMISSIONS = ALL
1. 创建数据库 webdb
mysql> CREATE DATABASE webdb;
2. 创建用户webdb_user
mysql> CREATE USER 'webdb_user'@'10.0.15.25' IDENTIFIED BY 'password123';
3. 授权
mysql> GRANT ALL ON webdb.* TO webdb_user@'10.0.15.25';
4. 重载权限表
mysql> FLUSH PRIVILEGES;
step9. 配置防火墙开启3306端口
1. 修改/etc/sysconfig/iptables 文件:
vi /etc/sysconfig/iptables
2. 在COMMIT之前加入以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3. 重启Iptables:
service iptables restart
## OR ##
/etc/init.d/iptables restart
4. 在客户机上测试远程访问数据库:
mysql -h dbserver_name_or_ip_address -u webdb_user -p webdb
********************************************
* 作者:叶文涛
* 链接:在CentOS/Red Hat (RHEL) 6.2/5.8及Fedora 17/16下的安装MySQL 5.5
* 源文:Install MySQL 5.5.25 on Fedora 17/16, CentOS/Red Hat (RHEL) 6.2/5.8
******************转载请注明来源 ***************
让我们开始动手吧。
step1. 切换到root用户
su -
step2. 安装remi软件源---CentOS及Red Hat (RHEL)平台
## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
## CentOS 6 and Red Hat (RHEL) 6 ##
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
step3. 查看MySQL版本号
CentOS 6.2/6.1/6/5.8 and Red Hat (RHEL) 6.2/6.1/6/5.8
yum --enablerepo=remi,remi-test list mysql mysql-server
step4. 安装或升级到MySQL5.5.25
yum --enablerepo=remi,remi-test install mysql mysql-server
step5. 开启mysql服务并配置自启动
/etc/init.d/mysqld start
## OR ##
service mysqld start
chkconfig --levels 235 mysqld on
step6. MySQL 安全设置包括以下几个方面:
设置(修改)root密码
删除匿名用户
禁用root远程登录
删除测试数据库test
重载权限表
要启用MySQL 安全设置请输入以下命令
/usr/bin/mysql_secure_installation
【注】:如果您不想启动MySQL 安全设置命令,但至少也得修改一下root用户密码
mysqladmin -u root password [your_password_here]
step7. 使用密码连接本地数据库
mysql -u root -p
step8. 为指定数据库,指定用户配置指定客户端(IP)远程访问
本示例的配置参数如下:
DB_NAME = webdb
USER_NAME = webdb_user
REMOTE_IP = 10.0.15.25
PASSWORD = password123
PERMISSIONS = ALL
1. 创建数据库 webdb
mysql> CREATE DATABASE webdb;
2. 创建用户webdb_user
mysql> CREATE USER 'webdb_user'@'10.0.15.25' IDENTIFIED BY 'password123';
3. 授权
mysql> GRANT ALL ON webdb.* TO webdb_user@'10.0.15.25';
4. 重载权限表
mysql> FLUSH PRIVILEGES;
step9. 配置防火墙开启3306端口
1. 修改/etc/sysconfig/iptables 文件:
vi /etc/sysconfig/iptables
2. 在COMMIT之前加入以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3. 重启Iptables:
service iptables restart
## OR ##
/etc/init.d/iptables restart
4. 在客户机上测试远程访问数据库:
mysql -h dbserver_name_or_ip_address -u webdb_user -p webdb
********************************************
* 作者:叶文涛
* 链接:在CentOS/Red Hat (RHEL) 6.2/5.8及Fedora 17/16下的安装MySQL 5.5
* 源文:Install MySQL 5.5.25 on Fedora 17/16, CentOS/Red Hat (RHEL) 6.2/5.8
******************转载请注明来源 ***************
RHEL/CentOS/Fedora各种源(EPEL、Remi、RPMForge、RPMFusion)配置
CentOS默认自带CentOS-Base.repo源,但官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定版。Fedora自带的源中也找不到很多多媒体软件,如果需要安装,必需先添加其他源,如RPMFusion和RPMForge等第三方软件库。
下面GoFace来一一介绍各种第三方软件库,以下软件库适用于与RHEL完全兼容的linux发行版,如CentOS,Fedora,Scientific Linux。Scientific Linux大家可能有点陌生,它与CentOS类似,是RedHat Linux的克隆版,GoFace之前有过介绍:http://blog.51osos.com/linux/scientific-linux/ 。
EPEL源
EPEL,即Extra Packages for Enterprise Linux,是由 Fedora 社区创建维护,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。EPEL中含有大量的软件,对官方标准源是一个很好的补充。
“EPEL (Extra Packages for Enterprise Linux ) is a Fedora Special Interest Group that creates, maintains, and manages a high quality set of additional packages for Enterprise Linux, including, but not limited to, Red Hat Enterprise Linux (RHEL), CentOS and Scientific Linux (SL).”
Fedora EPEL 下载:http://mirrors.fedoraproject.org/publiclist/EPEL/
请针对不同的版本下载相应的包。
Remi源
Remi源大家或许很少听说,不过Remi源GoFace强烈推荐,尤其对于不想编译最新版的linux使用者,因为Remi源中的软件几乎都是最新稳定版。或许您会怀疑稳定不?放心吧,这些都是Linux骨灰级的玩家编译好放进源里的,他们对于系统环境和软件编译参数的熟悉程度毋庸置疑。
Remi下载地址:http://rpms.famillecollet.com/
您也需要针对不同的版本号下载。
RPMForge源
RPMForge是CentOS系统下的软件仓库,拥有4000多种的软件包,被CentOS社区认为是最安全也是最稳定的一个软件仓库。
RPMForge官方网站:http://repoforge.org/
RPMForge下载地址:
RPMFusion源
如果您现在正在使用Fedora 15,对RPMFusion一定不陌生吧,各种音频软件如MPlayer在标准源中是没有的,一般先安装RPMFusion源,之后就可以放便地yum install各种需要的软件啦。
CentOS官方说RPMFusion软件库里面的软件稳定性不如rpmforge。
RPMFusion官网:http://rpmfusion.org/
Fedora 13, 14 and 15:
su -c ’yum localinstall –nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.
noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm’
RHEL 6/CentOS 6 :
su -c ’rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/6/i386/rpmfusion-free-release-6-0.1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/testing/6/i386/rpmfusion-nonfree-release-6-0.1.noarch.rpm’
如何使用各种源
以上源对CentOS等系统完全兼容,但各软件库之间并不能保证完全兼容没有冲突。如果您需要使用以上源,您需要安装yum-priorities插件。安装yum-priorities插件后,您可以给各个源设置优先级priority。一般设置官方标准源优先级为1,最高,第三方推荐>10
priority=N (N为1到99的正整数,数值越小越优先)
[base], [addons], [updates], [extras] … priority=1
[CentOSplus],[contrib] … priority=2
其他第三的软件源为:priority=N (推荐N>10)
[CentOSplus],[contrib] … priority=2
其他第三的软件源为:priority=N (推荐N>10)
#vi CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
priority=1
#released updates
……
#wget http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
#wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[root@GoGo yum.repos.d]# ls
CentOS-Base.repo CentOS-Media.repo epel-testing.repo
CentOS-Debuginfo.repo epel.repo remi.repo
vi remi.repo 将[remi] 中的 enabled=0 改成 enabled=1 来启用 remi 源
[root@GoGo yum.repos.d]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[root@GoGo yum.repos.d]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
在remi.repo中和epel.repo中添加priority设置即可使用。
本文结束,明天GoFace将给大家介绍使用第三方源配置服务器软件。
2013年3月14日星期四
CentOS 6.2编译安装Apache2.4.1+MySQL5.5.21+PHP5.4
操作系统:CentOS 6.2 32位
准备篇:一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器二、配置防火墙,开启80端口、22、21端口
三、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
四 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
五、下载软件包
1、下载apache
http://www.apache.org/dist/httpd/httpd-2.4.1.tar.gz
2、下载MySQL
http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.5/mysql-5.5.21.tar.gz
3、下载php 5.4
4、下载cmake(MySQL编译工具)
http://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz
5、下载libmcrypt(PHPlibmcrypt模块)
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
6、下载apr(Apache库文件)
http://mirror.bit.edu.cn/apache/apr/apr-1.4.6.tar.gz
7、下载apr-util(Apache库文件)
http://mirror.bit.edu.cn/apache/apr/apr-util-1.4.1.tar.gz
用WinSCP远程连接到服务器,把下载好的软件上传到服务器/usr/local/src下面
六、安装编译工具及库文件(使用CentOS yum命令安装)yum install make apr* autoconf automake gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch
安装篇
以下是用putty工具远程登录到服务器,在命令行下面操作的
1、安装libmcrypt
cd /usr/local/src
tar zxvf libmcrypt-2.5.7.tar.gz #解压
cd libmcrypt-2.5.7 #进入目录
./configure #配置
make #编译
make install #安装
2、安装cmake
cd /usr/local/src
tar zxvf cmake-2.8.7.tar.gz
cd cmake-2.8.7
./configure
make #编译
make install #安装
3、安装apr
cd /usr/local/src
tar zxvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make
make install
4、安装apr-util
tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make
make install
5、安装mysql
groupadd mysql #添加mysql组
useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限
mkdir -p /usr/local/mysql #创建MySQL安装目录
cd /usr/local/src
tar zxvf mysql-5.5.21.tar.gz #解压
cd mysql-5.5.21
回到cmake目录,删除cmakecache.txt文件
rm -f CMakeCache.txt
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc #配置
make #编译
make install #安装
cd /usr/local/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件(注意:/etc目录下面默认有一个my.cnf,直接覆盖即可)
vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加
datadir = /data/mysql #添加MySQL数据库路径
./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
vi /etc/rc.d/init.d/mysqld #编辑
basedir = /usr/local/mysql #MySQL程序安装路径
datadir = /data/mysql #MySQl数据库存放目录
service mysqld start #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
shutdown -r now #需要重启系统,等待系统重新启动之后继续在终端命令行下面操作
mysql_secure_installation #设置Mysql密码
根据提示按Y 回车输入2次密码
或者直接修改密码/usr/local/mysql/bin/mysqladmin -u root -p password "123456" #修改密码
service mysqld restart #重启
到此,mysql安装完成!
6、安装apache2cd /usr/local/src
tar -zvxf httpd-2.4.1.tar.gz
cd httpd-2.4.1
mkdir -p /usr/local/apache2 #创建安装目录
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl --enable-ssl --enable-module=so --enable-rewrite --enable-cgid --enable-cgi #配置
make #编译
make install #安装
/usr/local/apache2/bin/apachectl -k start #启动
vi /usr/local/apache2/conf/httpd.conf #编辑配置文件
找到:#ServerName www.example.com:80
修改为:ServerName www.osyunwei.com:80
找到:DirectoryIndex index.html
修改为:DirectoryIndex index.html index.php
找到:Options Indexes FollowSymLinks
修改为:Options FollowSymLinks #不显示目录结构
找到AllowOverride None
修改为:AllowOverride All #开启apache支持伪静态,有两处都做修改
LoadModule rewrite_module modules/mod_rewrite.so #取消前面的注释,开启apache支持伪静态
vi /etc/profile #添加apache服务系统环境变量
在最后添加下面这一行
export PATH=$PATH:/usr/local/apache2/bin
cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd #把apache加入到系统启动
vi /etc/init.d/httpd #编辑文件
在#!/bin/sh下面添加以下两行
#chkconfig:2345 10 90
#descrption:Activates/Deactivates Apache Web Server
chown daemon.daemon -R /usr/local/apache2/htdocs #更改目录所有者
chmod 700 /usr/local/apache2/htdocs -R #更改apache网站目录权限
chkconfig httpd on #设置开机启动
/etc/init.d/httpd start
service httpd restart
7、安装php
cd /usr/local/src
tar -zvxf php-5.3.10.tar.gz
cd php-5.3.10
mkdir -p /usr/local/php5 #建立php安装目录
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv --with-freetype --with-jpeg --with-png --with-zlib --with-libxml --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-force-cgi-redirect --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin --enable-session --with-mcrypt --with-jpeg #配置
make #编译
make install #安装
mkdir /usr/local/php5/etc
cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带的配置文件
ln -s /usr/local/php5/etc/php.ini /etc/php.ini #创建配置文件软链接
vi /usr/local/php5/etc/php.ini #编辑
找到:;open_basedir =
修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要!!
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,
ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,
disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,
posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid,
posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC
找到:expose_php = On
修改为:expose_php = OFF #禁止显示php版本的信息
找到:display_errors = On
修改为:display_errors = OFF #关闭错误提示
8、配置apache支持phpvi /usr/local/apache2/conf/httpd.conf #编辑apache配置文件
在LoadModule php5_module modules/libphp5.so这一行下面添加、
AddType application/x-httpd-php .php (注意:php .php这个点前面有一个空格)
service httpd restart #重启apache
service mysqld restart #重启mysql
测试篇cd /usr/local/apache2/htdocsvi index.php #输入下面内容
phpinfo();
?>
:wq! #保存
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
网站程序上传到/usr/local/apache2/htdocs目录里面,如果安装有问题,请检查目录权限
确保改目录为以下权限
chown daemon.daemon -R /usr/local/apache2/htdocs
chmod -R 700 /usr/local/apache2/htdocs
至此,CentOS 6.2编译安装Apache2.4.1+MySQL5.5.21+PHP5.4配置完成。
标签:
apache,
centos 6.2,
linux,
mysql,
php
订阅:
博文 (Atom)