CentOS 6.6 x86_64安裝LAMP平台(APACHE 2.4.16+MYSQL 5.6.17+PHP 5.6.7)編譯版非yum

下載apache 所需的安裝包(apr-1.5.2.tar.gz 、apr-util-1.5.4.tar.gz、httpd-2.4.16.tar.gz、cmake-3.2.1.tar.gz、mysql-5.6.17.tar.gz)
#cd /tmp
#wget http://mirrors.axint.net/apache/httpd/httpd-2.4.16.tar.gz
#wget http://mirrors.axint.net/apache/apr/apr-1.5.2.tar.gz
#wget http://mirrors.axint.net/apache/apr/apr-util-1.5.4.tar.gz
#wget http://pkgs.fedoraproject.org/repo/pkgs/cmake/cmake-3.2.1.tar.gz/63f436aa19b5efc37017759c8d3953ca/cmake-3.2.1.tar.gz
#wget http://pkgs.fedoraproject.org/repo/pkgs/community-mysql/mysql-5.6.17.tar.gz/82114fa7c13fa3ca897b34666577d9f4/mysql-5.6.17.tar.gz
#wget http://pkgs.fedoraproject.org/repo/pkgs/libmcrypt/libmcrypt-2.5.7.tar.gz/b1be163143f8e8ed0474beeb642b3bad/libmcrypt-2.5.7.tar.gz
#wget http://tw1.php.net/get/php-5.6.7.tar.gz/from/this/mirror

解壓安裝包

#tar -zxvf httpd-2.4.16.tar.gz
#tar -zxvf apr-1.5.2.tar.gz
#tar -zxvf apr-util-1.5.4.tar.gz
#tar -zxvf cmake-3.2.1.tar.gz
#tar -zxvf mysql-5.6.17.tar.gz
#tar -zxvf libmcrypt-2.5.7.tar.gz
#tar -zxvf php-5.6.7.tar.gz

編譯安裝apache

1.安裝編譯環境:
#yum -y groupinstall 'Development tools'
#yum -y groupinstall 'Desktop Platform Development'
#yum install wget gcc gcc-c++ make re2c curl curl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel libmcrypt libmcrypt-devel zlib zlib-devel openssl openssl-devel freetype freetype-devel gd gd-devel perl perl-devel ncurses ncurses-devel bison bison-devel libtool gettext gettext-devel cmake bzip2 bzip2-devel pcre pcre-devel(yum倉庫中無libmcrypt包,故在下方需要重新便已安裝libmcrypt)

2.編譯安裝apr
#cd /usr/local/src
#tar -zxvf apr-1.5.2.tar.gz
#cd apr-1.5.2
#./configure --prefix=/usr/local/apr
make && make install

3.編譯安裝apr-util
#tar -zxvf apr-util-1.5.4.tar.gz
#cd apr-util-1.5.4
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make && make install

4.編譯安裝httpd
#tar -zxvf httpd-2.4.16.tar.gz
#cd httpd-2.4.16
#./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-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 --enable-deflate
#make && make install
#cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak #備份設定文件
#vi /usr/local/apache/conf/httpd.conf   #編輯設定文件

找到:#ServerName www.example.com:80
修改為:ServerName 172.24.0.2:80

找到:DirectoryIndex index.html
修改為:DirectoryIndex index.html index.php

找到:Options Indexes FollowSymLinks
修改為:Options FollowSymLinks    #不顯示目錄結構

找到AllowOverride None
修改為:AllowOverride All   #開啟apache支持偽靜態,有三處都做修改

LoadModule rewrite_module modules/mod_rewrite.so   #取消前面的註釋,開啟apache支持偽靜態

vi /etc/profile  #增加apache服務系統環境變數
在最後增加下面這一行
export PATH=$PATH:/usr/local/apache/bin

#chown  daemon.daemon  -R /usr/local/apache/htdocs  #更改目錄所有者
#chmod   700 /usr/local/apache/htdocs  -R #更改apache網站目錄權限
啟動apache
#/usr/local/apache/bin/apachectl -k start
檢查是否啟動
#ps -ef|grep httpd
#netstat -tplun|grep ":80"

編譯安裝mysql

1.編譯安裝cmake
#cd /usr/local/src
#tar -zxvf cmake-3.2.1.tar.gz
#cd cmake-3.2.1
#./configure --prefix=/usr/local/cmake
#make && make install
#vim ~/.bash_profile
修改PATH=$PATH:$HOME/bin
    PAHT=$PATH:$HOME/bin:/usr/local/cmake/bin
存檔退出
#source ~/.bash_profile

2.編譯安裝mysql
#groupadd -r mysql
#useradd -g mysql -r -s /sbin/nologin  -M mysql
#tar -zxvf mysql-5.6.17.tar.gz
#cd mysql-5.6.17
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
#gmake
#make install
#cd /usr/local/mysql/support-files
#cp mysql.server /etc/init.d/mysql
#cp my-default.conf /etc/my.cnf
#vim /etc/my.cnf
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysqld.sock
#chown -R mysql. /usr/local/mysql/data
#cd /usr/local/mysql/scripts
#./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --no-defaults --user=mysql
#service mysql start
#ps -ef | grep mysql(查看是否存在mysql進程)
#vim ~/.bash_profile
在PATH變數後面追加":/usr/local/mysql/bin",修改完成後的結果如下:
PATH=$PATH:$HOME/bin:/usr/local/cmake/bin:/usr/local/mysql/bin(註:/usr/local/cmake/bin目錄為本實驗編譯安裝所生成的目錄,如果您的cmake是通過rpm或者是yum來安裝的,無此路徑。PATH=$PATH:$HOME/bin:/usr/local/mysql/bin)
#source ~/.bash_profile
也可修改全局變數
#vim /etc/profile
在最後增加
PATH=$PATH:/usr/local/mysql/bin:/usr/local/cmake/bin(註:/usr/local/cmake/bin為本實驗編譯安裝所生成的目錄。)
#mysql
mysql>\s

編譯安裝PHP

1.安裝libmcrypt
#cd /usr/local/src
#tar -zxvf limcrypt-2.5.7.tar.gz
#cd libmcrypt-2.5.7
#./configure --prefix=/usr/local/libmcrypt
#make && make install

2.安裝PHP
#tar -jxvf php-5.6.7.tar.bz2
#cd php-5.6.7
#./configure  --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs  --with-config-file-path=/usr/local/php/etc  --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd  --with-libxml-dir  --with-gd  --with-jpeg-dir  --with-png-dir  --with-freetype-dir  --with-iconv-dir  --with-zlib-dir  --with-bz2  --with-openssl  --with-mcrypt=/usr/local/libmcrypt/  --enable-soap  --enable-gd-native-ttf  --enable-mbstring  --enable-sockets  --enable-exif  --disable-ipv6(PHP 5.3以上的版本推薦使用mysqlnd驅動,詳見:https://blog.linuxeye.com/395.html)
#make
#make test
#make install
#mkdir /usr/local/php/etc
#cp php.ini-production  /usr/local/php/etc/php.ini  #複製php設定文件到安裝目錄
#rm -rf /etc/php.ini   #刪除系統自帶的設定文件
#ln -s  /usr/local/php/etc/php.ini   /etc/php.ini   #新增設定文件軟鏈接
#vi /usr/local/php/etc/php.ini    #編輯

找到:;open_basedir =
修改為:open_basedir = .:/tmp/   #防止php木馬跨站,重要!!

找到:disable_functions =
修改為:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函數,如果某些程式需要用到這個函數,可以刪除,取消禁用。

找到:;date.timezone =
修改為:date.timezone = PRC

找到:expose_php = On
修改為:expose_php = OFF  #禁止顯示php版本的訊息

找到:display_errors = On
修改為:display_errors = OFF  #關閉錯誤提示

設定apache支持php
vi /usr/local/apache/conf/httpd.conf  #編輯apache設定文件
在LoadModule php5_module        modules/libphp5.so這一行下面增加、
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps (注意:php .php這個點前面有一個空格)
service httpd restart    #重啟apache
service mysqld restart   #重啟mysql
測試篇
vim  /usr/local/apache/htdocsvi/index.php   #輸入下面內容
<?php
phpinfo();
?>
:wq!   #存檔
在客戶端瀏覽器輸入伺服器IP地址,可以看到相關的設定訊息!

四、安裝xcache,為php加速
#cd /usr/local/src
#tar zxvf xcache-3.2.0.tar.gz
#/usr/local/php/bin/phpize
#./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
#make && make install
安裝結束時,會出現類似如下行:
Installing shared extensions:    /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
編輯php.ini,整合php和xcache
首先將xcache提供的樣例設定導入php.ini
# mkdir /etc/php.d
# cp xcache.ini /etc/php.d(說明:xcache.ini文件在xcache的源碼目錄中。)
接下來編輯/etc/php.d/xcache.ini,找到extension開頭的行,修改為如下行
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so(注意:如果php.ini文件中有多條zend_extension指令行,要確保此新增的行排在第一位。)
至此,整個安裝過程就結束了,下面簡單介紹一下壓力測試工具ab的使用。

ab使用方法

使用ab命令測試apache伺服器性能:

-c concurrency:一次性發起的請求個數,預設為1;
-i:測試時使用HEAD方法,預設為GET;
-k:啟用HTTP長連接請求方式;
-n requests:發起的模擬請求個數;預設為1個;請求數要大於等於並發連接數;
-q:靜默模式,在請求數大於150個時不輸出請求完成百分比;

輸出結果:
Time taken for tests:從第一個請求連接建立到收到最後一個請求的響應報文結束所經歷的時長;
Complete requests:成功的請求數;
簡單測試:
ab -c 100 -n 1000 http://localhost/index.php
通過這種方法可以對web伺服器性能做出簡單的評估。
 
PS:整個 LAMP 安裝的編譯時間很長,若想快速安裝請另外查詢 yum 版

留言

這個網誌中的熱門文章

c語言-關於#define用法

CMD常用網管指令

PHP 與 JavaScript 之間傳值利用 json