1、編譯環境及各軟件版本
php
不介紹LAMP了,你懂的。html
如下爲本次編譯環境及各軟件版本:
mysql
linux | web服務器 | php | mysql |
CentOS 6.4 | httpd-2.4.9 | php-5.4.26 | mysql-5.5.33-linux2.6-x86_64 |
2、編譯安裝LAMPlinux
編譯安裝LAMP和安裝其它軟件是同樣的,可是安裝順序是,PHP必須放到最後安裝,安裝apache時要先安裝兩個組件,apr和apr-util。
web
一、編譯安裝apachesql
(1)、安裝httpd必要的組件apr。從httpd的官網下載apr-1.5.0.tar.bz2軟件包,解壓進入目錄,便可開始安裝。數據庫
# tar xf apr-1.5.0.tar.bz2 # cd apr-1.5.0 # ./configure --prefix=/usr/local/apr # make && make install
apr安裝成功!apache
(2)、安裝httpd必要的組件apr-util。從httpd的官網下載apr-util-1.5.3.tar.bz2軟件包,解壓進入目錄,便可開始安裝。vim
# tar xf apr-util-1.5.3.tar.bz2 # cd apr-util-1.5.3 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr # make && make install
apr-util安裝成功!bash
(3)、編譯安裝httpd-2.4.9。解壓軟件包,進入目錄,設置軟件參數。
httpd-2.4新特性:
1)、MPM支持在運行時裝載:
--enable-mpms-shared=all --with-mpm=event 把全部能啓用的mpm都編譯進來,默認使用event
2)、徹底支持event
3)、異步讀寫
4)、可以實如今每模塊及每目錄上指定日誌級別
5)、每請求配置:<If>, <Elseif>
6)、加強版的表達式分析器
7)、毫秒級的keepalive timeout
8)、基於FQDN的虛擬主機再也不須要NameVirtualHost指令
9)、對內存的佔用下降了
10)、支持使用片定義變量
11)、新增了一些模塊:mod_proxy_fcgi, mod_ratelimit, mod_request, mod_remoteip。
12)、對於基於IP的訪問控制作了修改,再也不支持使用order, allow, deny這些機制;而是統一使用require進行。
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event #各參數說明 --prefix=/usr/local/apache #指定安裝目錄 --sysconfdir=/etc/httpd #配置文件目錄 --enable-so #支持基於DSO動態加載模塊 --enable-ssl #支持ssl模塊,便可以使用https協議 --enable-cgi #支持cgi --enable-rewrite #支持url重寫模塊 --with-zlib #數據報文壓縮模塊,必需要這個模塊 --with-pcre #支持pcre --with-apr=/usr/local/apr #指定apr位置 --with-apr-util=/usr/local/apr-util #指定apr-util位置 --enable-modules=most #最大化安裝DSO模塊,即安裝經常使用模塊 --enable-mpms-shared=all #基於共享的方式安裝全部MPM模塊 --with-mpm=event #默認MPM模塊爲event
參數設置完成,並檢查成功後,就可使用make命令編譯並安裝軟件了。
make && make install
httpd-2.4.9安裝成功!
(4)、導出httpd的頭文件。
ln -sv /usr/local/apache/include /usr/include/httpd
(5)、導出httpd的幫助文件。
vim /etc/man.config #在文件內加上幫助文件路徑 MANPATH /usr/local/apache/man
(6)、給環境變量添加路徑。
編輯文件/etc/profile.d/httpd.sh,在文件內加上如下內容:
export PATH=/usr/local/apache/bin:$PATH
執行命令 source 使新的配置文件生效:
source /etc/profile.d/httpd.sh
環境變量配置成功!
(7)、添加服務腳本。
在目錄/etc/rc.d/init.d/目錄下,新建文件httpd,並添加如下控制腳本,該腳本取自httpd2.2的服務腳本。
#!/bin/bash # # httpd Startup script for the Apache HTTP Server # # chkconfig: - 85 15 # description: Apache is a World Wide Web server. It is used to serve \ # HTML files and CGI. # processname: httpd # config: /etc/httpd/httpd.conf # config: /etc/sysconfig/httpd # pidfile: /var/run/httpd.pid # Source function library. . /etc/rc.d/init.d/functions if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi # Start httpd in the C locale by default. HTTPD_LANG=${HTTPD_LANG-"C"} # This will prevent initlog from swallowing up a pass-phrase prompt if # mod_ssl needs a pass-phrase from the user. INITLOG_ARGS="" # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server # with the thread-based "worker" MPM; BE WARNED that some modules may not # work correctly with a thread-based MPM; notably PHP will refuse to start. # Path to the apachectl script, server binary, and short-form for messages. apachectl=/usr/local/apache/bin/apachectl httpd=${HTTPD-/usr/local/apache/bin/httpd} prog=httpd pidfile=${PIDFILE-/var/run/httpd.pid} lockfile=${LOCKFILE-/var/lock/subsys/httpd} RETVAL=0 start() { echo -n $"Starting $prog: " LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} -d 10 $httpd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} } reload() { echo -n $"Reloading $prog: " if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then RETVAL=$? echo $"not reloading due to configuration syntax error" failure $"not reloading $httpd due to configuration syntax error" else killproc -p ${pidfile} $httpd -HUP RETVAL=$? fi echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} $httpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f ${pidfile} ] ; then stop start fi ;; reload) reload ;; graceful|help|configtest|fullstatus) $apachectl $@ RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" exit 1 esac exit $RETVAL
爲腳本添加執行權限:
chmod +x httpd
(8)、將腳本添加至服務。
(9)、修改配置文件/etc/httpd/httpd.conf。
在文件內添加PID文件路徑:
PidFile "/var/run/httpd.pid"
修改根目錄爲/var/www/html:
(10)、啓動服務,測試服務是否添加成功。
查看 80 端口是否被監聽
二、編譯安裝mysql-5.5.33-linux2.6-x86_64
mysql有好幾個可安裝的版本:
a、操做系統自帶的rpm包
b、MySQL官方rpm包
c、通用二進制格式
d、源碼編譯
此處咱們使用的是二進制已編譯好的版本,因此咱們直接把軟件包解壓至軟件安裝目錄便可。
注意:基於這種已編譯好的方式安裝mysql,mysql軟件包必須解壓安裝至/usr/local目錄,而且安裝目錄必須爲mysql。
(1)、添加系統用戶mysql,用於做mysql軟件的運行用戶。
groupadd -r mysql useradd -g mysql -r -s /sbin/nologin -d /mysqldata/data mysql mkdir -p /mysqldata/data chown -R mysql:mysql /mysqldata/data/
(2)、解壓軟件。
tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local
使用原目錄建立一個軟連接mysql,這樣之後升級也方便:
(3)、查看安裝幫助文檔,INSTALL-BINARY 能夠知道接下來的操做
修改mysql目錄下全部文件的權限爲mysql。
(4)、運行目錄scripts下的腳本mysql_install_db,建立mysql數據庫。
scripts/mysql_install_db --user=mysql --datadir=/mysqldata/data
--user: 指定mysqld服務運行的用戶
--datadir:指定mysql數據庫存放位置
(5)、將mysql軟件目錄全部文件的權限改成root。
(6)、爲mysql提供主配置文件,若是系統內存大於512M,則使用my-large.cnf文件做爲系統配置文件。
並修改此文件中thread_concurrency的值爲你的CPU個數乘以2,好比這裏使用以下行:
thread_concurrency = 2
另外還須要添加以下行指定mysql數據文件的存放位置:
datadir = /mysqldata/data
(7)、爲mysql提供sysv服務腳本:
(8)、將mysql添加至服務列表:
(9)、爲了使mysql的安裝符合系統使用規範,輸出mysql的man手冊至man命令的查找路徑:
編輯/etc/man.config,添加以下行便可:
MANPATH /usr/local/mysql/man
(10)、輸出mysql的頭文件至系統頭文件路徑/usr/include,經過簡單的建立連接實現:
ln -sv /usr/local/mysql/include /usr/include/mysql
(11)、輸出mysql的庫文件給系統庫查找路徑:
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf ldconfig
(12)、修改PATH環境變量,讓系統能夠直接使用mysql的相關命令。編輯文件/etc/profile.d/mysql.sh,添加如下幾行:
export $PATH=/usr/local/mysql/bin:$PATH
(13)、啓動服務,並使用mysql客戶端給root用戶添加密碼。
使用mysql客戶端工具,mysql鏈接mysql數據庫,並給root添加密碼:
(14)、刪除無用賬號,給root賬號授與mysql數據庫最大權限。
刪除密碼爲空的mysql用戶:
給root用戶受權:
(15)、查看root登陸密碼是否可使用:
三、編譯安裝php-5.4.26
此處咱們把PHP編譯成apache的一個模塊,讓apache管理php工做。
(1)、解壓PHP軟件包,並配置相關安裝參數。
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts # #參數說明: --prefix=/usr/local/php #php安裝路徑 --with-mysql=/usr/local/mysql #mysql軟件路徑 --with-openssl #支持ssl --with-mysqli=/usr/local/mysql/bin/mysql_config #支持mysqli接口 --enable-mbstring #支持多字節字符串,用於支持中文 --with-freetype-dir #支持freetype字體解析工具,需先安裝freetype-devel軟件包 --with-jpeg-dir #支持處理jpeg圖片 --with-png-dir #支持處理png圖片 --with-zlib #支持數據報文zlib壓縮 --with-libxml-dir=/usr #指定解析xml庫的文件的路徑 --enable-xml #支持解析xml --enable-sockets #支持基於sockets通訊 --with-apxs2=/usr/local/apache/bin/apxs #指定apxs工具路徑 --with-config-file-path=/etc #配置文件路徑 --with-config-file-scan-dir=/etc/php.d #指定擴展配置文件目錄 --with-bz2 #支持bz2壓縮格式 --enable-maintainer-zts #對應apache的MPM模塊worker或event
(2)、編譯安裝php。
make make test make install
(3)、爲php提供配置文件:
(4)、編輯apache配置文件/etc/httpd/httpd.conf,讓apache支持PHP。
在配置文件中添加如下兩行:
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
定位至DirectoryIndex index.html,修改成:
DirectoryIndex index.php index.html
(5)、從新啓動apache,測試PHP是否安裝配置成功。在網站根目錄/var/www/html下編輯首頁index.php文件:
<?php phpinfo(); ?>
3、測試環境
lamp的安裝基本完成了,咱們隨便弄個PHP網站程序測試一下吧。
一、新建一個虛擬主機,www.wubinary.com。
編輯httpd配置文件,導入vhost模塊及虛擬主機配置文件:
LoadModule vhost_alias_module modules/mod_vhost_alias.so Include /etc/httpd/extra/httpd-vhosts.conf
註釋掉網站根目錄:
#DocumentRoot "/var/www/html"
編輯配置文件/etc/httpd/extra/httpd-vhosts.conf,配置以下虛擬主機:
<VirtualHost *:80> ServerAdmin admin@wubinary.com DocumentRoot "/var/www/html/joomla" ServerName www.wubinary.com ErrorLog "logs/wubinary.com.error_log" CustomLog "logs/wubinary.com-access_log" common </VirtualHost>
從新啓動服務。
二、下載一套網站程序joomla,解壓至/var/www/html/joomla目錄。
三、新建一個數據庫joomla及數據庫用戶joomlauser:
四、本地客戶端hosts文件綁定域名,打開www.wubinary.com就能夠開始安裝網站程序了。
安裝成功了!
五、使用httpd自帶的性能測試工具ab,測試一下服務器的性能:
命令:
ab -c 模擬的併發數 -n 總請求數 http://www.domain.com
測試:
ab -c 5 -n 50 http://www.wubinary.com/index.php
使用ab命令5個併發,50條請求測試httpd性能以下:
每秒執行2.95條請求,能夠看出性能好差。。。。。