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.www58058.com/64006

(0)
zhangbaozhangbao
上一篇 2016-12-19 15:42
下一篇 2016-12-19 16:08

相關推薦

  • 小練習題。【第四周】

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 home]# chmod g-rwx,o-rwx -R tuser1 2、編輯/etc/group文件,添加組hadoop。 /]# vim /etc/group …

    Linux干貨 2016-11-26
  • 操作系統,內核以及硬件之間的關系

    一般我們將計算機系統區分為硬件系統與軟件系統構成。 計算機硬件我們可以分成5大組件構成,即: 1)計算器:用于數據計算,如:CPU 2)控制器:控制數據流和指令流,與各個組件之間進行數據交互,并控制協調各個組件之間協同工作,如:主板的南橋,內橋,各個組件自身的獨立控制芯片等 3)存儲器:用戶數據的存放,如:一級/二級等內存芯片;flash芯片 4)輸入設備:…

    Linux干貨 2016-10-26
  • 分布式系統的事務處理

    當我們在生產線上用一臺服務器來提供數據服務的時候,我會遇到如下的兩個問題: 1)一臺服務器的性能不足以提供足夠的能力服務于所有的網絡請求。 2)我們總是害怕我們的這臺服務器停機,造成服務不可用或是數據丟失。 于是我們不得不對我們的服務器進行擴展,加入更多的機器來分擔性能上的問題,以及來解決單點故障問題。 通常,我們會通過兩種手段來擴展我們的數據服務: 1)數…

    Linux干貨 2016-08-15
  • N25-第十二周博客作業

    1、請描述一次完整的http請求處理過程; (1) 建立或處理連接:接收請求或拒絕請求;(2) 接收請求:接收來自于網絡上的主機請求報文中對某特定資源的一次請求的過程;(3) 處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息;(4) 訪問資源:獲取請求報文中請求的資源;從磁盤中獲取(5) 構建響應報文:(6) 發送響應報文:(7) 記錄…

    Linux干貨 2017-04-09
  • 高效運維最佳實踐(03):Redis集群技術及Codis實踐

    前言 誠如開篇文章所言,高效運維包括管理的專業化和技術的專業化。前兩篇我們主要在說些管理相關的內容,本篇說一下技術專業化。希望讀者朋友們能適應這個轉換,謝謝。 互聯網早在幾年前就已進入Web 2.0時代,對后臺支撐能力的要求,提高了幾十倍甚至幾百倍。在這個演化過程中,緩存系統扮演了舉足輕重的角色。 運維進化到今天,已經不是重復造輪子的時代。所以,我們在架構優…

    Linux干貨 2015-04-03
  • Linux Basics-Linux Bash歷史和其概念名詞解釋part1

    Linux Basics-Linux Bash歷史和其概念名詞解釋part1 閱讀本文你將知道:查看更多BashFAQ.pdf   Bash的歷史及其特性   Bash的如何工作   Bash的概念解釋   前提知識:      對linux有一定基礎而且了解Bash的…

    Linux干貨 2016-10-29
欧美性久久久久