天天看点

Centos7 LAMP服务源码搭建

前言:

记录一下源码安装LAMP服务的过程

准备工作

安装编译环境

yum -y install gcc*
           
Centos7 LAMP服务源码搭建

关闭防火墙\SELinux

iptables -F
setenforce 0
           

加载软件包镜像

Centos7 LAMP服务源码搭建

在虚拟机上将这个镜像换上连接即可

复制文件到

/usr/src/lamp

目录

cp -rf lamp-php5.4/ /usr/src/lamp
           

这里在目录下写一个shell脚本,自动解压一下

#!/bin/bash
/bin/ls *tar.gz > ls.list
/bin/ls *tgz >> ls.list
for a in `cat ls.list`
do
        /bin/tar -zxf $a
done
rm -rf ls.list
           

解压完成

Centos7 LAMP服务源码搭建

df -h

确认磁盘空间是否充足

安装一些必须软件

注意事项: 目录名不要更改 顺序不要更改

0x01:安装python-devel

#首先需要python的底层环境
yum -y install python-devel
           
[root@localhost lamp]# cd lib
libmcrypt-2.5.8/ libpng-1.2.31/   libxml2-2.9.1/   
[root@localhost lamp]# cd libxml2-2.9.1/
[root@localhost libxml2-2.9.1]# ./configure --prefix=/usr/local/libxml2/
           
Centos7 LAMP服务源码搭建

再输入

make

Centos7 LAMP服务源码搭建

再次输入

make install

即可

Centos7 LAMP服务源码搭建

0x02:安装libmcrypt

提供加密算法
[root@localhost lamp]# cd libmcrypt-2.5.8/
[root@localhost libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt/
make
make install
           
Centos7 LAMP服务源码搭建

0x03:安装libltdl

[root@localhost lamp]# cd libmcrypt-2.5.8/libltdl/
[root@localhost libltdl]# ./configure --enable-ltdl-install
make
make install
           

0x04:安装mhash

提供加密方式的扩展

前提条件:安装 lib

[root@localhost lamp]# cd mhash-0.9.9.9/
[root@localhost mhash-0.9.9.9]# ./configure 
           
Centos7 LAMP服务源码搭建

0x05:安装mcrypt

提供php相关的加密支持拓展库
[root@localhost mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib \./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
make
make install
           
Centos7 LAMP服务源码搭建

0x06:安装zlib

提供压缩用途的函数库
t@localhost lamp]# cd zlib-1.2.3/
[root@localhost zlib-1.2.3]# ./configure
make
make install
           
Centos7 LAMP服务源码搭建

0x07:libpng

支持png格式图片的库
[root@localhost zlib-1.2.3]# cd ../
[root@localhost lamp]# cd libpng-1.2.31/
[root@localhost libpng-1.2.31]# ./configure --prefix=/usr/local/libpng
make 
make install
           
Centos7 LAMP服务源码搭建

0x08:jpeg6

提供jpeg格式的图片

先创建目录

[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/bin
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/lib
[root@localhost libpng-1.2.31]# mkdir /usr/local/jpeg6/include
[root@localhost libpng-1.2.31]# mkdir -p /usr/local/jpeg6/man/man1
           
root@localhost lamp]# cd jpeg-6b/
[root@localhost jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static 
           

发现报错,报错原因是因为缺失

libtool

Centos7 LAMP服务源码搭建

按照下面博客的方法可以解决

解决linux64位安装jpeg 出错make: ./libtool: Command not found

安装完成

Centos7 LAMP服务源码搭建

0x09:安装字体freetype

[root@localhost freetype-2.3.5]# ./configure --prefix=/usr/local/freetype
           
Centos7 LAMP服务源码搭建

0x10:安装GD

提供PHP图形拓展库
[root@localhost lamp]# mkdir /usr/local/gd2
[root@localhost lamp]# cd /usr/src/lamp/gd-2.0.35/
[root@localhost gd-2.0.35]# ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/
           

出现错误

Centos7 LAMP服务源码搭建

解决方法:

编辑gd_png.c文件

[root@localhost gd-2.0.35]# vim gd_png.c
           
Centos7 LAMP服务源码搭建

指定一下配置文件路径即可,安装完成

Centos7 LAMP服务源码搭建
make
make install
           

安装Apache

在此之前需要装两个工具包

[root@localhost lamp]# cp -r apr-1.4.6 httpd-2.4.7/srclib/apr
[root@localhost lamp]# cp -r apr-util-1.4.1 httpd-2.4.7/srclib/apr-util
#这两个工具也需要安装一下,具体查百度吧,百度有很详细的安装
           
cd pcre-8.34/
./configure
make
make install
           
[root@localhost lamp]# cd httpd-2.4.7/
[root@localhost httpd-2.4.7]# ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc --with-include-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared
           

但是在make install时报错(类似这种的)

Centos7 LAMP服务源码搭建

按照老师发的方法试一下:

./configure \
> --prefix=/usr/local/apache2 \
> --sysconfdir=/etc/httpd \
> --with-z=/usr/local/zlib \
> --with-included-apr \
> --disable-userdir \
> --enable-so \
> --enable-deflate=shared \
> --enable-expires=shared \
> --enable-rewrite=shared \
> --enable-static-support 
           

因为之前编译过,所以要清除下

make clean
           

但又遇到一个错误,Apache安装是编译安装,安装路径不是默认路径,Apache服务没有添加到Linux服务中

Centos7 LAMP服务源码搭建

可以参考下面的方法

Centos7 LAMP服务源码搭建
注意我这里
httpd
要换成
Apache2
#存放的位置不同,但功能都一样
           

启动服务发现成功

Centos7 LAMP服务源码搭建

安装mysql

首先需要安装这个工具

oot@localhost lamp]# yum -y install cmake
           

其次安装下语法解释器

[root@localhost lamp]# yum -y install bison
           
Centos7 LAMP服务源码搭建

然后建立一个用户来使数据库运行

useradd mysql
           
Centos7 LAMP服务源码搭建

接下来按照老师的命令

Centos7 LAMP服务源码搭建
Centos7 LAMP服务源码搭建

执行发现报错

Centos7 LAMP服务源码搭建

解决方法

[root@localhost mysql-5.5.23]# yum -y install ncurses-devel
[root@localhost lamp]# cd ncurses-5.9/
[root@localhost ncurses-5.9]# ./configure --with-shared --without-debug --with-ada --enable-overwrite
make make install
           

缺失的包我们已经安装了但如果还是报错就按照下面的进行操作

#删掉原来的目录
rm -rf mysql-5.5.23
#再次解压
tar -zxf mysql-5.5.23.tar.gz 
           

查看一下包是否安好

[root@localhost lamp]# rpm -q ncurses
ncurses-5.9-14.20130511.el7_4.x86_64
[root@localhost lamp]# rpm -q ncurses-devel 
ncurses-devel-5.9-14.20130511.el7_4.x86_64
           

再进入mysql目录中,进行编译

Centos7 LAMP服务源码搭建

安装成功,说明这里的这个软件包是有先后顺序的,必须先安装

ncurses

ncurses-devel

才行

接下来就是

make&&make install
           
Centos7 LAMP服务源码搭建

进入mysql目录更改一些权限

cd /usr/local/mysql/
chown -R mysql:mysql .
#数据库初始化
[root@localhost mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql
           
Centos7 LAMP服务源码搭建

数据库初始化成功,接下来授权一下表和库的权限

t@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql data/
#复制一下配置文件
[root@localhost mysql]# cp support-files/my-medium.cnf  /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
           

开启MySQL

[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql
           

如果开启没成功,就用上面的初始化的命令再来一次

Centos7 LAMP服务源码搭建

如果卡到这里的话,用下面的命令杀死mysql的进程,再初始化一遍数据库再启动即可

ps aux | grep mysql
           
Centos7 LAMP服务源码搭建
netstat -anpt
           
Centos7 LAMP服务源码搭建

发现3306端口已经打开了,数据库已经启动了

添加开机自启

[root@localhost mysql]# vim /etc/rc.d/rc.local 
           
Centos7 LAMP服务源码搭建

登陆mysql

/usr/local/mysql/bin/mysql
           
Centos7 LAMP服务源码搭建

直接登陆会不那么安全,设置一个密码

[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -u root password '123456'
           
Centos7 LAMP服务源码搭建

再次登陆就需要密码了,记住要删除history,因为会记录设置的密码

Centos7 LAMP服务源码搭建
history -c 
#清楚所有记录
           

安装PHP

接下来就是最后一步了,安装PHP

#预先准备好的环境,先要安装上
yum -y install libtool*
           

接下来修改一下配置文件以支持数据库的内容

[root@localhost /]# vim /usr/local/gd2/include/gd_io.h 
           
Centos7 LAMP服务源码搭建

(注:这里的位置是错的,正确位置往下面看)

添加上这一行代码,保存退出

接下来就是安装php,需要指定之前安装过的软件路径,所以有点长

./configure --prefix=/usr/local/php/ \
--with-config-file-path=/usr/local/php/etc/ \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-libxml-dir=/usr/local/libxml2 \ 
--with-jpeg-dir=/usr/local/jpeg6/ \
--with-png-dir=/usr/local/libpng/ \
--with-freetype-dir=/usr/local/freetype/ \ 
--with-gd=/usr/local/gd2/ \
--with-mcrypt=/usr/local/libmcrypt/ \ 
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --without-pear
           

但这里会报错

configure: error: png.h not found.

,按道理说上面我们已经安装过了

libpng

,但是还是不行,查了百度,发现还需要

libpng-devel

,所以也要安装一下

yum install libpng-devel
           
Centos7 LAMP服务源码搭建

安装成功,接下来

make

的时候又报错了

Centos7 LAMP服务源码搭建

老师也出现了这个问题,最后发现是我们在

vim /usr/local/gd2/include/gd_io.h

编辑这个文件的时候,那一行加错位置了,应该加在这个地方

Centos7 LAMP服务源码搭建

修改好之后保存,再次进入php目录进行make编译

Centos7 LAMP服务源码搭建

出现这个页面就没什么问题了继续

make insatll

Centos7 LAMP服务源码搭建

终于不报错了

创建一个存放配置文件的目录

[root@localhost php-5.4.25]# mkdir /usr/local/php/etc
           

复制一下主配置文件

[root@localhost php-5.4.25]# cp php.ini-production /usr/local/php/etc/php.ini
           
#老师的配置文件存在的目录
vim /usr/local/apache2/etc
#但我的是在/etc目录下
vi /etc/httpd/httpd.conf
#只是目录不同而已,其他修改都一样
           

往下面拉,找了好久才找到,添加指定的那一行即可保存退出

Centos7 LAMP服务源码搭建

重启apache

/usr/local/apache2/bin/apachectl restart
           

测试

apache与php

下面就进行测试,在

/usr/local/apache2/htdocs/

目录下创建一个

index.php

,写入

<?php
	phpinfo();
>
           

进行访问

Centos7 LAMP服务源码搭建

OK,说明apache能与php一同工作了

apache与MySQL

下面进行测试apache是否能和MySQL一起工作

在index.php页面写入如下代码即可测试

<?php
$link=mysql_connect('localhost','root','123456');
if($link) echo "hello,lemon";
mysql_close();
?>        
           
Centos7 LAMP服务源码搭建

说明mysql能与apache一起工作

因为命令式的mysql很难去操作,所以安装一下phpmyadmin

[root@localhost mysql]# cd /usr/src/lamp/
[root@localhost lamp]# cp -r phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin
           
[root@localhost phpmyadmin]# cp config.sample.inc.php config.inc.php 
#修改下访问类型
vim config.inc.php 
#将cookie改成http
           

总结

下一篇: 无题