親測CentOS 6.6 x86_64下源碼安裝LAMP平臺(APACHE 2.4.16+MYSQL 5.6.17+PHP 5.6.7)

一、編譯安裝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服務器性能做出簡單的評估。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章