日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2-21-源码编译安装LAMP

發(fā)布時間:2024/10/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2-21-源码编译安装LAMP 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

編譯安裝LAMP所需要及其所使用的源碼版本:

httpd version:httpd-2.4.16

apr version:apr-1.5.2

pcre version:pcre-8.37

apr-util version:apr-util-1.5.4

mysql version:mysql-5.6.26

php version:php-5.6.13

1 安裝之前注意事項

1.1 LAMP源碼編譯的基礎(chǔ)環(huán)境

[root@xuegod1 ~]# cat /proc/version

Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016

[root@xuegod1 ~]# uname -a

Linux xuegod1.cn 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

6系列64位系統(tǒng)

1.2 確保系統(tǒng)的干凈的系統(tǒng),不要和現(xiàn)在源碼編譯安裝的軟件沖突

不要在一個系統(tǒng)上同時存在 RPM-Apache+源碼-Apache

建議在編譯之前,把開發(fā)包組安裝:

"Development Tools"和 "Development Libraries"

[root@xuegod1 ~]# yum groupinstall "Development Tools" "Development Libraries" ?[root@xuegod1 ~]# yum install gcc gcc-c++ openssl-devel -y

所有軟件

[root@xuegod1 ~]# ls

apr-1.5.2.tar.gz??????? httpd-2.4.16.tar.bz2? pcre-8.37.tar.bz2

apr-util-1.5.4.tar.bz2? mysql-5.6.26.tar.gz?? php-5.6.13.tar.bz2

?

1.3 apr和apr-util依賴

apr和apr-util獨(dú)立編譯

[root@xuegod1 ~]# tar xf apr-1.5.2.tar.gz -C /usr/local/src/ && tar xf apr-util-1.5.4.tar.bz2 -C /usr/local/src/

[root@xuegod1 ~]# cd /usr/local/src/apr-1.5.2/ && ./configure --prefix=/usr/local/apr && make -j 4 && make install

[root@xuegod1 apr-util-1.5.4]# cd ../apr-util-1.5.4/ && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make -j 4 && make install

[root@xuegod1 ~]# cd && tar xf pcre-8.37.tar.bz2 -C /usr/local/src/

[root@xuegod1 ~]# cd /usr/local/src/pcre-8.37/ && ./configure --prefix=/usr/local/pcre && make -j 4 && make install && cd

2 Apache源碼編譯

2.1 依賴環(huán)境安裝完成,開始編譯安裝apache

[root@xuegod1 ~]# tar xvf httpd-2.4.16.tar.bz2 -C /usr/local/src/ && cd /usr/local/src/http-2.4.16

[root@xuegod1 httpd-2.4.16]# ./configure --prefix=/usr/local/apache2.4 --enable-so --enable-rewrite --enable-ssl --with-pcre=/usr/local/pcre/ --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event && make -j 4 && make install

?

--prefix=/usr/local/apache2.4 #安裝路徑

--enable-so #支持動態(tài)加載模塊

--enable-rewrite #支持網(wǎng)站地址重寫

--enable-ssl #支持SSL加密

--with-pcre=/usr/local/pcre #pcre路徑

--with-apr=/usr/local/apr #apr路徑

--with-apr-util=/usr/local/apr-util #apr-util路徑

一共有三種穩(wěn)定的MPM(Multi-Processing Module,多進(jìn)程處理模塊)模式。它們分別是prefork,worker和event,它們同時也代表這Apache的演變和發(fā)展。

2.2 配置Apache的啟動腳本

[root@xuegod1 ~]# cp /usr/local/apache2.4/bin/apachectl ?/etc/init.d/apache2.4

若是你按照我們實驗環(huán)境安裝了桌面,那么需要停掉httpd服務(wù),若不是,則不需要

[root@xuegod1 ~]# /etc/init.d/httpd stop

[root@xuegod1 ~]# chkconfig httpd off

?

編輯啟動腳本文件

[root@xuegod1 ~]# vim /etc/init.d/apache2.4

#!/bin/sh

# chkconfig: 2345 64 36

#這個是啟動級別的服務(wù),2345是指那些級別啟動,64是開啟順序,應(yīng)該在network服務(wù)的后面,36是關(guān)閉順序,應(yīng)該在network的前

面,這里并不是注釋

#默認(rèn)network的是:2345 10 90

# description: Apache2.4.16 start script #描述字段,有了這兩個字段,就可以用chkconfig命令控制

[root@xuegod1 ~]# service apache2.4 start

[root@xuegod1 ~]# chkconfig apache2.4 on

2.3 Apache安裝完成需要注意的地方

[root@xuegod1 ~]# ps -aux|grep apache? //源碼編譯apache,運(yùn)行用戶為deamon

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root????? 56746? 0.0? 0.0? 72236? 2220 ???????? Ss?? 20:10?? 0:00 /usr/local/apache2.4/bin/httpd -k start

daemon??? 56747? 0.0? 0.0 416496? 4108 ???????? Sl?? 20:10?? 0:00 /usr/local/apache2.4/bin/httpd -k start

daemon??? 56748? 0.0? 0.0 416496? 4112 ???????? Sl?? 20:10?? 0:00 /usr/local/apache2.4/bin/httpd -k start

daemon??? 56749? 0.0? 0.0 416496? 4116 ???????? Sl?? 20:10?? 0:00 /usr/local/apache2.4/bin/httpd -k start

root????? 56836? 2.0? 0.0 103316?? 840 pts/0??? S+?? 20:11?? 0:00 grep apache

[root@xuegod1 ~]# id daemon?? //編譯安裝運(yùn)行用戶身份是daemon

uid=2(daemon) gid=2(daemon) groups=2(daemon),1(bin),4(adm),7(lp)

[root@xuegod1 ~]# useradd -M -s /sbin/nologin apache ?//創(chuàng)建一個用戶用來運(yùn)行apache

[root@xuegod1 ~]# vim /usr/local/apache2.4/conf/httpd.conf ?//修改配置文件改變apache運(yùn)行身份

User apache #運(yùn)行用戶

Group apache #運(yùn)行組,創(chuàng)建apache的時候已經(jīng)即時創(chuàng)建了apache這個組

[root@xuegod1 ~]# id apache

uid=500(apache) gid=500(apache) groups=500(apache)

更改目錄權(quán)限

[root@xuegod1 ~]# chown -R apache:apache /usr/local/apache2.4/? //默認(rèn)是root,改為apache

3 MYSQL源碼編譯

Mysql 5.5.15 以后,使用了新的 cmake 編譯方式,所以先安裝 cmake。 以前的版本直接 configure然后make ,make install ,對于5.5.16的后續(xù)版

本,將需要先使用cmake之后再make,然后make install

CMake 是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的 makefile 或者 project 文件,能

測試編譯器所支持的 C++特性,類似 UNIX 下的automake。 只是 CMake 的建構(gòu)檔取名為 CmakeLists.txt。Cmake 并不直接建構(gòu)出最終的軟件,而是產(chǎn)生標(biāo)

準(zhǔn)的建構(gòu)檔(如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces),然后再依一般的建構(gòu)方式使用。這使得熟悉某個集成開發(fā)環(huán)境

(IDE)的開發(fā)者可以用標(biāo)準(zhǔn)的方式建構(gòu)他的軟件,這種可以使用各平臺的原生建構(gòu)系統(tǒng)的能力是 CMake 和 SCons 等其他類似系統(tǒng)的區(qū)別之處。

3.1 解決依賴

[root@xuegod1 ~]# yum install -y cmake ncurses-devel? //gcc等相關(guān)在編譯apache已安裝

3.2 編譯安裝mysql

安裝之前使用 yum remove mysql 確保沒有安裝MySQL

[root@xuegod1 ~]# yum remove mysql* -y

[root@xuegod1 ~]# yum remove -y mysql

[root@xuegod1 ~]# rpm -qa|grep mysql

mysql-libs-5.1.73-7.el6.x86_64

[root@xuegod1 ~]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64

[root@xuegod1 ~]#

[root@xuegod1 ~]# tar xf mysql-5.6.26.tar.gz -C /usr/local/src/ ; cd /usr/local/src/mysql-5.6.26

[root@xuegod1 mysql-5.6.26]# useradd -M -s /sbin/nologin mysql??? //創(chuàng)建mysql運(yùn)行用戶

[root@XueGod63 mysql-5.6.26]# cmake \

?-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

?-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

?-DDEFAULT_CHARSET=utf8 \

?-DDEFAULT_COLLATION=utf8_general_ci \

?-DWITH_EXTRA_CHARSETS=all \

?-DWITH_MYISAM_STORAGE_ENGINE=1\

?-DWITH_INNOBASE_STORAGE_ENGINE=1\

?-DWITH_MEMORY_STORAGE_ENGINE=1\

?-DWITH_READLINE=1\

?-DENABLED_LOCAL_INFILE=1\

?-DMYSQL_DATADIR=/usr/local/mysql/data \

?-DMYSQL-USER=mysql

***********************************參數(shù)解釋******************************************************************************

DCMAKE_INSTALL_PREFIX #制定mysql的安裝根目錄,目錄在安裝的時候會自動創(chuàng)建,這個值也可以在服務(wù)器

啟動時,用--basedir來設(shè)置

DMYSQL_UNIX_ADDR #服務(wù)器與本地客戶端進(jìn)行通信的Unix套接字文件,必須是絕對路徑,默認(rèn)位

置/tmp/mysql.sock,可以在服務(wù)器啟動時,用--socket改變

DDEFAULT_CHARSET #mysql默認(rèn)使用的字符集,不指定將默認(rèn)使用Latin1西歐字符集

DDEFAULT_COLLATION #默認(rèn)字符校對

DWITH_EXTRA_CHARSETS #制定mysql拓展字符集,默認(rèn)值也是all支持所有的字符集

DWITH_MYISAM_STORAGE_ENGINE

DWITH_INNOBASE_STORAGE_ENGINE

DWITH_MEMORY_STORAGE_ENGINE

#靜態(tài)編譯MYISAM,INNOBASE,MEMORY存儲引擎到MYSQL服務(wù) 器,這樣MYSQL就支持這三種存儲引擎

DWITH_READLINE #支持readline庫

DENABLED_LOCAL_INFILE #允許本地倒入數(shù)據(jù),啟用加載本地數(shù)據(jù)

DMYSQL_DATADIR #mysql數(shù)據(jù)庫存放路徑

DMYSQL-USER #運(yùn)行mysql的用戶

?

[root@xuegod1 mysql-5.6.26]# make -j 4 && make install

?

這些編譯參數(shù)的幫助尋找方法:
http://www.mysql.com→→Documentation→→選擇對應(yīng)的版本(5.6)→→HTML Online→→View→→Installation & Upgrades→→Installing MySQL from Source →→MySQL Source-Configuration Options→→http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

3.3 配置mysql

[root@xuegod1 mysql-5.6.26]# cd && chown -R mysql:mysql /usr/local/mysql/ ?//屬主屬組更改

[root@xuegod1 ~]# cp /usr/local/mysql/support-files/my-default.cnf? /etc/my.cnf? //覆蓋原配置文件

[root@xuegod1 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld //啟動腳本

[root@xuegod1 ~]# vim /etc/init.d/mysqld? //更改啟動腳本中指定mysql位置

basedir=

datadir=

#修改為

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

[root@xuegod1 ~]# chkconfig mysqld on //開機(jī)啟動

3.4 初始化數(shù)據(jù)庫

[root@XueGod63 ~]# /usr/local/mysql/scripts/mysql_install_db \

--defaults-file=/etc/my.cnf \

--basedir=/usr/local/mysql/\

--datadir=/usr/local/mysql/data/\

--user=mysql

#類似于在rpm安裝的時候啟動數(shù)據(jù)庫彈出的初始化消息

等同于這樣:

[root@xuegod1 ~]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf? --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

出現(xiàn)兩個OK表示安裝成功

?

[root@xuegod1 ~]# ls /usr/local/mysql/data/??? //初始化看這個下面有無mysql和test等數(shù)據(jù)庫

ibdata1? ib_logfile0? ib_logfile1? mysql? performance_schema? test

[root@xuegod1 ~]# ln -s /usr/local/mysql/bin/* /bin/ //這個里面是部分命令,讓系統(tǒng)直接調(diào)用

[root@xuegod1 ~]# service mysqld start??? ?//啟動數(shù)據(jù)庫

Starting MySQL..... SUCCESS!

[root@xuegod1 ~]# mysql_secure_installation?? //初始安全設(shè)置(設(shè)置root密碼,123456)

[root@xuegod1 ~]# mysql -uroot -p123456? //測試登錄(OK)

4 編譯安裝配置PHP

PHP原始為Personal Home Page的縮寫,已經(jīng)正式更名為 "PHP: Hypertext Preprocessor"。

Apache對于php的解析,就是通過眾多Module中的php Module來完成的,把php最終集成到Apache系統(tǒng)中,還需要對Apache進(jìn)行一些必要的設(shè)置!

4.1 解決依賴

[root@xuegod1 ~]# yum install -y libxml2-devel

[root@xuegod1 ~]# tar xf php-5.6.13.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/php-5.6.13

4.2 正式安裝

[root@xuegod1 php-5.6.13]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php

?

--prefix #指定安裝路徑

--with-apxs2 #用apache的apxs工具將php編譯成apache的一個模塊

--with-mysql #與mysql結(jié)合,如果不跟路徑,編譯出來的版本將是低版本

--with-config-file-path #php的主配置文件php.ini路徑

看到下面一段內(nèi)容,表示configure成功

Thank you for using PHP.

config.status: creating php5.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/cgi/php-cgi.1

config.status: creating ext/phar/phar.1

config.status: creating ext/phar/phar.phar.1

config.status: creating main/php_config.h

config.status: executing default commands

[root@xuegod1 php-5.6.13]# make -j 4 ; make install ; cd /usr/local/src/php-5.6.13

[root@xuegod1 php-5.6.13]# cp php.ini-production /usr/local/php/php.ini ; cd? //php配置文件

4.3 檢測編譯安裝結(jié)果

只有有下面這兩個文件(模塊),代表我們的apache就可以支持php了

[root@xuegod1 ~]# ll /usr/local/apache2.4/modules/httpd.exp

-rw-r--r-- 1 apache apache 14212 Jun? 7 20:04 /usr/local/apache2.4/modules/httpd.exp

[root@xuegod1 ~]# ll /usr/local/apache2.4/modules/libphp5.so

-rwxr-xr-x 1 root root 26411241 Jun? 7 22:36 /usr/local/apache2.4/modules/libphp5.so

4.4 配置Apache支持PHP

[root@xuegod1 ~]# vim /usr/local/apache2.4/conf/httpd.conf

……

248 <IfModule dir_module>

249 DirectoryIndex index.html index.php #添加index.php

250 </IfModule>

……

376 AddType application/x-compress .Z

377 AddType application/x-gzip .gz .tgz #上面兩行是以前有的

378 AddType application/x-httpd-php ?.php #下面兩行是添加的,需要添加以支持PHP

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

修改完后重啟一下apache服務(wù)

[root@xuegod1 ~]# service apache2.4 restart

測試:

[root@xuegod1 ~]# vim /usr/local/apache2.4/htdocs/index.php

<?php

??? phpinfo();

?>

然后用客戶端瀏覽器打開此頁面

?

轉(zhuǎn)載于:https://www.cnblogs.com/hailun1987/p/6958151.html

總結(jié)

以上是生活随笔為你收集整理的2-21-源码编译安装LAMP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。