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
下一篇 2016-12-19

相關推薦

  • 馬哥教育網絡班22期+第三周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     [root@zabbix ~]# who|awk '{print $1}'|sort| uniq 2、取出最后登錄到當前系統的用戶的相關信息。 &nb…

    Linux干貨 2016-08-23
  • 條件測試與基礎運算

    變量類型: 整形 數值型 字符型 byte boolen 單精度 雙精度 變量種類: 環境變量– 對所有進程有效 本地變量– 僅對當前shell有效 局部變量– 僅在函數中的某一段有效 位置變量– $1,$2,$3,$4 特殊變量– $?,$0,$*,$@,$#,$$ 變量命名法則: 1.不能出現程…

    Linux干貨 2017-04-16
  • 馬哥教育網絡班21期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]#mke2fs -t ext4 -b 2048 -m 2 -L &qu…

    Linux干貨 2016-08-15
  • 了解sed

    本博客分為四個部分:sed介紹、sed用法、sed高級用法(簡略帶過)、相關例題。通過本文可以大致了解sed命令。深度可以當成是課前預習吧。 1、sed介紹Stream EDitor, 行編輯器 sed是一種流編輯器,它一次處理一行內容。處理時,把 當前處理的行存儲在臨時緩沖區中,稱為“模式空間”( pattern space),接著用sed命令處理緩沖區中…

    Linux干貨 2017-04-25
  • netstat命令和ss命令

    詳解netstat命令和ss命令

    Linux干貨 2018-01-01
  • N27_網絡班第八周作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主機用紅色表示; #!bin/bash # for i in `seq 254`;do if ping -c 1 192.168.68.$i &> /dev/null;then echo -e “…

    2017-09-28
欧美性久久久久