码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-29 07:27:57      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:centos 6.4 搭建lamp环境

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

原创博文来自:www.51niux.com  博主:忙碌的柴少

网上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登录啊版本啊,默认字符集啊:


二、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();

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



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

原创博文来自:www.51niux.com  博主:忙碌的柴少


本文出自 “技术在分享中进步” 博客,谢绝转载!

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

标签:centos 6.4 搭建lamp环境

原文地址:http://chaishao.blog.51cto.com/8578438/1639905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!