5—-CentOS6.5原始碼搭建LAMP–基於module方式實現php(單臺機器)

餘二五發表於2017-11-22

原始碼搭建LAMP


軟體包下載源:

搜狐映象源:http://mirrors.sohu.com/

apache下載網:http://mirror.bit.edu.cn/apache/

pcre官網:http://www.pcre.org/

apr官網:http://apr.apache.org/

apache官網:http://httpd.apache.org/

mysql官網:https://www.mysql.com/

php官網:http://php.net/

freetds:http://download.csdn.net/download/xhu_eternalcc/7457555

官網:http://www.freetds.org/


實驗環境:

CentOS6.5-x86_64 單臺機器

IP 192.168.9.168

版本:

apr-1.5.2

apr-util-1.5.4

httpd-2.4.20

php-5.6.22

mysql-5.6.32


說明,因為php要連線mysql,所以安裝順序為apache,mysql,php      

注:httpd2.4版本需要較新的apr和apr-util



注:新機器要初始化:參考http://wupengfei.blog.51cto.com/7174803/1955545

注:(生產環境一般包放內網ftp下載比較快,一般前端用nginx反向代理至後端apache+php機器,mysql獨立並做叢集)


1
一、編譯安裝apache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
1、#yum安裝httpd依賴軟體
[root@192-168-9-168 ~]# yum install -y gcc gcc-c++ libtool libtool-ltdl-devel 
make gd-devel freetype-devel libxml2-devel 
libjpeg-devel libpng-devel openssl-devel patch  
[root@192-168-9-168 ~]# yum install -y curl-devel bzip2 pcre-devel zip2-devel bzip2-devel 
[root@192-168-9-168 ~]# yum install -y mcrypt-devel zlib-devel wget
 
2、#編譯安裝apr
[root@192-168-9-168 ~]# cd /usr/local/src/
[root@192-168-9-168 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.bz2
[root@192-168-9-168 src]# tar xf apr-1.5.2.tar.bz2 
[root@192-168-9-168 src]# cd apr-1.5.2
[root@192-168-9-168 apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@192-168-9-168 apr-1.5.2]# make && make install
 
3、編譯安裝apr-util
[root@192-168-9-168 apr-1.5.2]# cd /usr/local/src/
[root@192-168-9-168 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2
[root@192-168-9-168 src]# tar xf apr-util-1.5.4.tar.bz2
[root@192-168-9-168 src]# cd apr-util-1.5.4
[root@192-168-9-168 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@192-168-9-168 apr-util-1.5.4]# make && make install
 
4、編譯安裝httpd
[root@192-168-9-168 apr-util-1.5.4]# useradd -s /sbin/nologin www
[root@192-168-9-168 apr-util-1.5.4]# cd /usr/local/src/
[root@192-168-9-168 src]# wget http://apache.fayea.com//httpd/httpd-2.4.20.tar.bz2 
[root@192-168-9-168  src]# tar xf httpd-2.4.20.tar.bz2 
[root@192-168-9-168  src]# cd httpd-2.4.20 
[root@192-168-9-168 httpd-2.4.20]# ./configure --prefix=/usr/local/apache 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util/ 
--enable-so 
--enable-ssl 
--enable-cgi 
--enable-rewrite 
--with-zlib 
--with-pcre 
--enable-modules=most 
--enable-mpms-shared=all 
--with-mpm=prefork
[root@192-168-9-168 httpd-2.4.20]# make
[root@192-168-9-168 httpd-2.4.20]# make install
[root@192-168-9-168 httpd-2.4.20]# sed -i `s/User daemon/User www/g` /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 httpd-2.4.20]# sed -i `s/Group daemon/Group www/g` /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 httpd-2.4.20]# sed -i "/ServerName/s/#ServerName.*/ServerName localhost/g" /usr/local/apache/conf/httpd.conf
 
 
6、啟動方法
[root@192-168-9-168 httpd-2.4.20]#/usr/local/apache/bin/apachectl -k start|reload|restart|stop
 
7、測試驗證
[root@192-168-9-168 httpd-2.4.20]# curl -I http://192.168.9.168
HTTP/1.1 200 OK
Date: Fri, 11 Aug 2017 15:22:43 GMT
Server: Apache/2.4.20 (Unix)
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html


二、編譯安裝MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1、#下載安裝包
[root@192-168-9-168 httpd-2.4.20]# cd /usr/local/src/
[root@192-168-9-168 src]# wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
 
2、#建立執行mysql使用者和組為系統賬號  
[root@192-168-9-168 src]# groupadd -r mysql
[root@192-168-9-168 src]# useradd -r -g mysql -s /sbin/nologin mysql
 
3、#編譯安裝
[root@192-168-9-168 src]# yum install -y libaio libaio-devel numactl numactl-devel cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel
[root@192-168-9-168 src]# tar xf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
[root@192-168-9-168 src]# mv mysql-5.6.37-linux-glibc2.12-x86_64 /usr/local/mysql
#建議mysql使用獨立裝置獨立目錄,本實驗只建立目錄,獨立裝置請參考磁碟分割槽與掛載
[root@192-168-9-168 src]# mkdir -p /data0/mysql
#更改屬主屬組
[root@192-168-9-168 src]# chown -R mysql.mysql /usr/local/mysql
#初始化資料庫
[root@192-168-9-168 src]# cd /usr/local/mysql
[root@192-168-9-168 mysql]# ./scripts/mysql_install_db --datadir=/data0/mysql --user=mysql
[root@192-168-9-168 mysql]# cp ./support-files/my-default.cnf /data0/mysql/my.cnf
[root@192-168-9-168 mysql]# echo "basedir = /usr/local/mysql
datadir = /data0/mysql
port = 3306
server_id = 1000
socket = /tmp/mysql.sock" >>/data0/mysql/my.cnf
[root@192-168-9-168 mysql]# chown -R mysql.mysql /data0/mysql/
4,啟動:
[root@192-168-9-168 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/my.cnf &
[root@192-168-9-168 mysql]# echo "/usr/local/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/my.cnf &" >> /etc/rc.d/rc.local
 
6、#安全初始化
#安全驗證初始化,設定root使用者密碼,刪除匿名使用者,禁止root使用者遠端連線,刪除test庫
[root@192-168-9-168 mysql]# ./bin/mysql_secure_installation
#匯出標頭檔案
[root@192-168-9-168 mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
#載入庫檔案
[root@192-168-9-168 mysql]# echo "/usr/local/mysql/lib/mysql/" >>/etc/ld.so.conf
[root@192-168-9-168 mysql]# ldconfig
[root@192-168-9-168 mysql]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile


三、編譯安裝PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
1、#編譯安裝libmcrypt擴充套件
[root@192-168-9-168 src]# cd /usr/local/src/
[root@192-168-9-168 src]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
[root@192-168-9-168 src]# tar xf libmcrypt-2.5.7.tar.gz 
[root@192-168-9-168 src]# cd libmcrypt-2.5.7
[root@192-168-9-168 libmcrypt-2.5.7]# ./configure
[root@192-168-9-168 libmcrypt-2.5.7]# make && make install
 
2、#編譯安裝freetds擴充套件
[root@c local]# cd /usr/local/src/
[root@c src]# wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
[root@192-168-9-168 src]# tar xf freetds-patched.tar.gz 
[root@192-168-9-168 src]# cd freetds-1.00.53/
[root@192-168-9-168 freetds-1.00.53]# ./configure --prefix=/usr/local/freetds --with-tdsver=7.4 --enable-msdblib 
[root@192-168-9-168 freetds-1.00.53]# make && make install
[root@192-168-9-168 freetds-1.00.53]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/freetds/lib/
 
4、#下載安裝包
[root@192-168-9-168 src]# cd /usr/local/src/
[root@192-168-9-168 src]# wget http://cn2.php.net/distributions/php-5.6.22.tar.bz2
[root@192-168-9-168 src]# tar xf php-5.6.22.tar.bz2 
[root@192-168-9-168 src]# cd php-5.6.22
[root@192-168-9-168 php-5.6.22]#  ./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-mssql=/usr/local/freetds 
--with-bz2 
--enable-maintainer-zts 
--with-curl 
--enable-ftp 
--enable-bcmath 
--with-gd 
--with-freetype-dir 
--enable-gd-native-ttf 
--with-iconv-dir 
--enable-mbstring 
--enable-calendar 
--with-gettext 
--enable-dom 
--enable-fpm
#說明:如果php5.3以上的版本,為了連結資料庫,可以指定mysqlnd,這樣本機就可以不用安裝mysql和mysql開發包。5.4已經是預設設定。
如: --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
[root@192-168-9-168 php-5.6.22]# make
[root@192-168-9-168 php-5.6.22]# make install
 
#為php提供配置檔案
[root@192-168-9-168 php-5.6.22]# cp php.ini-development /usr/local/php/etc/php.ini
 
5、編輯apache配置檔案httpd.conf,apache支援php
[root@192-168-9-168 php-5.6.22]# sed -i `/LoadModule php5_module/ aAddType application/x-httpd-php-source .phps` /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 php-5.6.22]# sed -i `/LoadModule php5_module/ aAddType application/x-httpd-php .php .php5` /usr/local/apache/conf/httpd.conf
[root@192-168-9-168 php-5.6.22]# sed -i `/DirectoryIndex/ s/index.html/index.php index.html/` /usr/local/apache/conf/httpd.conf
 
#重啟httpd
[root@192-168-9-168 php-5.6.22]# /usr/local/apache/bin/apachectl -k restart
4、測試驗證php
 "<?php
        phpinfo();
?>" > /usr/local/apache/htdocs/index.php
5、瀏覽器訪問:
http://192.168.9.168
5、測試驗證php連線資料庫
[root@192-168-9-168 php-5.6.22]# vim index.php 
 
<?php
        $link = mysql_connect(`127.0.0.1`,`root`,`123456`);
        if ($link)
             echo "Success...";
        else
             echo "Failure...";
        mysql_close()
?>
#瀏覽器訪問
http://192.168.9.168
 
6、#ab壓力測試
[root@192-168-9-168 php-5.6.22]# ab -c 100 -n 10000 
 
四、測試Xcache為php加速
1、#編譯安裝
[root@192-168-9-168 htdocs]# cd /usr/local/src/
[root@192-168-9-168 src]# tar xf xcache-3.2.0.tar.bz2 
[root@192-168-9-168 src]# cd xcache-3.2.0
[root@192-168-9-168 xcache-3.2.0]# /usr/local/php/bin/phpize
[root@192-168-9-168 xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config 
[root@192-168-9-168 xcache-3.2.0]# make && make install
2、#編輯php.ini,整合php和xcache
[root@192-168-9-168 xcache-3.2.0]# mkdir -p /etc/php.d
[root@192-168-9-168 xcache-3.2.0]# cp xcache.ini /etc/php.d
 
 
#重啟apache
[root@192-168-9-168 xcache-3.2.0]# apachectl -k restart
#壓力測試,看效果
本文轉自 wpf926 51CTO部落格,原文連結:http://blog.51cto.com/wupengfei/1955720,如需轉載請自行聯絡原作者


相關文章