天天看點

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
           

總結

下一篇: 無題