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 15:42
下一篇 2016-12-19 16:08

相关推荐

  • Linux文件权限管理及目录文件的深入理解。

    文件权限及目录 初学Linux,感觉这个东西该复杂,而且逻辑非常的强。难~! 自己根据学习到的理论和实践,得出的对文件权限,进程,以及特殊权限的深入理解。希望能解决初学者对于权限的困惑。如有错误请指正。 文件的权限,指定的是什么? 是文件的权限位上的权限,针对三类用户,任何用户都必须是三类用户中的一种,属主属组和其他人的权限rwx   &…

    Linux干货 2016-08-10
  • Linux程序包管理yum

    yum客户端: 配置文件: /etc/yum.conf:为所有仓库提供公共配置 /etc/yum.repos.d/*.repo:为仓库的指向提供配置 仓库指向的定义: [repositoryID] name=Some name for this repository baseurl=url://path/to/repository/ enabled={1|0…

    Linux干货 2015-11-23
  • 文本处理工具

    文本处理工具 文件内容:less和 cat,more文件截取:head和tail文本内容处理:tr按列抽取:cut按关键字抽取:grep 文件查看命令:cat, tac,rev cat  复制标准输入到当前输出 语法:cat [OPTION]… [FILE]…选项: -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有…

    Linux干货 2016-08-07
  • 马哥教育网络班20期+第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统     (1) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl fdisk /dev/sdbnp1110Gw[root@llww3317 ~]# mke2fs -t ext…

    Linux干货 2016-08-02
  • 网络的冰山一角

        这周我们学习了网络管理,每一天进度特别快,上课认真听了,但是感觉也只能听懂一半。所以我决定把网络管理作为这周博客写一写,这样相当于又复习了一边,能加深印象。 一、用户应用程序对网络的影响     1、批处理应用程序:无需直接人工交互,宽带很重要,但是并非关键性因素。 &n…

    2017-09-04
  • 修复引导启动

    修复MBR 备份MBR: dd if=/dev/sda of=/root/mbr.bak  bs=1  count=512  破坏 dd if=/dev/zero of=/dev/sda  bs=1 count=446 这里只要小于等于446即可。 借助安装光盘修复 装入光盘,在光盘引导界面选择 然后全部默认进入救援命令界面 切换根目录 使用grub-ins…

    2017-12-24