5----CentOS6.5源码搭建LAMP--基于module方式实现php(单台机器)

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

源码搭建LAMP


软件包下载源:

搜狐镜像源:http://mirrors.sohu.com/

apache下载网:http://mirror.bit.edu.cn/apache/

pcre官网:http://www.pcre.org/

apr官网:http://apr.apache.org/

apache官网:http://httpd.apache.org/

mysql官网:https://www.mysql.com/

php官网:http://php.net/

freetds:http://download.csdn.net/download/xhu_eternalcc/7457555

官网:http://www.freetds.org/


实验环境:

CentOS6.5-x86_64 单台机器

IP 192.168.9.168

版本:

apr-1.5.2

apr-util-1.5.4

httpd-2.4.20

php-5.6.22

mysql-5.6.32


说明,因为php要连接mysql,所以安装顺序为apache,mysql,php      

注:httpd2.4版本需要较新的apr和apr-util



注:新机器要初始化:参考http://wupengfei.blog.51cto.com/7174803/1955545

注:(生产环境一般包放内网ftp下载比较快,一般前端用nginx反向代理至后端apache+php机器,mysql独立并做集群)


1
一、编译安装apache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
1、 #yum安装httpd依赖软件
[root@192-168-9-168 ~] # yum install -y gcc gcc-c++ libtool libtool-ltdl-devel \
make  gd-devel freetype-devel libxml2-devel \
libjpeg-devel libpng-devel openssl-devel patch  
[root@192-168-9-168 ~] # yum install -y curl-devel bzip2 pcre-devel zip2-devel bzip2-devel 
[root@192-168-9-168 ~] # yum install -y mcrypt-devel zlib-devel wget
 
2、 #编译安装apr
[root@192-168-9-168 ~] # cd /usr/local/src/
[root@192-168-9-168 src] # wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.bz2
[root@192-168-9-168 src] # tar xf apr-1.5.2.tar.bz2 
[root@192-168-9-168 src] # cd apr-1.5.2
[root@192-168-9-168 apr-1.5.2] # ./configure --prefix=/usr/local/apr
[root@192-168-9-168 apr-1.5.2] # make && make install
 
3、编译安装apr-util
[root@192-168-9-168 apr-1.5.2] # cd /usr/local/src/
[root@192-168-9-168 src] # wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2
[root@192-168-9-168 src] # tar xf apr-util-1.5.4.tar.bz2
[root@192-168-9-168 src] # cd apr-util-1.5.4
[root@192-168-9-168 apr-util-1.5.4] # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@192-168-9-168 apr-util-1.5.4] # make && make install
 
4、编译安装httpd
[root@192-168-9-168 apr-util-1.5.4] # useradd -s /sbin/nologin www
[root@192-168-9-168 apr-util-1.5.4] # cd /usr/local/src/
[root@192-168-9-168 src] # wget http://apache.fayea.com//httpd/httpd-2.4.20.tar.bz2 
[root@192-168-9-168  src] # tar xf httpd-2.4.20.tar.bz2 
[root@192-168-9-168  src] # cd httpd-2.4.20 
[root@192-168-9-168 httpd-2.4.20] # ./configure --prefix=/usr/local/apache \
--with-apr= /usr/local/apr  \
--with-apr-util= /usr/local/apr-util/  \
-- enable -so \
-- enable -ssl \
-- enable -cgi \
-- enable -rewrite \
--with-zlib \
--with-pcre \
-- enable -modules=most \
-- enable -mpms-shared=all \
--with-mpm=prefork
[root@192-168-9-168 httpd-2.4.20] # make
[root@192-168-9-168 httpd-2.4.20] # make install
[root@192-168-9-168 httpd-2.4.20] # sed -i 's/User daemon/User www/g' /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 httpd-2.4.20] # sed -i 's/Group daemon/Group www/g' /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 httpd-2.4.20] # sed -i "/ServerName/s/#ServerName.*/ServerName localhost/g" /usr/local/apache/conf/httpd.conf
 
 
6、启动方法
[root@192-168-9-168 httpd-2.4.20] #/usr/local/apache/bin/apachectl -k start|reload|restart|stop
 
7、测试验证
[root@192-168-9-168 httpd-2.4.20] # curl -I http://192.168.9.168
HTTP /1 .1 200 OK
Date: Fri, 11 Aug 2017 15:22:43 GMT
Server: Apache /2 .4.20 (Unix)
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag:  "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text /html


二、编译安装MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1、 #下载安装包
[root@192-168-9-168 httpd-2.4.20] # cd /usr/local/src/
[root@192-168-9-168 src] # wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
 
2、 #建立运行mysql用户和组为系统账号  
[root@192-168-9-168 src] # groupadd -r mysql
[root@192-168-9-168 src] # useradd -r -g mysql -s /sbin/nologin mysql
 
3、 #编译安装
[root@192-168-9-168 src] # yum install -y libaio libaio-devel numactl numactl-devel cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel
[root@192-168-9-168 src] # tar xf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
[root@192-168-9-168 src] # mv mysql-5.6.37-linux-glibc2.12-x86_64 /usr/local/mysql
#建议mysql使用独立设备独立目录,本实验只建立目录,独立设备请参考磁盘分区与挂载
[root@192-168-9-168 src] # mkdir -p /data0/mysql
#更改属主属组
[root@192-168-9-168 src] # chown -R mysql.mysql /usr/local/mysql
#初始化数据库
[root@192-168-9-168 src] # cd /usr/local/mysql
[root@192-168-9-168 mysql] # ./scripts/mysql_install_db --datadir=/data0/mysql --user=mysql
[root@192-168-9-168 mysql] # cp ./support-files/my-default.cnf /data0/mysql/my.cnf
[root@192-168-9-168 mysql] # echo "basedir = /usr/local/mysql
datadir =  /data0/mysql
port = 3306
server_id = 1000
socket =  /tmp/mysql .sock" >> /data0/mysql/my .cnf
[root@192-168-9-168 mysql] # chown -R mysql.mysql /data0/mysql/
4,启动:
[root@192-168-9-168 mysql] # /usr/local/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/my.cnf &
[root@192-168-9-168 mysql] # echo "/usr/local/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/my.cnf &" >> /etc/rc.d/rc.local
 
6、 #安全初始化
#安全验证初始化,设置root用户密码,删除匿名用户,禁止root用户远程连接,删除test库
[root@192-168-9-168 mysql] # ./bin/mysql_secure_installation
#导出头文件
[root@192-168-9-168 mysql] # ln -sv /usr/local/mysql/include/ /usr/include/mysql
#加载库文件
[root@192-168-9-168 mysql] # echo "/usr/local/mysql/lib/mysql/" >>/etc/ld.so.conf
[root@192-168-9-168 mysql] # ldconfig
[root@192-168-9-168 mysql] # echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile


三、编译安装PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
1、 #编译安装libmcrypt扩展
[root@192-168-9-168 src] # cd /usr/local/src/
[root@192-168-9-168 src] # wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
[root@192-168-9-168 src] # tar xf libmcrypt-2.5.7.tar.gz 
[root@192-168-9-168 src] # cd libmcrypt-2.5.7
[root@192-168-9-168 libmcrypt-2.5.7] # ./configure
[root@192-168-9-168 libmcrypt-2.5.7] # make && make install
 
2、 #编译安装freetds扩展
[root@c  local ] # cd /usr/local/src/
[root@c src] # wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
[root@192-168-9-168 src] # tar xf freetds-patched.tar.gz 
[root@192-168-9-168 src] # cd freetds-1.00.53/
[root@192-168-9-168 freetds-1.00.53] # ./configure --prefix=/usr/local/freetds --with-tdsver=7.4 --enable-msdblib 
[root@192-168-9-168 freetds-1.00.53] # make && make install
[root@192-168-9-168 freetds-1.00.53] # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/freetds/lib/
 
4、 #下载安装包
[root@192-168-9-168 src] # cd /usr/local/src/
[root@192-168-9-168 src] # wget http://cn2.php.net/distributions/php-5.6.22.tar.bz2
[root@192-168-9-168 src] # tar xf php-5.6.22.tar.bz2 
[root@192-168-9-168 src] # cd php-5.6.22
[root@192-168-9-168 php-5.6.22] #  ./configure --prefix=/usr/local/php \
--with-mysql= /usr/local/mysql/  \
--with-openssl \
--with-mysqli= /usr/local/mysql/bin/mysql_config  \
-- enable -mbstring \
--with-freetype- dir  \
--with-jpeg- dir  \
--with-png- dir  \
--with-zlib \
--with-libxml- dir = /usr/  \
-- enable -xml \
-- enable -sockets \
--with-apxs2= /usr/local/apache/bin/apxs  \
--with-mcrypt \
--with-mssql= /usr/local/freetds  \
--with-bz2 \
-- enable -maintainer-zts \
--with-curl \
-- enable - ftp  \
-- enable -bcmath \
--with-gd \
--with-freetype- dir  \
-- enable -gd-native-ttf \
--with-iconv- dir  \
-- enable -mbstring \
-- enable -calendar \
--with-gettext \
-- enable -dom \
-- enable -fpm
#说明:如果php5.3以上的版本,为了链接数据库,可以指定mysqlnd,这样本机就可以不用安装mysql和mysql开发包。5.4已经是默认设置。
如: --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
[root@192-168-9-168 php-5.6.22] # make
[root@192-168-9-168 php-5.6.22] # make install
 
#为php提供配置文件
[root@192-168-9-168 php-5.6.22] # cp php.ini-development /usr/local/php/etc/php.ini
 
5、编辑apache配置文件httpd.conf,apache支持php
[root@192-168-9-168 php-5.6.22] # sed -i '/LoadModule php5_module/ aAddType application/x-httpd-php-source .phps' /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 php-5.6.22] # sed -i '/LoadModule php5_module/ aAddType application/x-httpd-php .php .php5' /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 php-5.6.22] # sed -i '/DirectoryIndex/ s/index.html/index.php index.html/' /usr/local/apache/conf/httpd.conf
 
#重启httpd
[root@192-168-9-168 php-5.6.22] # /usr/local/apache/bin/apachectl -k restart
4、测试验证php
  "<?php
         phpinfo();
?>" >  /usr/local/apache/htdocs/index .php
5、浏览器访问:
http: //192 .168.9.168
5、测试验证php连接数据库
[root@192-168-9-168 php-5.6.22] # vim index.php 
 
<?php
         $link = mysql_connect( '127.0.0.1' , 'root' , '123456' );
         if  ($link)
              echo  "Success..." ;
         else
              echo  "Failure..." ;
         mysql_close()
?>
#浏览器访问
http: //192 .168.9.168
 
6、 #ab压力测试
[root@192-168-9-168 php-5.6.22] # ab -c 100 -n 10000 
 
四、测试Xcache为php加速
1、 #编译安装
[root@192-168-9-168 htdocs] # cd /usr/local/src/
[root@192-168-9-168 src] # tar xf xcache-3.2.0.tar.bz2 
[root@192-168-9-168 src] # cd xcache-3.2.0
[root@192-168-9-168 xcache-3.2.0] # /usr/local/php/bin/phpize
[root@192-168-9-168 xcache-3.2.0] # ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config 
[root@192-168-9-168 xcache-3.2.0] # make && make install
2、 #编辑php.ini,整合php和xcache
[root@192-168-9-168 xcache-3.2.0] # mkdir -p /etc/php.d
[root@192-168-9-168 xcache-3.2.0] # cp xcache.ini /etc/php.d
 
 
#重启apache
[root@192-168-9-168 xcache-3.2.0] # apachectl -k restart
#压力测试,看效果









本文转自 wpf926 51CTO博客,原文链接:http://blog.51cto.com/wupengfei/1955720,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
PHP
PHP全自动采集在线高清壁纸网站源码
PHP全自动采集在线高清壁纸网站源码,PHP全自动采集在线高清壁纸网站源码,一款开源壁纸源码,无需安装。集合360壁纸,百度壁纸,必应壁纸,简单方便。每天自动采集,自动更新,非常不错,php源码 网站源码 免费源码 自动采集。
47 3
|
1月前
|
PHP 数据库
2024表白墙PHP网站源码
2024表白墙PHP网站源码
31 1
|
2月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
27 2
|
2月前
|
安全 BI PHP
php前后端分离,仓储模式r的医院不良事件上报系统源码
此医院安全不良事件管理系统采用前后端分离架构(PHP+Laravel8+Vue2+Element),实现事件上报至解决的全流程管理。系统支持结构化上报、数据自动引用、智能流程及预警,配备质控分析工具生成各类报表。通过PDCA闭环管理,确保事件得到有效处置并预防再发,同时提供便捷上报通道,优化上报效率。
php前后端分离,仓储模式r的医院不良事件上报系统源码
|
2月前
|
关系型数据库 MySQL Linux
Linux(CentOS7)搭建LAMP服务环境
本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。
56 2
|
2月前
|
应用服务中间件 Linux nginx
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
这篇文章介绍了在CentOS系统上使用Nginx源码包进行安装和配置的详细步骤,包括源码包的获取、解压、配置、编译、安装、启动验证以及注意事项。
85 0
在CentOS上使用源码包安装Nginx、以及手动启动Nginx的步骤过程
|
2月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
151 1
|
2月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
60 0
|
3月前
|
数据库
基于PHP+MYSQL开发制作的趣味测试网站源码
基于PHP+MYSQL开发制作的趣味测试网站源码。可在后台提前设置好缘分, 自己手动在数据库里修改数据,数据库里有就会优先查询数据库的信息, 没设置的话第一次查询缘分都是非常好的 95-99,第二次查就比较差 , 所以如果要你女朋友查询你的名字觉得很好 那就得是她第一反应是查和你的缘分, 如果查的是别人,那不好意思,第二个可能是你。
53 3
|
2月前
|
Linux PHP Apache
centos7安装php8
centos7安装php8
171 0
下一篇
无影云桌面