搭建LAMP環境
搭建LAMP環境
安裝環境:
RedHat6.464位
最小化安裝
IP地址:2.2.2.6
一、LAMP環境組成
1、Linux
Linux是免費開源軟體,這意味著原始碼可用的作業系統。
2、Apache
Apache是使用中最受歡迎的一個開放原始碼的WEB伺服器軟體。
3、MySQL
MySQL是多執行緒、多使用者的SQL資料庫管理系統。
4、PHP
PHP是一種程式語言最初設計生產動態網站。PHP是主要用於伺服器端的應用程式軟體。Perl和Python類似。
二、LAMP環境安裝前準備
1、下載好安裝所需要的包並上傳到Linux中;
2、確認磁碟空間大小是否足夠;
3、掛載光碟,搭建yum源;
4、安裝編譯工具gcc、gcc-c++;
5、關閉Apache和MySQL服務(安裝時如果是最小化安裝可省略);
6、關閉不需要的服務,關閉SELinux和防火牆;
7、關閉不需要的服務;
8、拷貝原始碼包,並解壓縮;
9、編譯安裝;
三、編譯安裝前準備
1、下載好安裝所需要的包並上傳到Linux中(有安裝包可忽略);
CentOS-Media.repo
下載地址:
http://yunpan.cn/cHVKxVfnqn2vR訪問密碼b875
LAMP
下載安裝包:
http://yunpan.cn/cHVsrbBmz23pU訪問密碼457c
上傳(Xshell自帶上傳工具):
2、確認磁碟空間大小是否足夠;
3、掛載光碟,搭建yum源;
mkdir/mnt/cdrom
mount/dev/cdrom/mnt/cdrom/
#掛載RedHat6.464位系統光碟
cd/etc/yum.repos.d/
mvrhel-source.reporhel-source.repo.bak
#讓預設的yum源不生效。
#拷貝一個CentOS664位的yum包過來,因為RedHat的yum源是收費的。
viCentOS-Media.repo
#修改yum源路徑如下:
[c6-media]
name=CentOS-$releasever-Media
baseurl=file:///mnt/cdrom/
#file:///media/cdrom/
#file:///media/cdrecorder/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
yumlist
#測試yum源是否搭建成功
4、安裝編譯工具gcc、gcc-c++;
yum-yinstallgcc*
yum-yinstallmake
#由於系統是最小化安裝,是沒有安裝make的。
5、關閉Apache和MySQL服務(安裝時如果是最小化安裝可省略);
servicehttpdstop
servicemysqldstop
#關閉Apache、和MySQL服務。
chkconfighttpdoff
chkconfigmysqldoff
#關閉Apache、和MySQL開機自啟動。
6、關閉不需要的服務,關閉SELinux和防火牆;
vi/etc/sysconfig/selinux
#修改這個選項,修改這個檔案後要重啟才會生效。
iptables-F
#關閉防火牆
setenforce0
7、關閉不必要自啟動服務
yum-yinstallntsysv
#ntsysv
以下列出服務可保持自啟動,未列出的服務都可以關閉:
atd
crond#atd、crond計劃任務
irqbalance
microcode_ctl#系統irq埠呼叫,系統服務
network#網路設定
sendmail#郵件
sshd#遠端管理
syslog#系統日誌
#實驗情況下此步可免
8、拷貝原始碼包,並解壓縮;
mkdir/mnt/cdrom/
#新建掛載點
mount/dev/cdrom/mnt/cdrom/
#掛載安裝包光碟
cp-r/mnt/cdrom//tmp/
#安裝包拷貝到臨時目錄裡
cd/tmp/lamp/
vish.sh
#寫一個批量解壓縮的工具,這樣比較快。
#!/bin/bash
ls*.tar.gz>>tmp.txt
ls*.gz>>tmp.txt
foriin$(cattmp.txt)
do
tarzxf$i
done
rm-rftmp.txt
#儲存退出
chmod755sh.sh
./sh.sh
#執行指令碼進行解壓縮
以下是所有安裝包:
9、如何確定報錯:
1)安裝過程停止
2)停止後,一頁介面中出現error或者warning
如何確定安裝成功:
進入安裝目錄,確認安裝程式出現,就是成功
由於系統是最小化安裝,很多工具會沒有,比如make:
yum-yinstallmake
四、編譯安裝
注意事項:
原始碼安裝也是有依賴關係的,所以先要安裝一些底層的函式庫;
安裝時按步驟來,如果安裝中漏掉了一個安裝包,那麼最好就是很那個包開始,後面都重新安裝;
安裝過程寫錯字母之類的,那麼這個包從新裝;
安裝原始碼包,在32位系統和64位也是不一樣的。
1、安裝libxml2
libxml是一個用來解析XML文件的函式庫。
yum-yinstalllibxml2-devel
#如果報錯,安裝下面這個包再重灌
yum-yinstallpython-devel
#這個包必須有
cd/tmp/lamp/libxml2-2.9.1
./configure--prefix=/usr/local/libxml2/
make
makeinstall
#這裡不是報錯,不用管。
2、安裝libmcrypt
libmcrypt是加密演算法擴充套件庫。
cd../libmcrypt-2.5.8
./configure--prefix=/usr/local/libmcrypt/
make
makeinstall
#安裝libltdl,也在libmcrypt原始碼目錄中,非新軟體
cd../libmcrypt-2.5.8/libltdl
./configure--enable-ltdl-install
make
makeinstall
3、安裝mhash
Mhash是基於離散數學原理的不可逆向的php加密方式擴充套件庫,其在預設情況下不開啟。mhash的可以用於建立校驗數值,訊息摘要,訊息認證碼,以及無需原文的關鍵資訊儲存(如密碼)等。
cd../mhash-0.9.9.9
./configure&&make&&makeinstall
4、安裝mcrypt
mcrypt是php裡面重要的加密支援擴充套件庫。Mcrypt庫支援20多種加密演算法和8種加密模式
cd../mcrypt-2.6.8
LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib./configure--with-libmcrypt-prefix=/usr/local/libmcrypt
#以上為一條命令。LD_LIBRARY_PATH用於指定libmcrypt和mhash的庫的位置。
--with-libmcrypt-prefix用於指定libmcrypt軟體位置
make
makeinstall
#mcrypt沒有安裝完成,這是php的模組,需要等php安裝完成之後,再繼續安裝
5、安裝zlib
zlib是提供資料壓縮用的函式庫,zlib使用DEFLATE演算法,最初是為libpng函式庫所寫的,後來普遍為許多軟體所使用。此函式庫為自由軟體,使cd.用zlib授權。
cd../zlib-1.2.3
./configure
make
makeinstall>>/root/zlib.log
viMakefile
#找到CFL_AGS=-O3–DUSE_MMAP
#在後面加入–fPIC變成CFLAGS=-O3–DUSE_MMAP–fPIC
註釋:
zlib指定安裝目錄可能造成libpng安裝失敗,故不指定,為解除安裝方便,建議makeinstall執行結果輸出到安裝日誌檔案,便於日後解除安裝。
6、安裝libpng
libpng軟體包包含libpng庫.這些庫被其他程式用於解碼png圖片。
cd../libpng-1.2.31
./configure--prefix=/usr/local/libpng
make
makeinstall
yum–yinstalllibtool
#這個包必須裝
7、安裝jpeg6
用於解碼.jpg和.jpeg圖片
mkdir/usr/local/jpeg6
mkdir/usr/local/jpeg6/bin
mkdir/usr/local/jpeg6/lib
mkdir/usr/local/jpeg6/include
mkdir-p/usr/local/jpeg6/man/man1
#目錄必須手工建立
cd../jpeg-6b/
./configure--prefix=/usr/local/jpeg6/--enable-shared--enable-static
make
#報錯了,以下處理方法
Chmod–R777*
然後進入jpeg-6b的原始碼目錄,然後執行以下步驟,切記!COPY到當前目錄注意後面的點(.)
cp/usr/share/libtool/config/config.sub.
cp/usr/share/libtool/config/config.guess.
也就是把libtool裡面的兩個配置檔案拿來覆蓋掉jpeg-6b目錄下的對應檔案
chmoda+x*
makeclean
./configure--prefix=/usr/local/jpeg6/--enable-shared--enable-static
make
#如果沒有報錯,則繼續下面
makeinstall
*--enable-shared與--enable-static引數分別為建立共享庫和靜態庫使用的libtool
8、安裝freetype
FreeType庫是一個完全免費(開源)的、高質量的且可移植的字型引擎,它提供統一的介面來訪問多種字型格式檔案,包括TrueType,OpenType,Type1,CID,CFF,WindowsFON/FNT,X11PCF等。支援單色點陣圖、反走樣點陣圖的渲染。FreeType庫是高度模組化的程式庫,雖然它是使用ANSIC開發,但是採用面向物件的思想,因此,FreeType的使用者可以靈活地對它進行裁剪。
cd../freetype-2.3.5
./configure--prefix=/usr/local/freetype/
make
makeinstall
9、安裝GD庫
GD庫,是php處理圖形的擴充套件庫,GD庫提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。在網站上GD庫通常用來生成縮圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站資料生成報表等。
mkdir/usr/local/gd2
cd../gd-2.0.35
*png錯誤,修改方法:
vigd_png.c
把#include“png.h”替換為#include"/usr/local/libpng/include/png.h"
./configure--prefix=/usr/local/gd2/--with-jpeg=/usr/local/jpeg6/--with-freetype=/usr/local/freetype/--with-png=/usr/local/libpng/
make
makeinstall
註釋:
若前面配置zlib時沒有指定安裝目錄,gd配置時不要新增--with-zlib=/usr/local/zlib/引數
10、安裝Apache
APR(APACHE可移植執行庫)
主要為上層的應用程式提供一個可以跨越多作業系統平臺使用的底層支援介面庫。
onfigure:error:BundledAPRrequestedbutnotfoundat./srclib/.Downloadandunpackthecorrespondingaprandapr-utilpackagesto./srclib/.
#如果報錯,則:
cd/tmp/lamp
cp-rapr-1.4.6httpd-2.4.7/srclib/apr
cp-rapr-util-1.4.1httpd-2.4.7/srclib/apr-util
#解壓apr和apr-util,複製並取消版本號
mod_deflate.la錯誤1
#如果報錯,則:
cd/tmp/lamp/zlib-1.2.3
./configure
viMakefile
找到CFLAGS=-O3-DUSE_MMAP
在後面加入-fPIC,即變成CFLAGS=-O3-DUSE_MMAP-fPIC
make&&makeinstall
#關於這裡的報錯,其實前面是有安裝這個工具的,也試過幾次在前面修改,但是都沒有用,建議在這裡安裝Apache前直接先安裝。
Pcre基於perl的相容的正則表示式的支援
configure:error:pcre-configforlibpcrenotfound.PCREisrequiredandavailablefrom
#如果報錯,則:
tarzxvfpcre-8.34.tar.gz
cd/tmp/lamp/pcre-8.34
./configure&&make&&makeinstall
安裝apache
cd../httpd-2.4.7
./configure--prefix=/usr/local/apache2/--sysconfdir=/usr/local/apache2/etc/--with-included-apr--enable-so--enable-deflate=shared--enable-expires=shared--enable-rewrite=shared
make
makeinstall
註釋:
若前面配置zlib時沒有指定安裝目錄,Apache配置時不要添加--with-z=/usr/local/zlib/引數
啟動Apache測試:
/usr/local/apache2/bin/apachectlstart
#如果啟動時報錯
#其實是已經正常啟動的,但是每次啟動看到不舒服,那麼可以這樣改:
vi/usr/local/apache2/etc/httpd.conf
查詢ServerName,找到80埠,修改前面的名稱
通過瀏覽器輸入地址訪問:http://2.2.2.6,若顯示“Itworks”即表明Apache正常工作
設定Apache系統引導時啟動:
echo"/usr/local/apache2/bin/apachectlstart">>/etc/rc.d/rc.local
註釋:
若啟動時提示/usr/local/apache2/modules/mod_deflate.so無許可權,可關閉SELinux或者執行命令chcon-ttexrel_shlib_t/usr/local/apache2/modules/mod_deflate.so,類似此類.so檔案不能載入或沒有許可權的問題,都是SELinux問題,使用命令:“chcon-ttexrel_shlib_t檔名”即可解決,MySQL和Apache也可能有類似問題。
11、安裝ncurses
Ncurses提供字元終端處理庫,包括面板和選單。它提供了一套控制游標,建立視窗,改變前景背景顏色以及處理滑鼠操作的函式。使使用者在字元終端下編寫應用程式時繞過了那些惱人的底層機制。簡而言之,他是一個可以使應用程式直接控制終端螢幕顯示的函式庫。
cd../ncurses-5.9
./configure--with-shared--without-debug--without-ada--enable-overwrite
make
makeinstall
註釋:若不安裝ncurses編譯MySQL時會報錯
*--without-ada引數為設定不編譯為ada繫結,因進入chroot環境不能使用ada;--enable-overwrite引數為定義把標頭檔案安裝到/tools/include下而不是/tools/include/ncurses目錄
*--with-shared生成共享庫
12、安裝cmake和bison
mysql在5.5以後,不再使用./configure工具,進行編譯安裝。而使用cmake工具替代了./configure工具。cmake的具體用法參考文件cmake說明。
bison是一個自由軟體,用於自動生成語法分析器程式,可用於所有常見的作業系統
yum-yinstallcmake
yum-yinstallbison
13、安裝MySQL
useraddleng
cd../mysql-5.5.23
cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DEXTRA_CHARSETS=all-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_MYISAM_STORAGE_ENGINE=1-DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_MEMORY_STORAGE_ENGINE=1-DWITH_READLINE=1-DENABLED_LOCAL_INFILE=1-DMYSQL_USER=leng-DMYSQL_TCP_PORT=3306
make
makeinstall
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql安裝位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock指定socket(套接字)檔案位置
-DEXTRA_CHARSETS=all擴充套件字元支援
-DDEFAULT_CHARSET=utf8預設字符集
-DDEFAULT_COLLATION=utf8_general_ci預設字元校對
-DWITH_MYISAM_STORAGE_ENGINE=1安裝myisam儲存引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1安裝innodb儲存引擎
-DWITH_MEMORY_STORAGE_ENGINE=1安裝memory儲存引擎
-DWITH_READLINE=1支援readline庫
-DENABLED_LOCAL_INFILE=1啟用載入本地資料
-DMYSQL_USER=leng指定mysql執行使用者
-DMYSQL_TCP_PORT=3306指定mysql埠
注意:
如果報錯,清除快取,請使用以下命令
makeclean
rmCMakeCache.txt
make
makeinstall
安裝成功後繼續執行:
#這條命令後會一直在這裡,不要等,直接回車。
設定mysql密碼
/usr/local/mysql/bin/mysqladmin-urootpassword123456
清空歷史命令history-c
*給mysql使用者root加密碼123456
*注意密碼不能寫成“123456”
/usr/local/mysql/bin/mysql-uroot-p
mysql>showdatabases;
mysql>usetest;
mysql>showtables;
mysql>\s#檢視字符集是否改為utf8
*進入mysql以後用set來改密碼
mysql>exit
*登入MySQL客戶端控制檯設定指定root密碼
重啟以後還要生效:
vi/etc/rc.local
/usr/local/mysql/bin/mysqld_safe--user=leng
14、安裝PHP
編譯前確保系統已經安裝了libtool和libtool-ltdl軟體包,安裝:
yum-yinstalllibtool*
vi/usr/local/gd2/include/gd_io.h
cd../php-5.4.25
./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
註釋:若前面配置zlib時沒有指定安裝目錄,PHP配置時不要新增--with-zlib-dir=/usr/local/zlib/引數
選項:
--with-config-file-path=/usr/local/php/etc/指定配置檔案目錄
--with-apxs2=/usr/local/apache2/bin/apxs指定apache動態模組位置
--with-mysql=/usr/local/mysql/指定mysql位置
--with-libxml-dir=/usr/local/libxml2/指定libxml位置
--with-jpeg-dir=/usr/local/jpeg6/指定jpeg位置
--with-png-dir=/usr/local/libpng/指定libpng位置
--with-freetype-dir=/usr/local/freetype/指定freetype位置
--with-gd=/usr/local/gd2/指定gd位置
--with-mcrypt=/usr/local/libmcrypt/指定libmcrypt位置
--with-mysqli=/usr/local/mysql/bin/mysql_config指定mysqli位置
--enable-soap支援soap服務
--enable-mbstring=all支援多位元組,字串
--enable-sockets支援套接字
--with-pdo-mysql=/usr/local/mysql啟用mysql的pdo模組支援
--without-pear不安裝pear(安裝pear需要連線網際網路。PEAR是PHP擴充套件與應用庫)
#如報錯找不到libltdl.so.3的檔案
可以執行ln–s/usr/local/lib/libltd.so.3/lib/
ln-s/usr/local/lib/libltdl.so.3/usr/lib
make
#有時候這一步會出現“maketest”錯誤的提示,那是要我們make之前先測試一下,可以跳過,如果不行,重灌
#一直卡在這一步幾個小時,最後還是不停的makeclean./configuremakemakeinstall,為此也糾結了半天。
makeinstall
mkdir/usr/local/php/etc
cp../php-5.4.25/php.ini-production/usr/local/php/etc/php.ini
vi/usr/local/apache2/etc/httpd.conf
#加入下面一行內容
AddTypeapplication/x-httpd-php.php.phtml.phps
重啟Apache服務:
/usr/local/apache2/bin/apachectlstop
/usr/local/apache2/bin/apachectlstart
測試:vi/usr/local/apache2/htdocs/index.php
<?php
phpinfo();
?>
通過瀏覽器輸入地址訪問:http://2.2.2.6/index.php
#有時第一次瀏覽器測試會失敗,關閉瀏覽器重啟再嘗試即可,非編譯錯誤
測試mysql:
vi/usr/local/apache2/htdocs/mysql.php
<?php
$link=mysql_connect('localhost','root','123456');
if($link)echo"Howareyou";
mysql_close();
?>
注意:
Apache無法啟動,提示cannotrestoresegmentprotafterreloc:Permissiondenied錯誤,為SELinux問題,可關閉SELinux或者執行命令。
chcon-ttexrel_shlib_t/usr/local/apache2/modules/libphp5.so
15、安裝phpMyAdmin
cd..
#退出php安裝目錄
cp-rphpMyAdmin-4.1.4-all-languages/usr/local/apache2/htdocs/phpmyadmin
cd/usr/local/apache2/htdocs/phpmyadmin/
cpconfig.sample.inc.phpconfig.inc.php
中的cookie改為:
#設定auth_type為http,即設定為HTTP身份認證模式
通過瀏覽器輸入地址訪問:http://2.2.2.6/phpmyadmin/index.php
vi/usr/local/apache2/etc/httpd.conf
#進入到配置檔案裡,查詢DirectoryIndex。
#找到這裡
#修改成如下
#將index.php這個首頁檔名加入進去,如果不加的話,後面要跟檔名,加了就不需要了,如下圖:
沒加的話,進後臺資料庫要這樣:
加了的話,可以直接這樣:
/usr/local/apache2/bin/apachectlstop
/usr/local/apache2/bin/apachectlstart
#重啟服務,登入網頁測試:
#使用者名稱為root,密碼為MySQL設定時指定的root密碼(123456)
#新建資料庫測試
#退出網頁,繼續Linux下檢視,leng資料庫是否建立成功。
/usr/local/mysql/bin/mysql-uroot-p
#資料庫建立成功
16、簡單架設一個論壇
cd/tmp/lamp/Discuz_7.2
#進入到一個架設好的論壇目錄
mvupload//usr/local/apache2/htdocs/luntan
#複製到
/usr/local/mysql/bin/mysql-uroot-p
#進入資料庫
mysql>createdatabaseluntan;
#建立一個數據庫名為luntan。
mysql>grantallonluntan.*to[email protected]'localhost'identifiedby'123456';
#許可權使用者leng以123456的密碼在本地可以訪問luntan資料庫下的所有內容。
mysql>exit
#退出資料庫
cd/usr/local/apache2/htdocs/luntan
psaux|grephttpd
#檢視網站在Linux下以什麼身份執行的。
#那麼需要給daemon使用者有許可權呼叫luntan的所有資源。
chown-Rdaemonconfig.inc.phpp_w_uploads/forumdata/uc_client/data/cache/templates/
#授權給daemon使用者可以訪問以下資料檔案和目錄。
vi/usr/local/php/etc/php.ini
改為:
/usr/local/apache2/bin/apachectlstop
/usr/local/apache2/bin/apachectlstart
#重啟服務
進入網頁輸入:
http://2.2.2.6/luntan/install/
#一個簡單的論壇就搭建好了。
用剛才設定的管理員登入試試:
#登入成功,如果想進入後臺管理,請進入管理中心,用管理員密碼登入。
轉載於:https://blog.51cto.com/576179300/1696582