CentOS6.x搭建高性能Web服务LAMP+Memcached

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

一、安装组件和依赖包

1
2
3
4
5
6
7
8
9
10
11
yum  install  –y gcc gcc-c++  make  cmake ncurses-devel libxml2-devel perl-devel libcurl-devel libgcrypt libgcrypt-devel libxslt libxslt-devel pcre-devel openssl-devel
1.安装apr
tar  zxvf apr-1.4.6. tar .gz
cd  apr-1.4.6
. /configure  --prefix= /usr/local/apr
make  &&  make  install
2.安装apr-utils
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
make  &&  make  install

二、安装httpd

1
2
3
4
5
6
7
8
9
tar  zxvf httpd-2.4.3. tar .gz
cd  httpd-2.4.3
. /configure  -prefix= /usr/local/apache  - enable -so - enable -rewrite - enable -modules=all --with-apr= /usr/local/apr  --with-apr-util= /usr/local/apr-util
make  &&  make  install
/usr/local/apache/bin/apachectl  start
cp  /usr/local/apache/bin/apachectl  /etc/init .d /httpd
chmod  +x  /etc/init .d /httpd
service httpd start
echo  "/usr/local/apache/bin/apachectl start"  >>  /etc/rc . local   #开机启动

http://127 .0.0.1访问测试,会显示it works页面!

提示:apr、apr-util还有依赖包一定要安装好,要不然会各种报错!

二、安装mysql

下载:http://dev.mysql.com/downloads/mysql/5.5.html

1、创建组和用户

1
2
groupadd mysql
useradd  -g mysql -s  /sbin/nologin  mysql

2、安装mysql 

1
2
3
4
5
tar  zxvf mysql-5.5.34. tar .gz
cd  mysql-5.5.34
cmake -DCMAKE_INSTALL_PREFIX= /usr/local/mysql  \
-DSYSCONFDIR= /usr/local/mysql/etc  -DMYSQL_DATADIR= /usr/local/mysql/data
make  &&  make  install

3、初始化并配置 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/usr/local/mysql/scripts/mysql_install_db  --basedir= /usr/local/mysql/  --datadir= /usr/local/mysql/data/  --user=mysql  #初始化数据库
mkdir  /usr/local/mysql/etc
cp  support-files /my-medium .cnf  /usr/local/mysql/etc/my .cnf
cp  support-files /mysql .server  /etc/init .d /mysqld
chmod  +x  /etc/init .d /mysqld
echo  "PATH=$PATH:/usr/local/mysql/bin"  >>  /etc/profile  #添加执行命令环境变量
source  /etc/profile  #生效环境变量
chown  -R root.mysql  /usr/local/mysql/
chown  -R mysql:mysql mysql /data/  #赋予数据存放目录权限
mysqld_safe --user=mysql&  #启动mysql
rm  -rf  /etc/my .cnf    #***mysql以前的配置文件,否则有时会起不来
service mysqld start
mysqladmin -u root password  '123456' #设置root登录密码
chkconfig mysqld on

三、安装php

1、yum安装gd库

1
yum  install  –y gd freetype freetype-devel libpng libpng-devel zlib zlib-devel libjpeg*

补充:编译安装gd库(需要安装php时候指定gd、zlib、jpeg、png和freetype安装目录)

1>.安装zlib

1
2
3
4
tar  zxvf zlib-1.2.5.1. tar .gz
cd  zlib-1.2.5.1
. /configure  –prefix= /usr/local/gd/zlib
make  &&  make  install

2>.安装jpeg

1
2
3
4
5
6
7
8
mkdir -P  /usr/local/gd/jpeg/include
mkdir -P  /usr/local/gd/jpeg/lib
mkdir -P  /usr/local/gd/jpeg/bin
mkdir -P  /usr/local/gd/jpeg/man/man1
tarzxvf jpegsrc.v6b. tar .gz
cd  jpegsrc.v6b
. /configure  –prefix= /usr/local/gd/jpeg
make  &&  make  install

编译中可能报错:make: ./libtool:命令未找到 make: *** [cjpeg.lo] 错误 127

解决:

cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .

3>.安装libpng

1
2
3
4
tar  zxvf libpng-1.5.6. tar .gz
cd  libpng-1.5.6
. /configure  –prefix= /usr/local/gd/libpng
make  &&  make  install

编译中可能报错:configure: error: zlib not installed

进入zlib-1.2.6的源文件目录,执行命令 make clean,清除zlib

重新配置 ./configure,后面不要加–prefix参数;

再make && make install

4>.安装freetype

1
2
3
4
tar  zxvf freetype-2.4.6. tar .gz
cdfreetype-2.4.6
. /configure  –prefix= /usr/local/gd/freetype
make  &&  make  install

5>.安装gd

1
2
3
4
5
6
tar  zxvf gd-2.0.33. tar .gz
cd  gd-2.0.33
. /configure  –prefix= /usr/local/gd/gd2  –with-zlib= /usr/local/gd/zlib
–with-jpeg= /usr/local/gd/jpeg  –with-png= /usr/local/gd/libpng
–with-freetype= /usr/local/gd/freetype
make  &&  make  install

编译中可能报错:gd_png.c:92: error: expected ‘)’ before ‘png_ptr’

解决:vi gd_png.c

将#include “png.h” 替换成:#include “/usr/local/gd/libpng/include/png.h”

安装成功后,/usr/local/gd/gd2/include生成gd.h和libgd.a的文件

安装加密算法扩展库libmcrypt

下载:ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt

1
2
3
4
5
6
7
8
9
tar  zxvf libmcrypt-2.5.3. tar .gz
cd  libmcrypt-2.5.3
. /configure  --prefix= /usr/local/libmcrypt
make  &&  make  install
ldconfig - v
cd  libltdl
. /configure  --with-gmetad -- enable -gexec -- enable -ltdl- install
make  &&  make  install
ln  -sv  /usr/local/lib/libmcrypt /usr/lib   #链接到默认搜索库目录

2、安装php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
tar  zxvf php-5.4.4. tar .gz
cd  php-5.4.4
. /configure  -prefix= /usr/local/php  \
--with-config- file -path= /usr/local/php/etc  \
--with-apxs2= /usr/local/apache/bin/apxs  \
--with-mysql= /usr/local/mysql  \
--with-mysqli= /usr/local/mysql/bin/mysql_config  \
-- enable -soap -- enable -bcmath -- enable -zip -- enable - ftp  \
-- enable -mbstring --with-gd --with-libxml- dir  --with-jpeg- dir  \
--with-png- dir  --with-freetype- dir  --with-zlib \
--with-curl --with-xsl --with-openssl
make  &&  make  install
cp  php.ini-production  /usr/local/php/etc/php .ini
vi  /usr/local/php/etc/php .ini
date .timezone = Asia /Shanghai  #设置时区
expose_php = OFF  #禁止显示版本信息

注:如果mysql是rpm安装的则--with-mysql即可!

参考基本完整的php配置:

204147299.jpg

./configure报错:./configure: /usr/local/apache/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: No such file or directory

解决:vi /usr/local/apache/bin/apxs把第一行改为#!/usr/bin/perl -w即可!

3、添加apache支持php

1
2
3
4
5
6
7
vi  /usr/local/apache/conf/httpd .conf
ServerName 本地ip:80
#在AddType application/x-gzip .gz .tgz下面添加php页面支持
AddType application /x-httpd-php  .php
AddType application /x-httpd-php-source  .phps
LoadModule php5_module modules /libphp5 .so  #编译php时候加--with-apxs2参数才会自动生成
DirectoryIndex index.html index.php   #找到这一行,添加index.php索引页

4、测试

1
2
3
4
5
6
chown  apache.apache  /usr/local/apache/htdocs  -R  #设置目录所有者
chmod  774  /usr/local/apache/htdocs  -R  #设置目录权限
service httpd restart
service mysqld restart
vi  index.php
<?php phpinfo();?>

输入:http://127.0.0.1 #可以看到相关的配置信息!

四、安装memcached

Memcache缓存数据库:减少数据库压力。高性能的分布式内存缓存服务器,用于动态Web应用,减少I/O,提高web访问速度以减轻数据库负载,以提高动态Web应用的速度、提高可扩展性。利用 Memcached 处理实时数据读写;MySQL是影响性能的最大瓶颈,可以用一台MySQL主库(只写)+多台MySQL辅库(只读)的主辅库集群来解决。另外,访问计数等实时性很强的东西用Memcache做缓存。基于c#语言写的调用libevent库事件来实现。

http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz

http://pecl.php.net/get/memcache-3.0.6.tgz

1、安装libevent

1
yum  install  -y libevent libevent-devel

2、安装memcached

1
2
3
4
tar  zxvf memcached-1.4.15. tar .gz
cd  memcached-1.4.15
. /configure
make  &&  make  install

3、安装Memcache客户端PHP扩展

1
2
3
4
5
tar  vxzf memcache-3.0.6.tgz
cd  memcache-3.0.6
/usr/local/php/bin/phpize
. /configure  –with-php-config= /usr/local/php/bin/php-config
make  &&  make  install

4、在php.ini添加memcache模块

1
2
vi  /etc/php .ini
extension=memcache.so

5、启动memcached服务端

1
2
/usr/local/bin/memcached  -d -m 128 -l 192.168.0.10 -p 11211
killall -9 memcached   #关闭memcached

-d:选项是启动一个守护进程,
-m:是分配给Memcache使用的内存数量,单位是MB
-u:是运行Memcache的用户
-l:是监听的服务器IP地址
-p:是设置Memcache监听的端口,最好是1024以上的端口
-c:选项是最大运行的并发连接数,默认是1024,根据你服务器的负载量来设定
-P:是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid

客户端测试

telnet 192.168.0.202 11211

或phpinfo查看是否被加载模块

常用命令:status、version、flush_all、quit、get、add、set等



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1290432,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
JSON 定位技术 数据格式
web GIS神器,一行命令快捷构建精灵图服务
web GIS神器,一行命令快捷构建精灵图服务
|
12天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
24 0
|
12天前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
37 0
|
12天前
|
Java 网络架构 数据格式
Struts 2 携手 RESTful:颠覆传统,重塑Web服务新纪元的史诗级组合!
【8月更文挑战第31天】《Struts 2 与 RESTful 设计:构建现代 Web 服务》介绍如何结合 Struts 2 框架与 RESTful 设计理念,构建高效、可扩展的 Web 服务。Struts 2 的 REST 插件提供简洁的 API 和约定,使开发者能快速创建符合 REST 规范的服务接口。通过在 `struts.xml` 中配置 `&lt;rest&gt;` 命名空间并使用注解如 `@Action`、`@GET` 等,可轻松定义服务路径及 HTTP 方法。
28 0
|
12天前
|
前端开发 API 开发者
JSF与RESTful服务的完美邂逅:如何打造符合现代Web潮流的数据交互新体验
【8月更文挑战第31天】随着互联网技术的发展,RESTful架构风格因其实现简便与无状态特性而在Web服务构建中日益流行。本文探讨如何结合JavaServer Faces (JSF) 和 JAX-RS 构建RESTful API,展示从前端到后端分离的完整解决方案。通过定义资源类、配置 `web.xml` 文件以及使用依赖注入等步骤,演示了在JSF项目中实现RESTful服务的具体过程,为Java开发者提供了实用指南。
24 0
|
13天前
|
JSON API 数据库
探索FastAPI:不仅仅是一个Python Web框架,更是助力开发者高效构建现代化RESTful API服务的神器——从环境搭建到CRUD应用实战全面解析
【8月更文挑战第31天】FastAPI 是一个基于 Python 3.6+ 类型提示标准的现代 Web 框架,以其高性能、易用性和现代化设计而备受青睐。本文通过示例介绍了 FastAPI 的优势及其在构建高效 Web 应用中的强大功能。首先,通过安装 FastAPI 和 Uvicorn 并创建简单的“Hello, World!”应用入门;接着展示了如何处理路径参数和查询参数,并利用类型提示进行数据验证和转换。
30 0
|
15天前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
16 0
|
15天前
|
监控 Java API
Spring Boot中的异步革命:构建高性能的现代Web应用
【8月更文挑战第29天】Spring Boot 是一个简化 Spring 应用开发与部署的框架。异步任务处理通过后台线程执行耗时操作,提升用户体验和系统并发能力。要在 Spring Boot 中启用异步任务,需在配置类上添加 `@EnableAsync` 注解,并定义一个自定义的 `ThreadPoolTaskExecutor` 或使用默认线程池。通过 `@Async` 注解的方法将在异步线程中执行。异步任务适用于发送电子邮件、数据处理、外部 API 调用和定时任务等场景。最佳实践中应注意正确配置线程池、处理返回值和异常、以及监控任务状态,确保系统的稳定性和健壮性。
28 0
|
12天前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
28 1
|
9天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践