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

相关推荐

  • 文本处理学习小结

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

    Linux干货 2016-08-07
  • Linux 练习册1

    一、文件通配符练习题:          1、显示/var目录下所有以 l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录。         (1)ls  l*[[:digit:]]*[[:lower:]]    &n…

    2017-07-30
  • pam_mysql认证ftp虚拟用户账号,且拥有不同的权限

    关防火墙:#systemctl stop firewalld                #setenforce 0 #yum install mariadb.server #yum install mariadb-d…

    Linux干货 2017-06-07
  • configure –help 参数详解

    configure –help 参数详解及apache2.2静态编译和动态编译参考

    Linux干货 2016-05-25
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp /etc/skel /home/tuser1 [root@localhost ~]# chmod -R&nb…

    Linux干货 2017-01-18
  • 关于find命令的实际应用

    1、查找/var目录下属主为root,且属组为mail的所有文件 2、查找/var目录下不属于root、lp、gdm的所有文件 3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件 4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件 5、查找/etc目录下大于1M且类型为普通文件的所有文件 6、查找/e…

    Linux干货 2016-08-16