阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP 全功能编译安装 for CentOS 6.3笔记

136次阅读
没有评论

共计 17741 个字符,预计需要花费 45 分钟才能阅读完成。

最近抽空在虚拟机上测试成功了 LAMP 各个最新版本的整合编译安装, 算是把之前的博文整合精简, 以下内容均在 CentOS6.3(安装 minimal desktop 和默认开发包)下测试安装成功, 并做了相应优化配置, 如有遗漏, 还请留言指教.

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

Linux 操作系统:centOS6.3 64bit(安装了系统默认开发包)

APACHE:httpd-2.4.4

MYSQL:mysql-5.6.10

PHP:php-5.4.13

注:推荐安装 centos6.3 系统时,在系统安装向导中将默认开发包勾上,避免后期编译报错。

一. 安装开发包(使用默认 CENTOS 更新源):

# yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*

二. 关闭 iptables 和 SELINUX

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

—————

SELINUX=disabled

—————

三. 安装 mysql 数据库

1. 下载编译包:

# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/

2. 安装前的初始配置工作:

# useradd -d /usr/local/mysql/ mysql #创建一个 Mysql 用户,指定家目录到 /use/local 目录下。

# mkdir /usr/local/mysql/data

# mkdir /usr/local/mysql/log #新建 mysql 下 data 和 log 子目录

# chown -R mysql:mysql /usr/local/mysql/data/

# chown -R mysql:mysql /usr/local/mysql/log/

# chmod 750 /usr/local/mysql/data

# chmod 750 /usr/local/mysql/log #修改目录的所属者以及所属组

3. 解包编译安装

# tar -zxv -f mysql-5.6.13.tar.gz

# cd mysql-5.6.13

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=gbk \

-DDEFAULT_COLLATION=gbk_chinese_ci \

-DEXTRA_CHARSETS=all \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DSYSCONFDIR=/etc \

-DWITH_SSL=yes

# make & make install

编译注解:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #Unix socket 文件路径, 自定义此路径防报错

-DDEFAULT_CHARSET=gbk \ #默认字符

-DDEFAULT_COLLATION=gbk_chinese_ci \ #校验字符

-DEXTRA_CHARSETS=all \ #安装所有扩展字符集

-DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装 myisam 存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装 innodb 存储引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装 archive 存储引擎

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装 blackhole 存储引擎

-DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装 memory 存储引擎

-DWITH_FEDERATED_STORAGE_ENGINE=1 \ #安装 frderated 存储引擎

-DWITH_READLINE=1 \ #快捷键功能

-DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据

-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据库存放目录

-DMYSQL_USER=mysql \ #数据库属主

-DMYSQL_TCP_PORT=3306 \ #数据库端口

-DSYSCONFDIR=/etc \ #MySQL 配辑文件

-DWITH_SSL=yes #数据库 SSL

4. 编写 mysql 配置项:

# vi /etc/my.cnf

——————————————–

[mysql]

# CLIENT #

port = 3306

socket = /tmp/mysql.sock

 

[mysqld]

# GENERAL #

user = mysql

default_storage_engine = InnoDB

socket = /tmp/mysql.sock

pid_file = /var/run/mysqld/mysqld.pid

 

# MyISAM #

key_buffer_size = 32M

myisam_recover = FORCE,BACKUP

 

# SAFETY #

max_allowed_packet = 16M

max_connect_errors = 1000000

skip_name_resolve

sql_mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY

sysdate_is_now = 1

innodb = FORCE

innodb_strict_mode = 1

 

# DATA STORAGE #

datadir = /usr/local/mysql/data

 

# BINARY LOGGING #

log-bin =/usr/local/mysql/log/bin.log

expire_logs_days = 30

sync_binlog = 1

 

# CACHES AND LIMITS #

key_buffer = 256M

max_allowed_packet = 32M

sort_buffer_size = 16M

read_buffer_size = 4M

read_rnd_buffer_size = 16M

thread_stack = 8M

tmp_table_size = 32M

max_heap_table_size = 32M

query_cache_type = 1

query_cache_size = 128M

query_cache_limit = 2M

max_connections = 2048

thread_cache_size = 512

open_files_limit = 65535

table_definition_cache = 1024

table_open_cache = 2048

 

# INNODB #

innodb_log_files_in_group = 2

innodb_log_file_size = 64M

innodb_flush_log_at_trx_commit = 1

innodb_file_per_table = 1

# 2G 这个值配置低的话建议改小即可

innodb_buffer_pool_size = 2G

 

# LOGGING #

log-error=/usr/local/mysql/log/error.log

general_log=1

general_log_file=/usr/local/mysql/log/mysql.log

slow_query_log=1

slow_query_log_file=/usr/local/mysql/log/slowquery.log

log-output=FILE

 

# 避免 MySQL 的外部锁定,减少出错几率增强稳定性 #

skip-external-locking

 

# 禁止 sql 读取本地文件 #

local-infile=0

 

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103837p2.htm

5. 将 MySQL 的库文件路径加入系统的库文件搜索路径中

方法一:直接做软链接

# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

方法二:利用 ldconfig 导入系统库

# echo “/usr/local/mysql/lib” >> /etc/ld.so.conf.d/mysql.conf

# ldconfig

 

6. 输出 mysql 的头文件到系统头文件

# ln -s /usr/local/mysql/include/mysql /usr/include/mysql

 

7. 进入安装路径, 初始化配置脚本

# cd /usr/local/mysql

# scripts/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data

 

8. 复制 mysql 启动脚本到系统服务目录

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

 

9. 系统启动项相关配置

# chkconfig –add mysqld #添加开机启动服务

# chkconfig –level 35 mysqld on #设置 mysql 启动

 

10. 启动 mysql

# service mysqld start

注:编译时若 socket 路径自定义为 /var/lib/mysql/mysql.sock,这里需要创建一个 mysql 接口的软链接,防止登陆后台或安装论坛报错.

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

 

11. 设置初始账户, 并登陆后台:

# /usr/local/mysql/bin/mysqladmin -u root password 123456 #设置密码

# /usr/local/mysql/bin/mysql -u root -p123456 #连接数据库

———————————–

mysql> create database phpwind; #创建数据库

mysql> grant all privileges on *.* to root@’%’ identified by ‘123456’ with grant option; #给 root 用户非本地链接所有权限, 并改密码和赋予其给其他人下发权限.

mysql> show variables; #查看 mysql 设置.

———————————–

注: 从启 MYSQL 也可使用以下命令开启此服务

# /usr/local/mysql/bin/safe_mysqld

如果不设置 chkconfig 启动项, 也可在 /etc/rc.local 下添加如下命令,使 mysql 服务利用系统启动脚本运行.

# echo “/usr/local/mysql/bin/safe_mysqld –user=mysql &” >> /etc/rc.local

 

12 添加 mysql 命令集到系统全局变量

注: 如果系统之前未安装 mysql 客户端, 可以将编译好的 mysql 命令集导入系统全局变量

以后就可以直接使用 mysql 命令集, 而不需要使用绝对路径访问.

# echo “PATH=$PATH:/usr/local/mysql/bin;export PATH” >> /etc/profile

# source /etc/profile

 

四. 安装 apache 网站服务

 

1.pcre 依赖包安装

# wget http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download

# tar -xzvf pcre-8.32.tar.gz

# cd pcre-8.32

# ./configure –prefix=/usr/local/pcre

# make && make install

 

2. 下载 apache

其实这里在 apache 官网找不到 httpd-2.4.4-deps.tar.bz2 的编译包, 不知道官方怎么想的, 最后研究了下最近的 2.43deps 版本, 解压该编译包, 发现里面放的其实就是 apr 和 apr-util 两个 apache 的依赖包, 现在的方法是直接把 2.43 的包解压到 apache 安装根目录即可连同 apache 编译安装, 最后能正常安装使用, 算是一个无奈之举, 但安装起来较网上单独编译安装依赖包要简便一些.

# wget http://archive.apache.org/dist/httpd/httpd-2.4.3-deps.tar.bz2

# wget http://archive.apache.org/dist/httpd/httpd-2.4.4.tar.bz2

 

3. 解包

注:httpd-2.4.3-deps.tar.bz2 已集成 APR,安装 apache 前检查 pcre 是否安装成功.

# tar jxvf httpd-2.4.4.tar.bz2

# tar jxvf httpd-2.4.3-deps.tar.bz2

# cp -rf httpd-2.4.3/* httpd-2.4.4

# cd httpd-2.4.4

 

4. 伪装 Apache 版本信息

—————

修改 include/ap_release.h 文件 “Apache” 参数为 “Microsoft-IIS/5.0”

修改 os/unix/os.h 文件 “Unix” 参数为 “Win32”

# cd httpd-2.4.4

# vi include/ap_release.h

#define AP_SERVER_BASEPRODUCT “Apache”

改为

#define AP_SERVER_BASEPRODUCT “Microsoft-IIS/5.0”

 

# vi os/unix/os.h

#define PLATFORM “Unix”

改成

#define PLATFORM “Win32”

—————-

 

———- 随 笔 —————–

这里走了一些弯路, 网上很多资料上写到 apache2.4 版本打开默认多线程模式时, 都是在修改 conf/extra/httpd-mpm.conf 下 prefork MPM 处参数, 但当我实际操作的时候发现, 修改后系统的 apache 进程并未增加, 但在 2.2 下修改此参数则没有任何问题, 最近研究 worker 模式下才发现到, 实际你启用 worker 模式后, 执行此命令

# /usr/local/apache2/bin/apachectl -l

返回的结果如下:

core.c

mod_so.c

http_core.c

worker.c

看到 worker.c, 这里就想到是不是使用默认的线程模式显示的 *.c 的这个 * 就是 apache 根目录 conf/extra/httpd-mpm.conf 下对应的参数, 想到这个疑问然后就使用默认线程模式从新编译了下 apache, 执行命令

# /usr/local/apache2/bin/apachectl -l

返回:

core.c

mod_so.c

http_core.c

event.c

OK, 到 conf/extra/httpd-mpm.conf 下, 查看有如下几行参数

<IfModule mpm_event_module>

StartServers 3

MinSpareThreads 75

MaxSpareThreads 250

ThreadsPerChild 25

MaxRequestWorkers 400

MaxConnectionsPerChild 0

</IfModule>

将 StartServers 参数修改成 10

# lsof -i:80

[root@lamp apache2]# lsof -i:80

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

httpd 1302 root 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21852 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21854 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21855 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21856 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21857 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21858 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21859 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21860 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21936 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

httpd 21937 daemon 4u IPv6 106523 0t0 TCP *:http (LISTEN)

问题解决, 看来 2.4 版本的 apache 默认线程是需要修改 event 参数, 这里请注意.

——————–

 

5. 编译安装:

编译默认 event MPM 模式(推荐)

# ./configure –prefix=/usr/local/apache2 –enable-so –enable-rewrite –with-pcre=/usr/local/pcre/bin/pcre-config

 

编译 worker MPM 模式(可选, 能正常开启服务, 但本人未做过相关网站测试, 不推荐生产环境下使用)

# ./configure –prefix=/usr/local/apache2 –enable-so –enable-rewrite -with-mpm=worker –with-pcre=/usr/local/pcre/bin/pcre-config

 

# make && make install

 

# 防止 apache 启动报错.

# vi /usr/local/apache2/conf/httpd.conf

————————

ServerName localhost:80

————————

 

6. 启动 apache

# /usr/local/apache2/bin/apachectl start

设置开机启动

# echo “/usr/local/apache2/bin/apachectl start” >> /etc/rc.local

 

7. 配置 apache:

1). 禁止地址目录访问和索引:

#vi /usr/local/apache2/conf/httpd.conf

搜索 Options Indexes FollowSymLinks

将其前面加 #注释

—————–

# Options Indexes FollowSymLinks

—————–

 

2). 隐藏版本号:

#vi /usr/local/apache2/conf/httpd.conf

加入以下两行:

——————

ServerTokens ProductOnly

ServerSignature Off

——————

 

3). 优化线程数:

如果 apche 访问量过大,将会导致页面打开迟缓,下载速度也降低,如果由于经费和环境问题,可以通过对 Apache2 增加模块 MPM 来进行优化, 这里我选择线程型 MPM 加以优化:

注: 此方法仅对编译安装 apache 有效:

a. 开启 mpm:

#vi /usr/local/apache2/conf/httpd.conf

找到以下这行内容, 去掉注释.

Include conf/extra/httpd-mpm.conf(如果没有此段代码可以新加。没有此文件 httpd-mpm.conf 可以新建,也可以直接加代码到)

b. 优化配置:

#vi /usr/local/apache2/conf/extra/httpd-mpm.conf

找到如下代码, 修改成以下参数即可.

# event MPM 配置:

————————

<IfModule mpm_event_module>

StartServers 5

ServerLimit 5000

MaxClients 4000

MinSpareThreads 100

MaxSpareThreads 400

ThreadLimit 200

ThreadsPerChild 100

MaxRequestWorkers 400

MaxRequestsPerChild 100

</IfModule>

————————

 

 

# worker MPM 配置:

———————–

<IfModule mpm_event_module>

StartServers 5

ServerLimit 5000

MaxClients 4000

MinSpareThreads 100

MaxSpareThreads 400

ThreadLimit 200

ThreadsPerChild 100

MaxRequestWorkers 400

MaxRequestsPerChild 100

</IfModule>

———————–

—————————

其中最重要的参数是 ThreadsPerChild 和 MaxClients:

 

#ThreadsPerChild

每个子进程建立的线程数,子进程在启动时建立这些线程后就不再建立新的线程了

#MaxClients

允许同时伺服的最大接入请求数量(在 worker 下就是最大线程数量)

#ServerLimit:

对最大子进程数的上限,该值必须大于等于 MaxClients/ThreadsPerChild

#ThreadLimit:

对 ThreadsPerChild 的上限,该值必须大于等于 ThreadsPerChild,如果将 ThreadLimit 设置成一个高出实际需要很多的 ThreadsPerChild 值,将会有过多的共享内存被 分配,应当和 ThreadsPerChild 可能达到的最大值保持一致.

#StartServers:

服务器启动时的服务进程数目,该值肯定小于等于 ServerLimit

#MinSpareThreads 和 MaxSpareThreads:

通过新建或结束子进程的方式,将空闲线程的总数维持在这个范围内

#MaxRequestsPerChild:

用于控制 apache 服务器建立新进程和结束旧进程的频 率,其实是一个为了防止内存溢出的参数,每个子进程在其生存期内允许伺服的最大请求数量。到达 MaxRequestsPerChild 的限制后,子进程将 会结束。对于 KeepAlive 链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。

 

可以通过检查 HTTPServer/logs/error_log 日志,判断 MaxClients 是否需要增加,如果有下面的报错,就说明 apache 自上次重启至今,曾经发生过达到 MaxClients 的情况:

————————–

4). 关闭 TRACE Method.

#vi /usr/local/apache2/conf/httpd.conf

———————–

TraceEnable off

———————–

 

5). 实现 service 和 chkconfig 系统控制 httpd 开启关闭

 

# vi /etc/ld.so.conf.d/apache2.4.4.conf

———–

/usr/local/apache2/lib

————

# ldconfig

# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

# vi /etc/init.d/httpd

在首行 #!/bin/sh 下面添加:

—————-

#chkconfig:345 61 61

#description:Apache httpd

—————

# chkconfig –add httpd

# chkconfig httpd on

# service httpd restart

 

6). 修改 log 日志格式实现每天保存.

#vi /usr/local/apache2/conf/httpd.conf

找到 CustomLog 和 ErrorLog 行, 注释掉修改为以下参数

——————————–

CustomLog “|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d.access_log 86400 480” combined

ErrorLog “|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d.error_log 86400 480”

———————————

 

7). 修改 apache 权限:

# vi /usr/local/apache2/conf/httpd.conf

——————

User www

Group www

——————

注: 这里其实就相当于用户执行 WEB 浏览会触发 httpd 进程,该进程由于属主属组都为 www, 所以对属主属组为 www 的目录都有读写权限,当然前提你的目录 u =r+w+x, 这样就保证开发人员在执行 PHP 语句时能对项目目录下的文件具有读写权限,避免运维人员手动对需要读写的子目录再设置 777 权限,保证项目顺利实施.

最近抽空在虚拟机上测试成功了 LAMP 各个最新版本的整合编译安装, 算是把之前的博文整合精简, 以下内容均在 CentOS6.3(安装 minimal desktop 和默认开发包)下测试安装成功, 并做了相应优化配置, 如有遗漏, 还请留言指教.

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

Linux 操作系统:centOS6.3 64bit(安装了系统默认开发包)

APACHE:httpd-2.4.4

MYSQL:mysql-5.6.10

PHP:php-5.4.13

注:推荐安装 centos6.3 系统时,在系统安装向导中将默认开发包勾上,避免后期编译报错。

一. 安装开发包(使用默认 CENTOS 更新源):

# yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*

二. 关闭 iptables 和 SELINUX

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

—————

SELINUX=disabled

—————

三. 安装 mysql 数据库

1. 下载编译包:

# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/

2. 安装前的初始配置工作:

# useradd -d /usr/local/mysql/ mysql #创建一个 Mysql 用户,指定家目录到 /use/local 目录下。

# mkdir /usr/local/mysql/data

# mkdir /usr/local/mysql/log #新建 mysql 下 data 和 log 子目录

# chown -R mysql:mysql /usr/local/mysql/data/

# chown -R mysql:mysql /usr/local/mysql/log/

# chmod 750 /usr/local/mysql/data

# chmod 750 /usr/local/mysql/log #修改目录的所属者以及所属组

3. 解包编译安装

# tar -zxv -f mysql-5.6.13.tar.gz

# cd mysql-5.6.13

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=gbk \

-DDEFAULT_COLLATION=gbk_chinese_ci \

-DEXTRA_CHARSETS=all \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DSYSCONFDIR=/etc \

-DWITH_SSL=yes

# make & make install

编译注解:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #Unix socket 文件路径, 自定义此路径防报错

-DDEFAULT_CHARSET=gbk \ #默认字符

-DDEFAULT_COLLATION=gbk_chinese_ci \ #校验字符

-DEXTRA_CHARSETS=all \ #安装所有扩展字符集

-DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装 myisam 存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装 innodb 存储引擎

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装 archive 存储引擎

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装 blackhole 存储引擎

-DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装 memory 存储引擎

-DWITH_FEDERATED_STORAGE_ENGINE=1 \ #安装 frderated 存储引擎

-DWITH_READLINE=1 \ #快捷键功能

-DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据

-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据库存放目录

-DMYSQL_USER=mysql \ #数据库属主

-DMYSQL_TCP_PORT=3306 \ #数据库端口

-DSYSCONFDIR=/etc \ #MySQL 配辑文件

-DWITH_SSL=yes #数据库 SSL

4. 编写 mysql 配置项:

# vi /etc/my.cnf

——————————————–

[mysql]

# CLIENT #

port = 3306

socket = /tmp/mysql.sock

 

[mysqld]

# GENERAL #

user = mysql

default_storage_engine = InnoDB

socket = /tmp/mysql.sock

pid_file = /var/run/mysqld/mysqld.pid

 

# MyISAM #

key_buffer_size = 32M

myisam_recover = FORCE,BACKUP

 

# SAFETY #

max_allowed_packet = 16M

max_connect_errors = 1000000

skip_name_resolve

sql_mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY

sysdate_is_now = 1

innodb = FORCE

innodb_strict_mode = 1

 

# DATA STORAGE #

datadir = /usr/local/mysql/data

 

# BINARY LOGGING #

log-bin =/usr/local/mysql/log/bin.log

expire_logs_days = 30

sync_binlog = 1

 

# CACHES AND LIMITS #

key_buffer = 256M

max_allowed_packet = 32M

sort_buffer_size = 16M

read_buffer_size = 4M

read_rnd_buffer_size = 16M

thread_stack = 8M

tmp_table_size = 32M

max_heap_table_size = 32M

query_cache_type = 1

query_cache_size = 128M

query_cache_limit = 2M

max_connections = 2048

thread_cache_size = 512

open_files_limit = 65535

table_definition_cache = 1024

table_open_cache = 2048

 

# INNODB #

innodb_log_files_in_group = 2

innodb_log_file_size = 64M

innodb_flush_log_at_trx_commit = 1

innodb_file_per_table = 1

# 2G 这个值配置低的话建议改小即可

innodb_buffer_pool_size = 2G

 

# LOGGING #

log-error=/usr/local/mysql/log/error.log

general_log=1

general_log_file=/usr/local/mysql/log/mysql.log

slow_query_log=1

slow_query_log_file=/usr/local/mysql/log/slowquery.log

log-output=FILE

 

# 避免 MySQL 的外部锁定,减少出错几率增强稳定性 #

skip-external-locking

 

# 禁止 sql 读取本地文件 #

local-infile=0

 

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/103837p2.htm

五. 安装 php 模块

1. 处理依赖包

暂无..

2. 安装 PHP

# wget http://cn2.php.net/distributions/php-5.4.13.tar.bz2

# tar -jxvf php-5.4.13.tar.bz2

# cd php-5.4.13

此处编译安装了我们项目经常用到的 PHP 模块, 如有其它需要可以自定义添加.

# ./configure –prefix=/usr/local/php5 –with-apxs2=/usr/local/apache2/bin/apxs –with-libxml-dir=/usr/local/lib –with-zlib-dir=/usr/local/lib –with-MySQL=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-gd –enable-soap –enable-sockets –enable-xml –enable-mbstring –with-png-dir=/usr/local –with-jpeg-dir=/usr/local –with-curl=/usr/lib –with-freetype-dir=/usr/include/freetype2/freetype/ –enable-bcmath –enable-calendar –enable-zip –enable-maintainer-zts

# 注: 其中最后一个参数 –enable-maintainer-zts 在安装 PHP5.4 最新版本时必须添加 (5.3 貌似不需要), 表示打开 PHP 进程安全 Thread Safe, 默认不添加为 NON Thread Safe, 开启 apache 服务会报错 …..(此处被坑了一下午 …#$%^&*)

# make

# make install

 

安装结束后:

添加 php 配置文件, 需要 CP 一个源码里面的 php.ini-development 或 php.ini-production 到 /usr/local/php/lib 为 php.ini

#cd ~/php-5.4.13

#cp php.ini-development /usr/local/php5/lib/php.ini

 

3. 配置 APACHE 的 PHP 模块:

编辑 Apache 配置文件,即 /usr/local/apache2/conf/httpd.conf,

并添加以下一行:AddType application/x-httpd-php .php

并在 DirectoryIndex 一行后面加上 index.php

如果 PHP 无法加载,检查 httpd.conf 配置下是否有该行配置(默认安装 PHP 后会自动将该行写入)

LoadModule php5_module modules/libphp5.so

 

4. 测试 PHP 加载:

注: 编译安装的 apache 网页存放路径跟 rpm 包安装的不一样。编译安装的路径在 /usr/local/apache2/htdocs/

可添加以下内容 info.php 到 /usr/local/apache2/htdocs/ 下, 测试 php 模块是否加载.

# vi /usr/local/apache2/htdocs/info.php

—————

<?php

echo phpinfo();

?>

—————

检查 80 端口是否打开

# lsof -i:80

浏览器输入 http://localhost/info.php

显示有如下测试页面内容,PHP 模块即在 APACHE 下加载成功

 

LAMP 全功能编译安装 for CentOS 6.3 笔记

 

LAMP 全功能编译安装 for CentOS 6.3 笔记

 

LAMP 全功能编译安装 for CentOS 6.3 笔记

 

测试本地 mysql 是否正常连接

# vi /usr/local/apache2/htdocs/index.php

———————

 

<html><body><h1>The page to test mysql local connection.</h1></body></html>

<?php

$conn=mysql_connect(‘localhost’,’root’,’123456′);

if ($conn)

echo “<h2>Success…</h2>”;

else

echo “<h2>Failure…</h2>”;

 

?>

 

———————

浏览器输入 http://localhost

显示如下页面, 表示连接成功.

LAMP 全功能编译安装 for CentOS 6.3 笔记

5.PHP 配置项: (默认路径 /usr/local/php5/lib/php.ini)

# vi /usr/local/php5/lib/php.ini

————————-

# 隐藏 PHP 版本信息:

expose_php = Off

# 关闭警告及错误信息, 爆路径:

display_errors = Off

# 调整时区, 防止 phpinfo()函数报错.

date.timezone =PRC

# 开启 php 错误日志并设置路径.

log_errors = On

error_log = /usr/local/apache2/logs/php_error.log

 

————– 大功告成 O(∩_∩)O~—————–

 

觉得不错, 请大家回帖支持下 ….

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-06/103837.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计17741字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中