在CentOS 5.6上编译安装Memcached

首先上一个memcached原理图,让不了解memcached的兄弟普及一下:

基本原理作如下简单描述:

① 客户端第一次访问应用程序时,会到数据库(RDBMS)中取出数据,返回给客户端;同时也将取出的数据保存到memcached中。

② 第二次访问时,因为数据已经缓存,不不用去数据库查询了,直接从memcached取。

那么memcached的快速和高效率是如何体现出来的呢?我们都清楚,RDBMS是文件型的数据库,最终还是以文件的形式保存在磁盘上。而memcached则不一样,它是key:value关系型的数据库,是保存在内存中的。那么就不用我再做说明了,内存的读写速度要比磁盘的读写速度快得多,前者是后者的10的6次方倍。

memcached是基于libevent的事件处理。libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。 memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。欲了解更更多关于libevent:http://monkey.org/~provos/libevent/

在CentOS 5.6上编译安装Memcached

1、由于memcached是基于libevent的,因此需要安装libevent,libevent-devel

  
  
  1. # yum install libevent libevent-devel -y

2、下载并解压memcached-1.4.5

memcached官方网站是:http://memcached.org/

  
  
  1. # cd /root
  2. # wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz
  3. # tar -xvzf memcached-1.4.5.tar.gz

3、编译安装memcached-1.4.5

  
  
  1. # cd memcached-1.4.5
  2. # ./configure --prefix=/etc/memcached
  3. # make
  4. # make install

4、配置环境变量

进入用户宿主目录,编辑.bash_profile,为系统环境变量LD_LIBRARY_PATH增加新的目录,需要增加的内容如下:

# vi .bash_profile

  
  
  1. MEMCACHED_HOME=/etc/memcached
  2. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MEMCACHED_HOME/lib

刷新用户环境变量:# source .bash_profile

5、编写memcached服务启停脚本

# cd /etc/init.d

vi memcached,脚本内容如下:

  
  
  1. #!/bin/sh
  2. #
  3. # Startup script for the server of memcached
  4. #
  5. # processname: memcached
  6. # pidfile: /etc/memcached/memcached.pid
  7. # logfile: /etc/memcached/memcached_log.txt
  8. # memcached_home: /etc/memcached
  9. # chkconfig: 35 21 79
  10. # description: Start and stop memcached Service
  11. # Source function library
  12. . /etc/rc.d/init.d/functions
  13. RETVAL=0
  14. prog="memcached"
  15. basedir=/etc/memcached
  16. cmd=${basedir}/bin/memcached
  17. pidfile="$basedir/${prog}.pid"
  18. #logfile="$basedir/memcached_log.txt"
  19. # 设置memcached启动参数
  20. ipaddr="192.168.1.201" # 绑定侦听的IP地址
  21. port="11211" # 服务端口
  22. username="root" # 运行程序的用户身份
  23. max_memory=64 # default: 64M | 最大使用内存
  24. max_simul_conn=1024 # default: 1024 | 最大同时连接数
  25. #maxcon=51200
  26. #growth_factor=1.3 # default: 1.25 | 块大小增长因子
  27. #thread_num=6 # default: 4
  28. #verbose="-vv" # 查看详细启动信息
  29. #bind_protocol=binary # ascii, binary, or auto (default)
  30. start() {
  31. echo -n $"Starting service: $prog"
  32. $cmd -d -m $max_memory -u $username -l $ipaddr -p $port -c $max_simul_conn -P $pidfile
  33. RETVAL=$?
  34. echo
  35. [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
  36. }
  37. stop() {
  38. echo -n $"Stopping service: $prog "
  39. run_user=`whoami`
  40. pidlist=`ps -ef | grep $run_user | grep memcached | grep -v grep | awk '{print($2)}'`
  41. for pid in $pidlist
  42. do
  43. # echo "pid=$pid"
  44. kill -9 $pid
  45. if [ $? -ne 0 ]; then
  46. return 1
  47. fi
  48. done
  49. RETVAL=$?
  50. echo
  51. [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
  52. }
  53. # See how we were called.
  54. case "$1" in
  55. start)
  56. start
  57. ;;
  58. stop)
  59. stop
  60. ;;
  61. #reload)
  62. # reload
  63. # ;;
  64. restart)
  65. stop
  66. start
  67. ;;
  68. #condrestart)
  69. # if [ -f /var/lock/subsys/$prog ]; then
  70. # stop
  71. # start
  72. # fi
  73. # ;;
  74. status)
  75. status memcached
  76. ;;
  77. *)
  78. echo "Usage: $0 {start|stop|restart|status}"
  79. exit 1
  80. esac
  81. exit $RETVAL

设置脚本可被执行:# chmod +x memcached

6、设置memcached随系统启动

  
  
  1. # chkconfig --add memcached
  2. # chkconfig --level 35 memcached on
启动memcached
  
  
  1. # service memcached start
  2. //启动的时候实际上是调用了下面的这个命令,以守护进程的方式来启动memcached
  3. /etc/memcached/bin/memcached -d -m 64 -u root -l 192.168.1.201
  4. /-p 11211 -c 1024 -P /etc/memcached/memcached.pid

查看memcached是否启动:

# ps -ef | grep memcached

memcached命令参数解释
参数参数解释及说明
-p <num>监听的端口
-l <ip_addr>连接的IP地址,,默认是本机。-l选项可以不使用,此时表示在所有网络接口地址上监听。建议是-l <ip_addr>指定一个内部网络IP地址,以避免成为外部网络攻击的对象
-d start启动memcached 服务
-d restart重起memcached 服务
-d stop|shutdown关闭正在运行的memcached 服务
-d install安装memcached 服务
-d uninstall卸载memcached 服务
-u <username>以<username>的身份运行 (仅在以root运行的时候有效)
-m <num>最大内存使用,单位MB。默认64MB
-M内存耗尽时返回错误,而不是删除项
-c <num>最大同时连接数,默认是1024
-f <factor>块大小增长因子,默认是1.25
-n <bytes>最小分配空间,key+value+flags默认是48
-h显示帮助
<think>好的,用户之前问了关于网站部署的步骤,现在他们想了解宝塔面板在其中的作用以及如何安装宝塔面板到已经部署好的网站上。我需要先回顾之前的回答,确保这次回答的连贯性。 首先,用户可能已经按照之前的步骤手动部署了网站,现在想简化管理,所以对宝塔面板感兴趣。宝塔面板的主要作用是简化服务器管理,提供图形界面,适合那些不熟悉命令行操作的用户。 接下来,用户的问题分为两部分:宝塔的作用和安装方法。需要详细说明宝塔的功能,比如Web服务器配置、数据库管理、文件操作等。然后,安装步骤要具体,给出具体的命令和注意事项,比如兼容性、安全设置等。 还要考虑用户可能的实际需求,例如他们可能已经有一个运行中的网站,安装宝塔后如何迁移或管理现有服务。需要提到备份数据、检查端口冲突,以及可能需要的配置调整。 另外,用户可能担心安装宝塔后的安全性,所以需要强调安全措施,比如修改默认端口、设置强密码、配置防火墙等。同时,提供常见问题的解决方法,比如无法访问面板的情况,帮助他们排查问题。 最后,确保语言简洁明了,步骤清晰,适合不同技术水平的用户理解。可能需要用代码块展示安装命令,以及配置示例,比如Nginx的反向代理设置,这样用户可以直接复制使用。 总结下来,回答需要结构清晰,先介绍作用,再分步骤讲解安装和使用,最后给出注意事项和常见问题解决,确保用户能够顺利安装并利用宝塔面板管理他们的网站。</think>--- ### 宝塔面板在网站部署中的作用 **宝塔面板(BT-Panel)** 是一款基于Web的服务器管理工具,通过图形化界面简化服务器配置、网站部署及运维操作。以下是其核心功能: 1. **一键部署环境** - 自动安装Nginx/Apache、MySQL/MariaDB、PHP、Node.js等运行环境,无需手动编译。 - 支持多版本共存(如PHP 5.6/7.4/8.1),灵活切换。 2. **网站管理** - 快速添加网站,绑定域名,配置SSL证书(支持Let's Encrypt自动申请)。 - 管理网站文件(在线文件管理器/FTP账户),设置伪静态规则。 3. **数据库管理** - 创建/删除数据库,管理用户权限,支持phpMyAdmin在线操作。 4. **安全与监控** - 防火墙配置(端口/IP黑白名单),SSH登录监控。 - 实时查看服务器资源(CPU/内存/磁盘)使用情况。 5. **插件扩展** - 支持Redis/Memcached、Docker、计划任务(Crontab)等扩展功能。 --- ### 如何安装宝塔面板到已部署的服务器 #### 前提条件 - **服务器环境**:全新或已有网站的Linux服务器(推荐CentOS 7+/Ubuntu 18.04+)。 - **注意事项**: - 若已有网站,**先备份数据**(避免安装冲突)。 - 确保服务器开放**8888端口**(宝塔默认端口)和**20/21/80/443**等常用端口。 --- #### 安装宝塔面板(以CentOS为例) 1. **通过SSH登录服务器** ```bash ssh root@服务器IP ``` 2. **执行安装脚本** ```bash # CentOS/RedHat yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh # Ubuntu/Debian wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ``` 3. **等待安装完成** - 安装过程约需1-5分钟,完成后会显示面板地址、用户名和密码。 ``` ================================================================== Bt-Panel: http://服务器IP:8888/xxxxxx username: xxxxxx password: xxxxxx ================================================================== ``` 4. **登录面板** - 浏览器访问 `http://服务器IP:8888/随机安全入口`,输入用户名和密码。 --- #### 配置宝塔面板管理已有网站 1. **添加已有网站** - 进入面板 → 网站 → 添加站点: - 域名:填写已绑定的域名(如`example.com`)。 - 根目录:指定网站文件路径(如`/var/www/example`)。 - 选择PHP版本(或Node.js/Python环境)。 2. **配置Web服务器** - 若原使用Nginx/Apache,宝塔会自动接管配置: - 检查`/www/server/nginx/conf/vhost/example.com.conf`,确认反向代理或静态规则正确。 - 重启服务:面板 → 软件商店 → Nginx/Apache → 重启。 3. **迁移数据库** - 若已有MySQL数据库: - 通过面板导入备份文件(SQL脚本)。 - 修改网站配置文件中的数据库连接信息(用户名、密码、库名)。 --- ### 关键注意事项 1. **端口冲突处理** - 若原网站占用了`80/443`端口,需先停止原有服务(如手动运行的Node.js进程)。 - 使用命令查找占用端口的进程: ```bash netstat -tunlp | grep :80 ``` 2. **安全加固** - **修改默认端口**:面板 → 面板设置 → 修改面板端口(如`8888`改为`5555`)。 - **设置访问限制**:仅允许特定IP访问面板(面板设置 → 安全入口/IP白名单)。 - **定期更新面板**:面板首页提示更新时及时操作。 3. **兼容性问题** - 若服务器已安装其他环境(如手动编译的Nginx),建议**备份后卸载**,改用宝塔统一管理。 --- ### 常见问题解决 - **无法访问面板**: - 检查服务器防火墙是否开放8888端口: ```bash # CentOS 7+ firewall-cmd --zone=public --add-port=8888/tcp --permanent firewall-cmd --reload ``` - 云服务器需在控制台(如阿里云安全组)放行端口。 - **网站显示502错误**: - 检查后端服务是否运行(如PHP-FPM或Node.js进程)。 - 查看Nginx错误日志:面板 → 网站 → 对应站点 → 日志。 --- ### 总结 通过宝塔面板,即使非专业运维人员也能高效管理服务器和网站,减少命令行操作的复杂度。安装后,可通过图形界面快速完成环境配置、SSL证书部署、备份等操作,尤其适合个人开发者或中小型项目。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值