CentOS 6.5下編譯安裝httpd+mysql+php過程實錄

一、安裝環境

    Linux系統:CentOS 6.5

    Apache版本:http-2.4.12

    MySQL版本:MySQL 5.6.24

    PHP版本:PHP-5.6.8

基本的安裝順序為:先安裝httpd,然后安裝mysql,最后安裝PHP。以下步驟就是安裝此思路進行的:

二、安裝httpd-2.4.12

1、在安裝httpd之前需要先安裝apr、apr-util以及pcre-devel等相關包。由于CentOS是最小化安裝的,在編譯安裝httpd之前需要Development Tools開發工具集。具體步驟如下:

[root@localhost ~]# yum groupinstall Development Tools -y
[root@localhost ~]# yum install pcre-devel -y
[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.bz2
[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/apr/apr-1.5.2.tar.bz2
[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.12.tar.bz2 
[root@localhost ~]# tar xf apr-1.5.2.tar.bz2
[root@localhost ~]# tar xf apr-util-1.5.4.tar.bz2
[root@localhost apr-1.5.2]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.5.2]# make;make install
[root@localhost apr-1.5.2]# cd ../apr-util-1.5.4
[root@localhost apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.5.4]# make;make install
[root@localhost apr-util-1.5.4]# cd

2、接著安裝httpd

[root@localhost ~]# tar xf httpd-2.4.12.tar.bz2
[root@localhost ~]# cd httpd-2.4.12
[root@localhost httpd-2.4.12]# yum install openssl-devel -y
[root@localhost httpd-2.4.12]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-rewrite --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-modules=all --with-include-apr --with-apr-util=/usr/local/apr-util/
[root@localhost httpd-2.4.12]# make
[root@localhost httpd-2.4.12]# make install
[root@localhost httpd-2.4.12]# cd

3、進行簡單測試

[root@localhost ~]# service iptables stop        #先關閉防火墻
[root@localhost apache]# cd /usr/local/apache/
[root@localhost apache]# bin/apachectl start
[root@localhost apache]# netstat -tnlp | grep 80
tcp        0      0 :::80                       :::*                        LISTEN      7753/httpd

 在宿主機上使用瀏覽器進行測試,如果看到如下頁面即表示httpd安裝成功。

QQ圖片20150506130052.png

CentOS 6.5下編譯安裝httpd+mysql+php過程實錄4、為了更好的管理和使用httpd服務,可為其提供PATH環境變量和SysV風格的腳本。

PATH環境變量:

[root@localhost apache]# vi /etc/profile.d/httpd.sh
export PATH=$PATH:/usr/local/apache/bin
[root@localhost apache]# . /etc/profile.d/httpd.sh
[root@localhost apache]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin:/usr/local/apache/bin

SysV風格的腳本

[root@localhost apache]# vim /etc/init.d/httpd      
#!/bin/bash
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It is used to serve \
. /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 mays 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 sysntax 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|htlp|configtest|fullstatus)
        $apachectl $@
        RETVAL=$?
        ;;
  *)
        echo "Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
        ;;
esac
exit $RETVAL
[root@localhost apache]# chmod +x /etc/init.d/httpd
[root@localhost apache]# chkconfig --add httpd        #添加到服務列表
[root@localhost apache]# chkconfig httpd on
[root@localhost apache]# chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@localhost apache]# vim /etc/httpd/httpd.conf
在httpd.conf中修改及添加如下內容:
Pidfile "/var/run/httpd.pid"     #此處為添加內容
ServerName www.junjie.com:80     #此處為修改的內容
[root@localhost apache]# service httpd start
Starting httpd:                                            [  OK  ]
[root@localhost apache]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

5、為httpd添加man幫助及輸出頭文件

[root@localhost apache]# vi /etc/man.config 
MANPATH /usr/local/apache/man
[root@localhost apache]# ln -sv /usr/local/apache/include/  /usr/include/httpd
`/usr/include/httpd' -> `/usr/local/apache/include/'

至此,httpd服務安裝成功。

三、安裝MySQL

1、創建mysql用戶和mysql組

[root@localhost ~]# groupadd -r -g 306 mysql
[root@localhost ~]# useradd -r -g 306 -u 306 mysql
[root@localhost ~]# id mysql
uid=306(mysql) gid=306(mysql) groups=306(mysql)

2、創建mysql數據存放目錄

在系統中新添加一塊磁盤,在該盤上創建LVM分區并掛載至數據目錄。具體步驟如下:(添加磁盤的過程不再演示)

[root@localhost ~]# fdisk /dev/sdb
n
p
1
回車
+5G
t
8e
w
[root@localhost ~]# pvcreate /dev/sdb1
[root@localhost ~]# vgcreate myvg /dev/sdb1
[root@localhost ~]# lvcreate -L 5G -n data myvg
[root@localhost ~]# mkfs.ext3 /dev/myvg/data
[root@localhost ~]# mkdir /mydata/data -pv
mkdir: created directory `/mydata'
mkdir: created directory `/mydata/data'
[root@localhost ~]# mount /dev/myvg/data /mydata/data/

3、解壓并安裝MySQL 5.6.24,使用的通用二進制格式的MySQL。

[root@localhost ~]# wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/mysql-5.6.24-linux-glibc2.5-i686.tar.gz
[root@localhost ~]# tar xf mysql-5.6.24-linux-glibc2.5-i686.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -sv mysql-5.6.24-linux-glibc2.5-i686/ mysql
`mysql' -> `mysql-5.6.24-linux-glibc2.5-i686/'
[root@localhost local]# cd mysql
[root@localhost mysql]# chown -R mysql.mysql .        #更改mysql目錄中的文件的屬主、屬組為mysql用戶和mysql組
[root@localhost mysql]# ll
total 172
drwxr-xr-x.  2 mysql mysql   4096 May  6 14:01 bin
-rw-r--r--.  1 mysql mysql  17987 Mar 26 00:34 COPYING
drwxr-xr-x.  3 mysql mysql   4096 May  6 14:01 data
drwxr-xr-x.  2 mysql mysql   4096 May  6 14:02 docs
drwxr-xr-x.  3 mysql mysql   4096 May  6 14:01 include
-rw-r--r--.  1 mysql mysql 102986 Mar 26 00:35 INSTALL-BINARY
drwxr-xr-x.  3 mysql mysql   4096 May  6 14:02 lib
drwxr-xr-x.  4 mysql mysql   4096 May  6 14:01 man
drwxr-xr-x. 10 mysql mysql   4096 May  6 14:01 mysql-test
-rw-r--r--.  1 mysql mysql   2496 Mar 26 00:34 README
drwxr-xr-x.  2 mysql mysql   4096 May  6 14:01 scripts
drwxr-xr-x. 28 mysql mysql   4096 May  6 14:01 share
drwxr-xr-x.  4 mysql mysql   4096 May  6 14:02 sql-bench
drwxr-xr-x.  2 mysql mysql   4096 May  6 14:01 support-files
[root@localhost mysql]# yum install libaio -y        #安裝mysql初始化所需的依賴庫
[root@localhost mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/mydata/data/ --user=mysql    #初始化mysql數據庫
[root@localhost mysql]# chown -R root .        #為安全起見,將mysql目錄中的所有文件屬主更改為root用戶

4、修改及配置MySQL服務腳本及配置文件

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list mysqld
mysqld         0:off1:off2:on3:on4:on5:on6:off
[root@localhost mysql]# vi my.cnf
修改如下內容
datadir = /mydata/data
socket = /tmp/mysql.sock

5、啟動mysql服務

[root@localhost mysql]# service mysqld start
Starting MySQL... SUCCESS! 
[root@localhost mysql]# netstat -tnlp | grep 3306
tcp        0      0 :::3306                     :::*                        LISTEN      1819/mysqld

6、為mysql添加PATH環境變量

[root@localhost mysql]# vi /etc/profile.d/mysqld.sh
輸入以下內容:
export PATH=$PATH:/usr/local/mysql/bin
[root@localhost mysql]# . /etc/profile.d/mysqld.sh
[root@localhost mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit

7、為mysql添加man幫助及輸出頭文件和庫文件

[root@localhost mysql]# vi /etc/man.config
MANPATH /usr/local/mysql/man
[root@localhost mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include/'
[root@localhost mysql]# vi /etc/ld.so.conf.d/mysql.conf
添加如下內容
/usr/local/mysql/lib
[root@localhost mysql]# ldconfig  -v
/usr/local/mysql/lib:
libtcmalloc_minimal.so.0 -> libtcmalloc_minimal.so
libmysqlclient.so.18 -> libmysqlclient_r.so.18.1.0
/usr/lib/mysql:
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0

至此,mysql安裝完畢

四、安裝PHP(以fastcgi的方式)

1、首先安裝相關依賴文件

[root@bogon ~]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.6.tar.gz
[root@bogon ~]# tar xf libmcrypt-2.5.6.tar.gz
[root@bogon ~]# cd libmcrypt-2.5.6
[root@bogon ~]# ./configure
[root@bogon ~]# make;make install
[root@bogon ~]# yum install libxml2-devel -y
[root@bogon ~]# yum install bzip2-devel -y

2、解壓并編譯安裝php-5.6.8

[root@bogon ~]# tar xf php-5.6.8.tar.bz2
[root@bogon ~]# cd php-5.6.8
[root@bogon php-5.6.8]# ./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-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-fpm
[root@bogon php-5.6.8]# make 
[root@bogon php-5.6.8]# make install

3、設置啟動腳本和配置文件,并啟動php-fpm

啟動腳本

[root@bogon php-5.6.8]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@bogon php-5.6.8]# chmod +x /etc/init.d/php-fpm
[root@bogon php-5.6.8]# chkconfig --add php-fpm
[root@bogon php-5.6.8]# chkconfig php-fpm on

配置文件

[root@bogon php-5.6.8]# cd /usr/local/php/etc
[root@bogon etc]# cp php-fpm.conf.default php-fpm.conf

啟動測試

[root@bogon etc]# service php-fpm start
Starting php-fpm  done
[root@bogon php-5.6.8]# netstat -tnlp | grep php-fpm
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      3813/php-fpm

       

4、配置httpd,使其能夠支持php

[root@bogon etc]# cd /etc/httpd/
[root@bogon etc]# vi httpd.conf
修改如下內容:
#DocumentRoot "/usr/local/apache/htdocs"
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include /etc/httpd/extra/httpd-vhosts.conf
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

配置虛擬主機,創建虛擬主機目錄

[root@bogon etc]# vi extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/www/junjie.com/
    ServerName www.junjie.com
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/junjie.com/$1
    <Directory "/www/junjie.com">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
[root@bogon etc]# mkdir /www/junjie.com -pv
[root@bogon etc] # cd /www/junjie.com/
[root@bogon junjie.com]# vi index.php
添加如下內容
<h1>www.junjie.com</h1>
<?php
phpinfo();
?>

5、在瀏覽器中www.junjie.com進行測試(首先配置hosts文件或DNS解析)

index.bmp

利用phpMyAdmin工具測試httpd+php+mysql的連接

[root@bogon etc]# cd
[root@bogon ~]# tar xf phpMyAdmin-4.4.4-all-languages.tar.bz2 -C /www/junjie.com/
[root@bogon ~]# cd /www/junjie.com/
[root@bogon junjie.com]# mv phpMyAdmin-4.4.4-all-languages/ pma
[root@bogon xcache-3.2.0]# mysqladmin -uroot password 'redhat'   #給mysql用戶加密碼,否則不能通過pma進行登錄

在瀏覽器中輸入www.junjie.com/pma進行測試(首先配置hosts文件或DNS解析)

pma.bmp

6、配置xcache進行加速

[root@bogon ~]# tar xf xcache-3.2.0.tar.gz
[root@bogon ~]# cd xcache-3.2.0
[root@bogon xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config  
[root@bogon xcache-3.2.0]# make 
[root@bogon xcache-3.2.0]# make install
[root@bogon xcache-3.2.0]# cp xcache.ini /etc/php.d
[root@bogon xcache-3.2.0]# service php-fpm restart

重新刷新www.junjie.com,即可查看到xcache的信息

XCache2.bmp

大概就這些內容,后邊的寫的不那么相信,如果有不對的地方多做幾次測試就好了。

原創文章,作者:蝙蝠俠?杰,如若轉載,請注明出處:http://www.www58058.com/4020

(0)
蝙蝠俠?杰蝙蝠俠?杰
上一篇 2015-05-18
下一篇 2015-05-18

相關推薦

  • 終端類型

        終端是什么?終端不僅僅是顯示器,還包括與之配套的鍵盤。在linux中表現為一個字符設備。Linux與用戶交互時,直接向終端設備發送數據,數據就會被發送到屏幕上,用戶通過鍵盤寫的數據,就是向這個字符設備寫數據,數據會同步顯示到顯示器上,回車后數據才會被linux執行命令。 終端類型 1串行口終端  &n…

    Linux干貨 2016-10-17
  • 網絡班N22期第三周博客作業

    一、列出當前系統所有已經登錄的用戶名,且同一個用戶登錄多次只顯示一次 [root@bogon ~]# w  15:17:44 up 15:28,  2 users,  load average: 0.00, 0.00, …

    Linux干貨 2016-08-29
  • 操作系統概述

                                 操作系統概述 對于一個真正的計算機系統來說,我們可以說它是由硬件+軟件組成。沒有軟件的計算機,我們稱它為裸機。當然,它也干不成什么事。所以,要想使得計算…

    Linux干貨 2016-10-27
  • Linux文件管理命令和bash基礎特性

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示  文件管理命令:mkdir,rmdir,cp,mv,rm,cat,tac,head,tail,more,less mkdir命令:   mkdir – make directories   mkdir [OPTION]… DIREC…

    2017-07-13
  • LVS-幾種負載方式的區別

    LVS的原理很重要,很重要。每一個知識點都要做到熟記與腦,謹記于心,張口就來。 LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。 使用集群技術和Linux操作系統實現一個高性能、高可用的服務器. 很好的可伸縮性(Scal…

    Linux干貨 2017-05-11
欧美性久久久久