柴少鹏的官方网站 技术在分享中进步,水平在学习中升华

Centos 6.4 搭建lamp环境(系列1)

大部分软件我们都是编译安装的,编译安装的是可以自行调整编译参数,自己可以调整需要的结果,也比较安全。

网上yum安装的博客比较多,编译安装的也不少,废话不多说。

环境版本:

系统环境:Centos 6.4 64位

apache版本:apache 2.29

php版本:php 5.3.27

mysql版本:5.1.72

一、mysql编译安装:

扯两句,mysql服务器我们一般是单独的一台服务器,如果是集群环境这里就简单安装一下就行,如果是单机提供lamp服务的话,就连库都生成吧。

mkdir /tools
cd /tools/

yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* mysql-devel  #yum这些库后面安装就不会报莫名的错误说缺这缺那了

wget downloads.mysql.com/archives/get/file/mysql-5.1.72.tar.gz #官网下载地址,软件包尽量官网下载,不容易下载带木马的软件包到服务器

useradd mysql -s /sbin/nologin  -M  #创建mysql用户

tar zxf mysql-5.1.72.tar.gz
cd mysql-5.1.72

./configure –prefix=/application/mysql5.1.72 \

–with-unix-socket-path=/tmp/mysql.sock \

–localstatedir=/mysqldata –enable-assembler \

–enable-thread-safe-client \

–with-mysqld-user=mysql \

–with-big-tables –without-debug –with-pthread \

–with-extra-charsets=complex –with-readline \

–with-ssl –with-embedded-server \

–enable-local-infile –with-plugins=partition,innobase \

–with-mysqld-ldflags=-all-static \

–with-client-ldflags=-all-static

make && make install

#–prefix=/application/mysql5.1.72 指定软件位置,一般我们都是带软件版本创建目录方便管理

#–with-unix-socket-path=/tmp/mysql.sock 指定sock套接字的位置,就安装到/tmp下面就好,好多软件都是默认是/tmp下面是找mysql.sock,你变了位置到时候还要创建软连接

#–localstatedir=/mysqldata  指定数据库所在的目录,一般是指定到我们的一个比较大的挂载分区

#–enable-assembler  使用汇编模式,可以提高性能

#–enable-thread-safe-client  使用编译客户端(让客户端支持线程的意思)

#–with-mysqld-user=mysql  指定mysqld守护进程的用户

#–with-big-tables   启用32位平台对4G大表的支持

#–without-debug   编译为产品版,放弃debugging代码

#–with-pthread  强制使用pthread类库

#–with-extra-charsets=complex 安装所有的扩展字符集,这句话很有用的,我们安装mysql一般会指定字符集是utf8之类的,等后面有些字符数据库不支持你还要重新编译,这样就避免那种情况了。

#–with-readline 使用行编辑库

#–with-ssl 启用SSL的支持

#–with-embedded-server 编译embedded-server,构建嵌入式MySQL库

#–enable-local-infile 允许从本地导入数据

#–with-plugins=partition,innobase MySQL服务器端支持的存储引擎组件(默认为空)

#–with-mysqld-ldflags=-all-static 静态编译MySQL服务器端(静态链接提高13%性能

#–with-client-ldflags=-all-static 静态编译MySQL客户端(静态链接提高13%性能

注意:根据自己的实际需求来选择编译参数。

ln -s /application/mysql5.1.72  /application/mysql  #做个软连接方便管理

cp support-files/my-small.cnf /etc/my.cnf #mysql的配置文件

cp support-files/mysql.server /etc/init.d/mysqld  #mysql的启动文件

chmod 755 /etc/init.d/mysqld
chown mysql:root /etc/my.cnf

mkdir /mysqldata  #创建数据库文件
chown mysql:root /mysqldata  #给数据库目录授权不然容易报错

/application/mysql/bin/mysql_install_db  –defaults-file=/etc/my.cnf –basedir=/application/mysql5.1.72/ –datadir=/mysqldata –user=mysql #初始化数据库,提示信息出现两个OK为成功

vi /etc/my.cnf #更改配置文件,先简单修改几个地方

[client]

default-character-set=utf8  #前面编译没有指定默认字符集这里设置一下,连接以utf8字符集连接

[mysqld]

default-character-set=utf8  #数据库默认的字符集是utf8,不然是latin1
datadir=/mysqldata   #这里不指定一下数据库的位置的话会报错

[mysql]
default-character-set=utf8  #客户端也是默认utf8字符集

vi /etc/profile  #修改环境变量

PATH=$PATH:/application/mysql/bin   #加载mysql的环境变量
export PATH

. /etc/profile  #使生效

至此mysql的编译和配置文件修改完毕。

/etc/init.d/mysqld start  #启动mysql
Starting MySQL. SUCCESS!  #这提示启动成功

/application/mysql/bin/mysqladmin  password 123456  #mysql默认是空密码,这里设置新密码为123456,生产环境mysql的密码要设置的尽量复杂

下面是看下结果,我们mysql登录啊版本啊,默认字符集啊:

lnmo1.png

二、apache的编译安装

cd /tools/
wget wget apache.fayea.com//httpd/httpd-2.2.29.tar.gz

tar zxf httpd-2.2.29.tar.gz
cd httpd-2.2.29

./configure –prefix=/application/apache2.2.29 –enable-deflate –enable-expires  –enable-headers –enable-modules=most –enable-ssl –enable-so –with-mpm=worker –enable-rewrite

#–prefix=/application/apache2.2.29 指定安装目录

#–enable-deflate 支持网页压缩

#–enable-expires   支持网页缓存

#–enable-headers  提供允许对HTTP请求头的控制

#–enable-modules=most  支持大多数模块

#–enable-ssl  基于ssl加密传输

#–enable-so 启用动态模块加载

#–with-mpm=worker  让apache以worker(线程级)方式运行,2.2默认是prefork(进程式)工作模式

#–enable-rewrite  允许URL重写

插一嘴,这样安装大部分模块都是静态加载。因为有–enable-modules=most这句话,它加载了大部分的模块。如果用–enable-mods-shared=all换掉就是动态加载。动态加载就是需要这个模块的时候apache会去调用,不是预启动的形式,而且还要去apache配置文件里面制定加载哪个模块。如果只想指定某些模块为静态加载,就要指定模块后面加=static,静态加载呢就是这些模块就已经预启动了等待你apache的指示,没有什么准备时间,你命令一到我就执行,响应很快但是有点耗资源。

make && make install

ln -s /application/apache2.2.29 /application/apache

下面两张图,第一张图是动态加载的效果,第二章图是静态加载的效果

三、编译安装php

cd /tools/
yum install -y zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-dev freetype-devel libpng-devel gd-devel curl-devel libxslt-devel libxml2 libxml2-devel

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar zxf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure  –prefix=/usr/local/libiconv

make && make install

cd /tools

wget cn2.php.net/get/php-5.3.27.tar.gz/from/this/mirror

tar zxf php-5.3.27.tar.gz

cd php-5.3.27

./configure \

–prefix=/application/php5.3.27 \

–with-apxs2=/application/apache/bin/apxs \

–with-mysql=/application/mysql \

–with-ttf \

–with-xmlrpc \

–with-openssl \

–with-zlib \

–with-freetype-dir \

–with-gd \

–with-jpeg-dir \

–with-png-dir \

–with-iconv=/usr/local/libiconv \

–enable-short-tags \

–enable-sockets \

–enable-zend-multibyte \

–enable-soap \

–enable-mbstring \

–enable-static \

–enable-gd-native-ttf \

–with-curl \

–enable-memcache \

–with-xsl \

–enable-ftp \

–with-libxml-dir

make&&make install

ln -s /application/php5.3.27 /application/php

cp php.ini-production  /application/php5.3.27/lib/php.ini

#–prefix=/application/php5.3.27 指定php的安装位置

#–with-apxs2=/application/apache/bin/apxs 整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块,这样apche就能加载php了

#–with-mysql=/application/mysql 指定mysql安装目录,对mysql的支持

#–with-ttf 打开freetype1.*的支持

#–with-xmlrpc 打开xml-rpc的c语言

#–with-openssl openssl的支持,加密传输https时用到的

#–with-zlib  打开对zip的支持

#–with-freetype-dir  打开对freetype字体库的支持

#–with-gd 打开gd库的支持

#–with-jpeg-dir 打开对jpeg图片的支持

#–with-png-dir 打开对png图片的支持

#–with-iconv=/usr/local/libiconv 选项指令 –with-iconv-dir 用于 PHP 编译时指定 iconv 在系统里的路径,否则会扫描默认路径

#–enable-short-tags 让php支持短标签

#–enable-sockets  打开 sockets 支持

#–enable-zend-multibyte  支持zend的多字节

#–enable-soap  soap扩展主要用来处理RPC形式的Web services

#–enable-mbstring 多字节,字符串的支持

#–enable-static  生成静态链接库

#–enable-gd-native-ttf 支持TrueType字符串函数库

#–with-curl 打开curl浏览工具的支持

#–enable-memcache 为PHP扩展安装memcache模块

#–with-xsl  打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件

#–enable-ftp 打开ftp的支持

#–with-libxml-dir 打开libxml2库的支持

四、修改apache配置文件使之能够加载php文件

vi /application/apache/conf/httpd.conf +100

serverName 192.168.1.204:80 #这里应该是域名的但是指定域名咱们还要指定本地hosts文件,麻烦,这里就指定了你自己的本地IP加80端口了

vi /application/apache/conf/httpd.conf +311

AddType application/x-httpd-php .php .phtml  #加上这两句话

AddType application/x-httpd-php-source .phps

vi /application/apache/conf/httpd.conf +168

DirectoryIndex index.php index.html #index.php是后加的,是默认先优先调用index.php文件

/application/apache/bin/apachectl start #启动apache
lsof -i :80  #查看端口是否启动
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   5866   root    4u  IPv6 387783      0t0  TCP *:http (LISTEN)
httpd   5869 daemon    4u  IPv6 387783      0t0  TCP *:http (LISTEN)
httpd   5870 daemon    4u  IPv6 387783      0t0  TCP *:http (LISTEN)
httpd   5871 daemon    4u  IPv6 387783      0t0  TCP *:http (LISTEN)

vi /application/apache/htdocs/index.php #编写一个调用php的测试脚本
<?php
phpinfo();

vi /application/apache2.2.29/htdocs/testmysql.php #编写一个调用mysql的测试脚本
<?php
$link=MySQL_connect(‘localhost’,’root’,’123456′);
if(!$link) echo “Error !”;
else echo “Ok!”;
MySQL_close();

下面我们用两幅截图来查看一下效果:

lnmp4.png

haha.png

至此我们简单的一个lamp环境搭建完毕,接下来系列2是围绕优化方面写!

作者:忙碌的柴少 分类:Web环境搭建 浏览:2094 评论:0
留言列表
发表评论
来宾的头像