編譯安裝amp:
a(apache):
1.http://httpd.apache.org
2.http://archive.apache.org/dist/
m(mysql/mariadb):
http://www.mysql.com/download
https://mariadb.org/download/
p(php):
https://www.php.net/releases/
組合:
httpd-2.4.27(apr-1.5.2 + apr-util-1.5.4) + mariadb-5.5.57 + php-5.6.31
編譯安裝的前提條件——完整的編譯環境:
1."development tools"和"server platform development"兩個程式包組;
2.pcre-devel
3.libevent-devel
注意:在編譯amp程式之前,需要確定沒有使用rpm程式包安裝過amp中的任何元件,包括:httpd,httpd-tools,mysql-server/mariadb-server,php,php-fpm,...
amp編譯安裝之a(apache):
1.解除安裝原有的amp
~]# rpm -q mysql-server httpd php
~]# rpm -ql httpd-tools
~]# yum erase -y httpd-tools
~]# yum erase -y php httpd mysql-server
2.安裝編譯需要的環境
~]# yum groupinstall -y "development tools"
~]# yum groupinstall -y "server platform development"
~]# yum install -y pcre-devel
~]# yum install -y libevent-devel
3.編譯安裝apr
~]# tar xf apr-1.5.2.tar.bz2
~]# cd apr-1.5.2
apr-1.5.2]# ./configure --prefix=/usr/local/apr-1.5.2
apr-1.5.2]# cat /proc/cpuinfo
//檢視虛拟機核心數#,"process"從0開始計
apr-1.5.2]# make -j 4
apr-1.5.2]# make install
4.編譯安裝apr-util
apr-1.5.2]# cd
~]# tar xf apr-util-1.5.4.tar.bz2
~]# cd apr-util-1.5.4
apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
apr-util-1.5.4]# make -j 4
apr-util-1.5.4]# make install
5.編譯安裝httpd
apr-util-1.5.4]# cd
~]# tar xf httpd-2.4.27.tar.bz2
~]# cd httpd-2.4.27
httpd-2.4.27]# ./configure --prefix=/usr/local/apache-2.4.27 --sysconfdir=/etc/httpd-2.4.27 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-apr=/usr/local/apr-1.5.2 --with-apr-util=/usr/local/apr-util-1.5.4 --with-zlib --with-pcre --with-mpm=prefork
httpd-2.4.27]# make -j 4
httpd-2.4.27]# make install
6.編譯完成後的收尾工作
1) 導出二進制檔案:
httpd-2.4.27]# vim /etc/profile.d/httpd-2.4.27.sh
export path=/usr/local/apache-2.4.27/bin:$path
httpd-2.4.27]# source /etc/profile.d/httpd-2.4.27.sh
//使用source指令(.)來使其内容生效;
2) 導出幫助文檔:
httpd-2.4.27]# vim /etc/man.config
找到"manpath"這個配置段,添加:
manpath /usr/local/apache-2.4.27/man
3) 導出頭檔案
httpd-2.4.27]# ln -sv /usr/local/apache-2.4.27/include/ /usr/include/httpd
4) 導出庫檔案
檢測是否有httpd目錄下的lib64目錄,沒有則建立:
httpd-2.4.27]# mkdir -pv /usr/local/apache-2.4.27/lib64
建立一個檔案:
httpd-2.4.27]# vim /etc/ld.so.conf.d/httpd.conf
添加:/usr/local/apache-2.4.27/lib64
完成則可進行導出:
httpd-2.4.27]# ldconfig -v
7.配置工作
因為編譯安裝的httpd.conf檔案沒有"pidfile"配置、"include"配置也沒有生效,是以要在httpd.conf主配置檔案中編輯:
httpd-2.4.27]# vim /etc/httpd-2.4.27/httpd.conf
為了規範和好看,在"serverroot"配置下添加:
pidfile /var/run/httpd-2.4.27.pid
在"include"配置段添加:
include /etc/httpd-2.4.27/extra/*.conf
8.提供sysv風格的服務管理腳本:/etc/init.d/httpd
9.測試httpd服務
1.關閉防火牆:
httpd-2.4.27]# iptables -f
2.禁用selinux:
httpd-2.4.27]# setenforce 0
3.浏覽器通路伺服器位址:
172.16.69.1
顯示:
it works!
amp編譯安裝之m(mysql/mariadb)
1.解壓縮二進制程式包到指定目錄(/usr/local)
~]# tar xf mariadb-5.5.57-linux-x86_64.tar.gz -c /usr/local
~]# cd /usr/local
2.建立用于啟動服務和管理資料的使用者群組:
3.建立資料目錄并修改相應檔案的權限:
local]# ln -sv /usr/local/mariadb-5.5.57-linux-x86_64/ mysql
local]# cd mysql
mysql]# mkdir -pv /var/lib/mysql
mysql]# chown mysql. /var/lib/mysql
4.導出二進制檔案
mysql]# vim /etc/profile.d/mariadb-5.5.57.sh
export path=/usr/local/mysql/bin:$path
mysql]# . /etc/profile.d/mariadb-5.5.57.sh
5.導出幫助文檔
mysql]# vim /etc/man.config
manpath /usr/local/mysql/man
6.導出庫檔案
mysql]# vim /etc/ld.so.conf.d/mariadb-5.5.57.conf
添加:
/usr/local/mysql/lib
7.導出頭檔案
mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
8.導出配置檔案
mysql]# ls /usr/local/mysql/support-files/
//檢視此目錄下所有以".cnf"結尾的檔案;根據伺服器的記憶體導出"my.cnf"配置檔案到指定目錄;
mysql]# cp support-files/my-large.cnf /etc/my.cnf
9.配置/etc/my.cnf
mysql]# vim /etc/my.cnf
在[mysqld]配置段添加:
datadir = /var/lib/mysql
innodb_file_per-table = on
skip_name_resolve = on
10.配置服務啟動的腳本
mysql]# cp -a support-files/mysql.server /etc/init.d/mysqld
//確定檔案已經被賦予執行的權限
若想設定開機自啟動mysql服務:
11.啟動服務測試
mysql]# service mysqld start
starting mysql.181224 16:37:52 mysqld_safe logging to '/var/lib/mysql/localhost.localdomain.err'.
181224 16:37:52 mysqld_safe starting mysqld daemon with databases from /var/lib/mysql
... error!
//發生錯誤,提示資料目錄方面錯誤
mysql]# scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql
//初始化資料庫配置
starting mysql.181224 16:43:26 mysqld_safe logging to '/var/lib/mysql/localhost.localdomain.err'.
181224 16:43:26 mysqld_safe starting mysqld daemon with databases from /var/lib/mysql
. success!
//成功啟動
mysql]# ss -tnl
mysql]# mysql
//若啟動成功進入互動式指令界面則成功編譯安裝
amp編譯安裝之p(php):
1.想要正确的編譯php-5.6.31,可能需要解決下列依賴關系:
若使用本地CD光牒的yum倉庫:
libxml2-devel
gd-devel
freetype-devel
libmcrypt-devel
2.解壓縮二進制程式包到指定目錄
~]# tar xf php-5.6.31.tar.bz2
~]# cd php-5.6.31
3.編譯安裝php
php-5.6.31]# ./configure --prefix=/usr/local/php-5.6.31 --enable-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-libxml-dir=/usr --with-zlib --with-apxs2=/usr/local/apache-2.4.27/bin/apxs --with-config-file-path=/etc/php-5.6.31.ini --with-config-file-scan-dir=/etc/php-5.6.31.d --with-gd --with-jpeg-dir --with-png-dir --with-mcrypt
php-5.6.31]# make -j 4 && make install
4.建立必編譯安裝缺少且必須的配置檔案
php-5.6.31]# cp php.ini-production /etc/php-5.6.31.ini
php-5.6.31]# mkdir -pv /etc/php-5.6.31.d
php-5.6.31]# cp sapi/fpm/php-fpm.conf /etc/php-5.6.31.d/
5.編輯配置檔案
php-5.6.31]# vim /etc/php56.d/php-fpm.conf
;;;;;;;;;;;;;;;;;;;;
; pool definitions ;
6.為php-fpm服務程式提供一個sysv風格的腳本
php-5.6.31]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
php-5.6.31]# chmod +x /etc/init.d/php-fpm
7.導出二進制檔案:
php-5.6.31]# vim /etc/profile.d/php-5.6.31.sh
export path=/usr/local/php-5.6.31/bin:$path
php-5.6.31]# . /etc/profile.d/php-5.6.31.sh
8.修改服務啟動腳本中的内容
php-5.6.31]# vim /etc/init.d/php-fpm
1) 添加一個變量:
scan_confi_dir=/etc/php56.d
2) 修改一個變量定義:
php_fpm_conf=${prefix}/etc/php-fpm.conf
改為:
php_fpm_conf=${scan_conf_dir}/php-fpm.conf
9.檢查php-fpm程序狀态:
編譯安裝xcache以加速php通路:
1.下載下傳xcache的源代碼:
http://xcache.lighttpd.net/
總結:
相比較有和沒有xcache這個元件,明顯的可以看出"requests per second"的值明顯的提高了;也就是加速的php的通路
一般來說,對于lamp架構,自行編譯安裝amp會比直接利用yum倉庫安裝amp來得更好,特别是在利用xcache完成php加速方面;因為自行編譯安裝能夠自行選擇需要的功能、子產品、元件等;雖然沒有沒有利用yum倉庫來得簡單容易,但自行編譯安裝amp也不難,隻能過程比較繁瑣,難度不大;