LAMP编译安装

所谓的LAMP是指构建在Linux之上经典的一种web架构方式,其中L指的是Linux,A指的是Apache的httpd,M指的是Mysql或MariaDB,P指的是PHP,这种组合方式的基本工作模式是有httpd负责接收和相应用户的请求,然后将需要处理的php页面交由后端的php应用程序处理,而php应用程序处理php页面时的数据存储在Mysql数据库中,最后在由httpd将结果返还给客户端,本文主要介绍如何使用源代码编译构建这种组合。

一.程序版本及其编译环境

Linux:CentOS7
httpd:2.4.6
mysql:5.6.13
php:5.4.26

1.首先解决依赖关系2.安装httpd

(1).httpd2.4以后的版本要求arp(Apache Portable Runtime)的版本是1.4以上,以及安装apr-util

tar -xf apr-1.4.6.tar.bz2

cd apr-1.4.6

./configure –prefix=/use/local/apr

make & make install

tar -xf apr-util-1.5.2.tar.bz2

cd apr-util-1.5.2

./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

make & make install

(2)httpd也依赖于pcre-devel,因此需要安装

yum -y install pcre-devel

(3)ssl模块依赖openssl-devel

 yum -y install openssl-devel

(4)安装zlib库

yum -y install zlib

(4)编译安装httpd

tar -xf httpd-2.4.6.tar.bz2

cd httpd-2.4.6

./configure –prefix=/usr/local/httpd –sysconfdir=/etc/httpd –enable-so –enable-ssl –enable-cgi –enable-rewrite –enable-zlib –enable-module=most –enable-mpms-shared=all –with-mpm=prefork –with-apr=/usr/share/apr –with-apr-util=/usr/share/apr-util

(5)在主配置文件中指明pid文件

PidFile "/var/run/httpd.pid"

(6)启动服务并测试

结果.png

使用curl命令也能正常的请求到资源

修改根文档目录时要注意对应文件的权限,否则可能会出错。

2.安装mysql

(1)由于mysql使用的cmake项目构建工具,因此先安装cmake

 yum -y install cmake

(2)创建运行mysql的用户

 groupadd -r mysql

 useradd -g mysql -r mysql

(3)安装 Curses library

yum -y install ncurses-devel

(3)解压展开

tar -xf mysql-5.6.13.tar.gz

(4)编译安装mysql

  cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system  -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci

  make & make install

(5)启动服务并测试

/usr/local/mysql56/support-files/mysql.server start

mysql.png

(6)为mysql提供sysv分格的启动脚本

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

chmod +x /etc/rc.d/init.d/mysqld

将mysql添加至服务列表

chkconfig –add mysqld

chkconfig mysqld on

测试,发现能正常启动和关闭

添加后.png

(7).配置环境变量,方便使用mysql客户端连接工具,编辑/etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

保存退出后,读取一下配置文件

. /etc/profile.d/mysql.sh

3.安装php

(1)先安装php会使用到的依赖程序

 yum -y install bzip2-devel libmcrypt-devel libxml2-devel

(2)解压展开

 tar -xf php-5.4.26.tar.bz2

 cd php-5.4.26

(3)编译

 ./configure –prefix=/usr/local/php54 –with-mysql=/usr/local/mysql56 –with-openssl –with-mysqli=/usr/local/mysql56/bin/mysql_config –enable-mbstring –with-zlib –enable-sockets –with-mcrypt –with-apxs2=/usr/local/httpd/bin/apxs –with-libxml-dir=/usr/ –with-config-file-path=/usr/local/php56

 make 

 make install 

注意:这一步最好将make和make install分开,否则可能会报错

(4)为php提供配置文件

cp php.ini-production /etc/php.ini

(5)修改httpd的主配置文件,使之能支持php,添加如下内容

AddType application/x-httpd-php  .php

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

并将DirectoryIndex index.html 改为DirectoryIndex  index.php  index.html

(6)测试

成功.png

至此,编译成功了。


二.安装wordpress

1.在mysql中创建wordpress使用的数据库,并做授权

create database wordpress;

grant all privileges on wordpress.* to "wordpress"@"localhost" identified by "wordpress";

2.下载wordprss并安装之

(1)下载wordprss最新版本

wget http://wordpress.org/latest.tar.gz

(2)解压

tar -xf latest.tar.gz 

(3)将wordprss复制到httpd的根文档目录之下

cp -R wordpress/* /httpd/wordpress

(4)给wordpress提供配置文件

cp wp-config-sample.php wp-config.php

(5)修改配置文件

配置.png

(6)测试结果

wordpress.png

至此,wordpress安装完成。

三.总结

由于之前使用yum来安装的,很顺利,但这次使用编译安装的时候遇到了很多问题,但是很多问题通过错误提示,看错误日志就能解决,不能解决的google一下就行,希望大家遇到错误的时候也不要害怕。最后,最近看到一句话,很有道理,与大家分享,与大家共勉:正确的判断来源于经验,经验来源于错误的判断。


原创文章,作者:zhangbao,如若转载,请注明出处:http://www.178linux.com/64006

(0)
zhangbaozhangbao
上一篇 2016-12-19
下一篇 2016-12-19

相关推荐

  • shell脚本编程之函数、case语句

    一、函数 调用函数前必须先定义,调用时仅使用函数名即可。 语法: function  函数名 {      函数体 } 也可表示为: 函数名 () { 函数体 } 示例:写一个脚本,判定网络内有哪些主机在线,在线的用绿色显示,不在线的用红示表示: c_net&…

    Linux干货 2015-08-24
  • 第三周作业

    1、列出当前系统上所有已登陆的用户名:          [root@yangjifeng~]# who | cut -d ‘ ‘ -f 1 | sort -u     root 2、取出最后登陆到当前系统的用户信息; &nb…

    Linux干货 2017-08-28
  • 关于大型网站技术演进的思考(三):存储的瓶颈(3)

    原文出处: 夏天的森林    存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。 这里我们先回顾下数据库的垂直拆分和水平拆分的定义: 垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。 水平拆分:是根据一定的规则把同一业务…

    Linux干货 2015-03-03
  • M20 – 1- 第三周博客(1):Linux用户、组

    Linux是个多用户多任务的分时操作系统,因此要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问与限制,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名(UID)和用户口令(PASSWD)。用户在登录时键入正确的用户名和口令后,才能…

    Linux干货 2016-08-04
  • Linux磁盘管理详解

    linux磁盘管理 添加磁盘步骤: fdisk 管理磁盘分区 格式化文件系统。 设备挂载 开机自动挂载 UUID挂载 取消挂载点 Parted(gpt大于2G分区) 查看文件系统的使用情况。 df 查看挂载信息与磁盘使用量 du 查看使用量 查看分区状况lsblk 查看设备信息blkid linux磁盘管理 当全新安装了一块新的硬盘设备后,为了更充分、安全的…

    Linux干货 2016-09-07