CentOS6.4編譯安裝LAMP:準備工做php
前奏:編譯安裝LAMP前的準備工做:html
(1)查看系統版本信息:前端
[root@localhost ~]# cat /etc/redhat-releasemysql
CentOS release 6.4 (Final)linux
(2)爲centos6.4添加epel源:c++
[root@localhost ~]# rpm-ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm Retrievinghttp://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm warning: /var/tmp/rpm-tmp.mgMNYU: Header V3RSA/SHA256 Signature, key ID 0608b895: NOKEY Preparing... ########################################### [100%] 1:epel-release ########################################### [100%]
(3)修改字符集爲英文,避免安裝過程當中出項沒必要要的錯誤而浪費編譯時間進而影響工做效率:修改以後從新登陸便可生效。web
[root@localhost ~]# vim /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 臨時修改成[root@localhost ~]# export LANG=en
(4)安裝Yum加速組件sql
[root@localhost ~]# yum -y install yum-fastestmirror [root@localhost ~]# yum repolist [root@localhost ~]# yumclean all Loaded plugins: fastestmirror, security Cleaning repos: base epel extras updates Cleaning up Everything Cleaning up list of fastest mirrors
[root@localhost ~]# yummakecache #從新生成元數據,防止依賴關係被損壞shell
(5)安裝編譯軟件等所需開發工具包組,記得包組要用英文下的雙引號引發來,由於中間有空格,你還記得嗎?shell裏面用空格的時候會怎樣?呵呵數據庫
[root@localhost ~]#yum -y groupinstall
"Desktop Platform Development" "Development tools" "Server Platform Development"
如果以前已經安裝了也是須要進行這一步的,由於它會把系統自身須要的軟件包更新到最新,從而進一步防止系統漏洞,這但是線上經驗哦!這一步頗有必要,由於前面作的epel源就是爲此服務的哦!
(6)yum安裝系統所需的必要工具
安裝編譯LAMP所需各類小工具gcc gcc-c++makeautomake autoconf kernel-devel
安裝PHP所需依賴,如libxml2-developenssl-devel curl-devel libjpeg-devel libpng-devel等。
[root@localhost~]# yum -y install
gcc gcc-c++kernel-devel ntp vim-enhanced flex bison autoconf make automake bzip2-develncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-develfreetype-devel libXpm-devel gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devellibxml2-devel curl-devel libiculibicu-devel libmcrypt libmcrypt-devel libmhash libmhash-devel pcre-devellibtool-libs gd file patch mlocate diffutils readline-devel glibc-develglib2-devel libcap-devel
(7) 在編譯安裝LAMP以前,首先先卸載已存在的rpm包
首先是檢查各個軟件是否安裝
[root@localhost ~]# rpm -q httpd package httpd is not installed [root@localhost ~]# rpm -q mysql package mysql is not installed [root@localhost ~]# rpm -q php package php is not installed
使用yum或rpm工具卸載系統曾經安裝的lamp軟件
rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y remove mysql-server mysql yum -y remove php yum -y remove php-mysql
(8)禁用SeLinux selinux可能會導致編譯安裝失敗,咱們先禁用它
[root@localhost ~]# setenforce 0 [root@localhost ~]# getenforce Permissive [root@localhost ~]# sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/sysconfig/selinux #永久禁用,須要重啓生效。 [root@localhost ~]# grep ^SELINUX /etc/sysconfig/selinux SELINUX=disabled SELINUXTYPE=targeted
(9)開機啓動優化,服務最小化原則
本着服務最小化的原則,本實例安裝LAMP也正是爲了此目的,關閉一切不須要的服務,目前只開放如下幾個服務。
1>清理開機自啓動的服務
思路:
1>經過腳本關閉所有的服務
[root@localhost ~]# for test in `chkconfig--list |grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $test off;done
2>執行下面的命令開啓須要開機啓動的服務
[root@localhost ~]# for test in crondnetwork rsyslog sshd;do chkconfig --level 3 $test on;done
3>優化後的結果是本身想要的嗎?
[root@localhost ~]# chkconfig --list |grep 3:on crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
總之就是一個原則,服務器最小化服務原則,專注
使用cmake工具編譯安裝MySQL5.5<一>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Centos6.4編譯LAMP之使用cmake工具編譯安裝MySQL5.5
1、編譯安裝cmake工具
MySQL從5.5版本開始,經過./configure進行編譯配置方式已經被取消,取而代之的是cmake工具。
所以,咱們首先要在系統中源碼編譯安裝cmake工具。
#編譯安裝
使用下面的連接獲取cmake下載地址版本列表:
http://wwwNaNake.org/cmake/resources/software.html
#MySQl下載列表:
http://download.softagency.net/MySQL/Downloads/
#所需源碼包:
[root@MySQl55 mysql]# ls -lh total 27M -rw-r--r--. 1 root root 5.8M Jan 17 03:1200pxake-2.8.12.2.tar.gz -rw-r--r--. 1 root root 21M Mar 17 13:08 mysql-5.5.37.tar.gz
編譯安裝前MySQL的一些準備工做:
#臨時修改主機名便於作實驗清晰明瞭:
[root@MySQl55 ~]# hostname
MySQl55
建立MySql及其編譯工具cmake存放目錄,便於後續的更新管理:
[root@MySQl55 ~]# mkdir /appstores/mysql-pv mkdir: created directory `/appstore' mkdir: created directory `/appstore/mysql' [root@MySQl55 ~]# cd /appstore/mysql/ [root@MySQl55 mysql]# wget http://download.softagency.net/MySQL/Downloads/MySQL-5.5/mysql-5.5.37.tar.gz
[root@MySQl55 mysql]# wget http://wwwNaNake.org/files/v2.8/cmake-2.8.12.2.tar.gz
編譯安裝cmake
[root@MySQl55 mysql]# tar xfcmake-2.8.12.2.tar.gz [root@MySQl55 mysql]# cd cmake-2.8.12.2 [root@MySQl55 cmake-2.8.12.2]# ./configure [root@MySQl55 cmake-2.8.12.2]# echo $? 0 [root@MySQl55 cmake-2.8.12.2]# make&& make install [root@MySQl55 cmake-2.8.12.2]# echo $? 0
查看下軟件包大小
[root@localhost mysql]# du -sh * 41M cmake-2.8.12.2 5.8M cmake-2.8.12.2.tar.gz 195M mysql-5.5.37 21M mysql-5.5.37.tar.gz
2、編譯安裝配置MySQL
#切換至 MySQL源碼 解壓目錄
[root@MySQl55 mysql]# tar xfmysql-5.5.37.tar.gz [root@MySQl55 mysql]# cd mysql-5.5.37 [root@MySQl55 mysql-5.5.37]# #建立mysql用戶和mysql組 [root@localhost ~]# groupadd mysql&& useradd -s /sbin/nologin -g mysql -M mysql [root@localhost ~]# grep mysql /etc/passwd/etc/group /etc/passwd:mysql:x:500:500::/home/mysql:/sbin/nologin /etc/group:mysql:x:500:
#使用cmake組織項目
[root@MySQl55 mysql-5.5.37]# cmake -DCMAKE_INSTALL_PREFIX=/lamp_01/mysql5.5 -DMYSQL_DATADIR=/data/mysql5_5 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_DEBUG=0 [root@MySQL55 mysql-5.5.37]# echo $? 0
#安裝
[root@MySQl55 mysql-5.5.37]# make&& make install [root@MySQl55 mysql-5.5.37]#echo $? 0
MySQL安裝後的基本配置
#建立MySQL數據存放目錄,並受權歸MySQL用戶和組全部
[root@MySQL55 ~]# mkdir /data/mysql55 -pv mkdir: created directory `/data' mkdir: created directory `/data/mysql55'
#設置權限
#建立MySQL用戶以及MySQL組
[root@MySQL55 ~]# groupadd mysql &&useradd -s /sbin/nologin -g mysql -M mysql [root@MySQL55 ~]# chown -R mysql.mysql /data/mysql55/ [root@MySQL55~]# chown -R mysql.mysql /data/mysql55/ [root@MySQL55 ~]# ls -ld /data/mysql55/ drwxr-xr-x. 2 mysql mysql 4096 May 13 13:45/data/mysql55/
#複製MySQL配置文件
[root@MySQl55 mysql-5.5.37]# cp ./support-files/my-large.cnf/etc/my.cnf
將mysql的配置文件copy到/etc目錄下,並改名爲my.cnf 若是你想要設置一個選項文件,使用support-files目錄中的一個做爲模板。在這個目錄中有5個模板文件,是根據不一樣機器的內存定製的。 進入mysql源碼目錄,查看全部以.cnf結尾的配置文件 /usr/local/mysql下面有5個my-xxxx.cnf文件my-small.cnf 最小配置安裝,內存<=64M,數據數量最少my-large.cnf 內存=512Mmy-medium.cnf 32M<內存<64M,或者內存有128M,可是數據庫與web服務器公用內存 my-huge.cnf 1G<內存<2G,服務器主要運行mysqlmy-innodb-heavy-4G.cnf 最大配置安裝,內存至少4G [root@MySQL55mysql-5.5.37]# ll support-files/*.cnf -rw-r--r--. 1 rootroot 4677 May 13 13:36support-files/my-huge.cnf -rw-r--r--. 1 rootroot 19759 May 13 13:36 support-files/my-innodb-heavy-4G.cnf -rw-r--r--. 1 rootroot 4651 May 13 13:36support-files/my-large.cnf -rw-r--r--. 1 rootroot 4662 May 13 13:36support-files/my-medium.cnf -rw-r--r--. 1 rootroot 2826 May 13 13:36 support-files/my-small.cnf
#配置開機自動啓動
[root@MySQl55 mysql-5.5.37]# cp./support-files/mysql.server /etc/init.d/mysqld cp: overwrite `/etc/init.d/mysqld'? y [root@MySQl55 mysql-5.5.37]# chmod +700/etc/init.d/mysqld [root@MySQL55 mysql-5.5.37]# ls -l/etc/init.d/mysqld -rwx------. 1 root root 10878 May 13 13:55/etc/init.d/mysqld [root@MySQl55 mysql-5.5.37]# chkconfig--add mysqld [root@MySQl55 mysql-5.5.37]# chkconfig--level 2345 mysqld on
#查看是否已應用上
[root@MySQl55 mysql-5.5.37]# chkconfig--list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#添加MySQL的軟連接以適應init腳本
[root@MySQL55 ~]# ln -sv/lamp_01/mysql5.5/bin/mysql /usr/sbin/mysql `/usr/sbin/mysql' ->`/lamp_01/mysql5.5/bin/mysql' [root@MySQL55 ~]# ln -sv /lamp_01/mysql5.5/bin/mysqladmin /usr/sbin/mysqladmin `/usr/sbin/mysqladmin' ->`/lamp_01/mysql5.5/bin/mysqladmin' [root@MySQL55 ~]# ln -sv/lamp_01/mysql5.5/bin/mysqldump /usr/sbin/mysqldump `/usr/sbin/mysqldump' ->`/lamp_01/mysql5.5/bin/mysqldump'
#修改配置文件
[root@MySQl55 ~]# vim /etc/my.cnf
#在[mysqld]節點中添加:
25 [mysqld] 26 datadir = /data/mysql/ 27 log-error = /data/mysql/error.log 28 pid-file = /data/mysql/mysql.pid 29 tmpdir = /tmp
#保存退出
#初始化數據庫
[root@MySQl55 ~]#
/lamp_01/mysql5.5/scripts/mysql_install_db--user=mysql --basedir=/lamp_01/mysql5.5/ --datadir=/data/mysql/
WARNING: The host 'MySQl55' could not belooked up with resolveip.
This probably means that your libclibraries are not 100 % compatible
with this binary MySQL version. The MySQLdaemon, mysqld, should work
normally with the exception that host nameresolving will not work.
This means that you should use IP addressesinstead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK
**************************************************************************
[root@MySQl55 ~]# echo $? 0
#啓動MySQL
[root@MySQl55 ~]# service mysqld start
Starting MySQL..... SUCCESS!
#查看是否有mysql進程
[root@MySQl55 ~]# ps -ef |grep mysqld root 3363 1 0 06:09 pts/3 00:00:00 /bin/sh/lamp_01/mysql5.5/bin/mysqld_safe --datadir=/data/mysql/--pid-file=/data/mysql/mysql.pid mysql 3700 3363 2 06:09 pts/3 00:00:00 /lamp_01/mysql5.5/bin/mysqld--basedir=/lamp_01/mysql5.5 --datadir=/data/mysql/ --plugin-dir=/lamp_01/mysql5.5/lib/plugin--user=mysql --log-error=/data/mysql/error.log --pid-file=/data/mysql/mysql.pid--socket=/tmp/mysql.sock --port=3306 root 3727 12779 0 06:09 pts/3 00:00:00 grep mysqld
#查看是否有mysql端口
[root@MySQl55 ~]# netstat -tulanp |grep:3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3700/mysqld
#測試mysql,mysqladmin,mysqldump命令是否能正常使用
[root@MySQl55 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.37-log Sourcedistribution
Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.
Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.
Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.
mysql> \q
Bye
通常都是沒問題的,如有問題的話能夠vim /etc/profile 添加MySQL的安裝路徑/bin目錄,如安裝路徑爲/usr/local/mysql55 則對應添加爲 export PATH=$PATH:/usr/local/mysql55/bin 保存退出後 source /etc/profile使得當即生效!
#讀取MySQL的版本信息
[root@MySQl55 ~]# mysqladmin version mysqladmin Ver 8.42 Distrib 5.5.37, for Linux on x86_64 Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved. Oracle is a registered trademark of OracleCorporation and/or its affiliates. Other names may be trademarksof their respective owners. Server version 5.5.37-log Protocol version 10 Connection Localhost via UNIXsocket UNIX socket /tmp/mysql.sock Uptime: 2 min 48 sec Threads: 1 Questions: 4 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables:26 Queries per second avg: 0.023
#到此MySQL編譯安裝已基本完成,後面會有MySQL詳細的優化配置
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MySQL5.5之前的版本(如MySQL5.1.x)./configure 編譯參考以下,線上環境的配置哦,可直接使用,哈哈!
./configure \
--prefix=/lamp2_01/mysql5.1.72 \
--with-unix-socket-path=/lamp2_01/mysql5.1.72/tmp/mysql.sock \
--localstatedir=/lamp2_01/mysql5.1.72/data \
--enable-assembler \
--enable-thread-safe-client \
--with-mysqld-user=mysql \
--with-big-tables \
--without-debug \
--with-pthread \
--enable-assembler \
--with-extra-charsets=complex \
--with-readline \
--with-ssl \
--with-embedded-server \
--enable-local-infile \
--with-plugins=partition,innobase \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Tips:要構建LAMP環境,首先須要安裝MySql和Apache,最後纔是安裝PHP。固然了,具體是先編譯安裝Apache仍是變編譯MySQL都是能夠的,只要是最後再編譯PHP就能夠了,由於在編譯PHP程序的時候,在編譯PHP的參數裏面須要指定Apache的apxs工具所在的路徑以及MySQL的安裝路徑;因爲這裏的PHP編譯是以Apache的模塊的方式來運行的,要是配置成FastCGI的形式安裝順序也許就無所謂了,由於到目前爲止,筆者尚未嘗試在多臺機器上作過實驗,因此不敢確定的告訴您哦!
好比前端的是一臺獨立的Apache服務器,後面是一臺獨立的PHP程序服務器,在後面是一臺獨立的MySql數據庫服務器,這個筆者下次會作實驗的。
因爲前面MySql5.已經編譯完了,那麼,咱們就一鼓作氣,再來編譯安裝Apache的2.4最新版本!最後構建成一個完整的LAMP服務。
編譯安裝Httpd2.4.9
建立編譯Apache源代碼程序及其依賴的軟件包的存放目錄,便於後期管理。
[root@MySQL55 mysql]# mkdir/appstores/apache -pv mkdir: created directory`/appstores/apache'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apache官方說:
與Apache 2.2.x相比,Apache 2.4.x提供了不少性能方面的提高,包括支持更大流量、更好地支持雲計算、利用更少的內存處理更多的併發等。除此以外,還包括性能提高、內存利用、異步I/O的支持、動態反向代理設置、與時間驅動的Web服務器至關或更好的性能、更強大的處理資源分配能力,更便捷的緩存支持以及可定製的高速服務器和代理等。其它的功能還包括更簡單的錯誤分析、更靈活的設置項、更強大的驗證機制和更完整的文檔。
Apache服務器項目管理委員會和Apache基金會主席JimJagielski表示,他們但願終端用戶能真正地看到性能進步,Apache 2.4.x比許多以速度見長的Web服務器更快,例如 Nginx。
apache-2.2與新出的apache-2.4安裝不一樣的地方在於,2.4版的已經不自帶apr庫,因此在安裝apache-2.4以前,須要依次下載和安裝apr、apr-util、以及pcre等Apache的相關依賴工具。
谷歌搜索關鍵字:downloads apr apr-util pcre就會獲得它們的官網地址連接。
可到下來的地址去如今所需的apr和apr-util
http://www.apache.org/dist/apr/
[root@MySQl55 apache]# wget http://mirror.esocc.com/apache//apr/apr-1.5.1.tar.gz [root@MySQl55 apache]# wget http://www.apache.org/dist/apr/apr-util-1.5.3.tar.gz
谷歌搜索關鍵字:pcre downloads indexes
能夠到下面的網址去下載pcre http://www.pcre.org/ [root@MySQL55 apache]# [root@MySQL55 apache]# wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz Apache下載列表: http://www.apache.org/dist/httpd/ [root@MySQl55 apache]# wget http://www.apache.org/dist/httpd/httpd-2.4.9.tar.gz
#OK了,工具已經準備齊備啦!能夠動工了!
[root@MySQL55 apache]# ls -lhrt total 11M -rw-r--r--. 1 root root 854K Nov 17 01:52apr-util-1.5.3.tar.gz -rw-r--r--. 1 root root 6.5M Mar 17 01:22httpd-2.4.9.tar.gz -rw-r--r--. 1 root root 2.0M Apr 9 02:32 pcre-8.35.tar.gz -rw-r--r--. 1 root root 997K Apr 19 20:06apr-1.5.1.tar.gz [root@MySQL55 apache]# [root@MySQl55apache]# tar xf apr-1.5.1.tar.gz [root@MySQl55 apache]# cd apr-1.5.1 [root@MySQl55 apr-1.5.1]# ./configure--prefix=/usr/local/apr [root@MySQl55 apr-1.5.1]# echo $? 0 [root@MySQl55 apr-1.5.1]# make &&make install [root@MySQl55 apr-1.5.1]# echo $? 0 [root@MySQl55 apr-1.5.1]# cd ../ [root@MySQl55 apache]# tar xfapr-util-1.5.3.tar.gz [root@MySQl55 apache]# cd apr-util-1.5.3 [root@MySQl55 apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/bin/apr-1-config [root@MySQl55 apr-util-1.5.3]# echo $? 0 [root@MySQl55 apr-util-1.5.3]# make&& make install [root@MySQl55 apr-util-1.5.3]# echo $? 0 [root@MySQl55 apache]# tar xfpcre-8.35.tar.gz [root@MySQl55 apache]# cd pcre-8.35 ./configure --prefix=/usr/local/pcre--with-apr=/usr/local/apr/bin/apr-1-config [root@MySQl55 pcre-8.35]# echo $? 0 [root@MySQl55 pcre-8.35]# make &&make install [root@MySQl55 pcre-8.35]# echo $? 0
#LAMP之編譯安裝 Apache2.4.9
[root@MySQl55 apache]# cd httpd-2.4.9 [root@MySQl55 httpd-2.4.9]# ./configure--prefix=/lamp_02/httpd24 --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so--enable-deflate=shared --enable-expires=shared --enable-ssl=shared--enable-headers=shared --enable-rewrite=shared --enable-static-support--with-mpm=worker [root@MySQl55 httpd-2.4.9]# echo $? 0 [root@MySQl55 httpd-2.4.9]# make &&make install [root@MySQl55 httpd-2.4.9]# echo $? 0
至此,httpd2.4已經編譯完畢。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
編譯安裝PHP5.4.28
在編譯PHP以前,先要解決兩個問題:CentOS6.x 上 libmcrypt 的安裝和可能有些系統找不到 libiconv 致使的錯誤。
#建立PHP及其依賴的安裝包存放目錄:
安裝PHP了,就更名爲PHP5吧!爲了方便記憶
[root@php5_4 ~] # hostname php5_4 [root@php5_4 ~]# mkdir /appstores/php -pv mkdir: created directory `/appstores/php' [root@php5_4 ~]# cd /appstores/php/
檢查安裝PHP所需lib庫
PHP程序在開發時會調用一些諸如gd等函數庫,所以須要確認下面的lib庫是否已經安裝
[root@php5_4 ~]# rpm -qa zlib libxml libjpeg freetype libpng gdcurl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devellibpng-devel gd-devel curl-devel
libpng-1.2.49-1.el6_2.x86_64
freetype-2.3.11-14.el6_3.1.x86_64
curl-7.19.7-35.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
libpng-devel-1.2.49-1.el6_2.x86_64
libxml2-devel-2.7.6-14.el6.x86_64
zlib-1.2.3-29.el6.x86_64
freetype-devel-2.3.11-14.el6_3.1.x86_64
也能夠檢查devel之類的
也可使用下面的方式來檢查這5個軟件包也能夠達到與上面同樣的效果
[root@php5_4 ~]# rpm -qa zlib-devellibxml2-devel libjpeg-devel freetype-devel libpng-devel zlib-devel-1.2.3-29.el6.x86_64 libpng-devel-1.2.49-1.el6_2.x86_64 libxml2-devel-2.7.6-14.el6.x86_64 freetype-devel-2.3.11-14.el6_3.1.x86_64
1、安裝PHP依賴庫
# 安裝 libmcrypt
libmcrypt下載地址連接列表:
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt [root@php5_4 ~]# # cd /appstore/php/ [root@php5_4 ~]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz [root@php5_4 ~]# tar xflibmcrypt-2.5.7.tar.gz [root@php5_4 ~]# cd libmcrypt-2.5.7 [root@ php5_4 libmcrypt-2.5.7]# ./configure --prefix=/usr/local/libmcrypt [root@ php5_4 libmcrypt-2.5.7]# make && make install
#安裝 mhash
http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/ [root@php5_4 php]# wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz [root@ php5_4 php]# tar xfmhash-0.9.9.9.tar.gz [root@ php5_4 php]# cd mhash-0.9.9.9 [root@ php5_4 mhash-0.9.9.9]# ./configure--prefix=/usr/local/mhash [root@ php5_4 libmcrypt-2.5.7]# echo $? 0
#安裝 mcrypt
http://sourceforge.net/projects/mcrypt/files/MCrypt/ [root@php5_4 php]# wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz [root@php5_4php]# /sbin/ldconfig #搜索出可共享的動態連接庫 [root@php5_4 php]# tar xflibmcrypt-2.5.7.tar.gz [root@php5_4 php]# cd libmcrypt-2.5.7 [root@php5_4 libmcrypt-2.5.7]# ./configure--prefix=/usr/local/mcrypt [root@php5_4 libmcrypt-2.5.7]# make && make install [root@php5_4 libmcrypt-2.5.7]# echo $? 0
#安裝 libiconv
https://www.gnu.org/software/libiconv/#downloading http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz [root@php5_4 php]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz [root@php5_4 php]# tar xflibiconv-1.14.tar.gz [root@php5_4 php]# cd libiconv-1.14 [root@php5_4 libiconv-1.14]# ./configure--prefix=/usr/local/libiconv [root@php5_4 libiconv-1.14]# make&& make install [root@php5_4 libiconv-1.14]# echo $? 0
#安裝PHP
PHP鏡像地址列表:
http://php.net/downloads.php [root@php5_4 php]# wget http://cn2.php.net/distributions/php-5.5.12.tar.bz2 [root@php5_4 php]# tar xfphp-5.5.12.tar.bz2 [root@php5_4 php]# cd php-5.5.12
進行到這一步了!
#生成配置
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[root@php5_4 php-5.5.12]#
./configure --prefix=/lamp_03/php5.4.28--with-mysql=/lamp_01/mysql5.5 --with-apxs2=/lamp_02/httpd24/bin/apxs--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d--with-openssl --with-zlib --with-bz2 --with-gettext --with-mhash=/usr/local/mhash --with-mcrypt=/usr/local/mcrypt --with-iconv=/usr/local/libiconv --with-curl--with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-pdo-mysql=/lamp_01/mysql5.5 --enable-gd-native-ttf --enable-bcmath--enable-mbstring --enable-zip --enable-soap --enable-sockets --enable-ftp--without-pear
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
安裝php的時候,報錯以下:
Configure: error: Please reinstall the BZip2distribution
解決方法以下:
[root@php5_4php-5.5.12]# yum -y install bzip2bzip2-devel
今天配置一臺server的php支持curl的時候, 出現以下報錯
checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution -
easy.h should be in /include/curl/
其實就是curl的dev包沒有安裝, 解決方案:
終端下
[root@php5_4php-5.5.12]# yum -y install curl-devel
而後就能夠繼續了
#編譯
[root@php5_4 php-5.5.12]# make &&make install
編譯參數解釋:
--prefix=/lamp_03/php5.4.28 : 設置安裝路徑
--with-apxs2=/usr/local/apache/bin/apxs : 編譯共享的 Apache2.0 模塊
--with-config-file-path=/etc : 指定配置文件php.ini地址
--with-config-file-scan-dir=/etc/php.d : 指定額外的ini文件目錄
--with-openssl : 編譯OpenSSL支持
--with-zlib : 編譯zlib支持
--enable-bcmath : 啓用BC風格精度數學函數
--with-bz2 : BZip2支持
--with-gd : GD支持
--enable-gd-native-ttf : 啓用TrueType字符串函數
--with-gettext : 啓用GNU gettext支持
--with-mhash : mhash支持
--enable-mbstring : 啓用支持多字節字符串
--with-mcrypt : 編譯mcrypt加密支持
--enable-zip : 啓用zip 讀/寫支持
--with-iconv=/usr/local/libiconv : iconv支持
--with-curl : CRUL支持
--enable-soap : SOAP支持
--enable-sockets : SOCKETS支持
--enable-ftp : FTP支持
--with-mysql=/usr/local/mysql : 啓用mysql支持
--with-pdo-mysql=/usr/local/mysql : 啓用pdo-mysql支持
--without-pear : 不安裝PEAR
更多編譯參數解釋參考http://www.php.net/manual/zh/configure.about.php或者 ./configure --help 查看。
配置Apache支持PHP
修改主機名稱使得實驗一目瞭然
[root@LAMP ~]# hostname LAMP
[root@LAMP ~]# hostname
爲PHP建立軟連接:方便線上環境版本更新。
[root@LAMP ~]# ln -s /lamp_03/php5.4.28//lamp_03/php [root@LAMP ~]# ll /lamp_03/php lrwxrwxrwx. 1 root root 19 May 13 16:00/lamp_03/php -> /lamp_03/php5.4.28/
進入PHP源碼目錄,查看PHP的配置文件
[root@LAMP ~]# cd /appstores/php/php-5.5.12 [root@LAMP php-5.5.12]# ls -l php.ini* -rw-r--r--. 1 1001 1001 69486 Apr 29 16:04php.ini-development -rw-r--r--. 1 1001 1001 69516 Apr 29 16:04php.ini-production
#複製配置文件php.ini
[root@LAMP php-5.5.12]# cp php.ini-production /etc/php.ini
在Apache的配置文件Addtype applicaAddType application/x-gzip.gz.tgz這行下面中加入兩行對PHP的文件類型解析(加在Apache配置文件最後也可,這裏主要是爲了一目瞭然)
對Apache設置以前須要作的一些操做:
[root@LAMP ~]# ln -s /lamp_02/httpd24//lamp_02/httpd [root@LAMP ~]# ls -l /lamp_02/httpd lrwxrwxrwx. 1 root root 17 May 13 16:10/lamp_02/httpd -> /lamp_02/httpd24/ [root@LAMP ~]# cp/lamp_02/httpd/conf/httpd.conf /lamp_02/httpd/conf/httpd.conf`date +%F` [root@LAMP ~]# diff /lamp_02/httpd/conf/httpd.conf/lamp_02/httpd/conf/httpd.conf2014-05-13
這裏須要注意的是httpd2.2系列的版本是在311行左右
轉到311行即AddType application/x-gzip.gz.tgz行的下一行添加如下兩行對PHP的語句解析支持:
AddType application/x-httpd-php-source.phps AddType application/x-httpd-php .php .phtml
而2.4版本系列的相關配置是在376行左右,固然您也沒必要糾結於行數,只要在vim Apache的配置文件或者使用grep -n參數都是能夠過濾出來在多少行的
[root@php5_4 ~]# grep -n AddType /lamp_02/httpd/conf/httpd.conf 362: # AddType allows you to add to or override the MIME configuration 365: #AddType application/x-gzip .tgz 376: AddType application/x-compress .Z 377: AddType application/x-gzip .gz .tgz 398: #AddType text/html .shtml
#對Apache的一些簡單設置
#添加Apache用戶和組,方便Apache服務使用哦!
[root@LAMP ~]# groupadd apache &&useradd -s /sbin/nologin -g apache -Mapache [root@LAMP ~]# grep apache /etc/passwd/etc/group /etc/passwd:apache:x:501:501::/home/apache:/sbin/nologin /etc/group:apache:x:501:
#修改完Apache配置以後記得要檢查語法,避免啓動時錯誤,浪費時間,影響業務
service httpd restart # 或 /etc/init.d/httpdrestart [root@LAMP ~]#/lamp_02/httpd/bin/apachectl -t Syntax OK [root@LAMP ~]#/lamp_02/httpd/bin/apachectl configtest Syntax OK
#啓動Apache
[root@LAMP ~]# /lamp_02/httpd/bin/apachectlstart
#驗證Apache進程是否啓動
[root@LAMP ~]# ps -ef |grep httpd root 30584 1 0 16:28 ? 00:00:00 /lamp_02/httpd24/bin/httpd -kstart apache 30586 30584 0 16:28 ? 00:00:00 /lamp_02/httpd24/bin/httpd -kstart apache 30587 30584 0 16:28 ? 00:00:00 /lamp_02/httpd24/bin/httpd -kstart apache 30588 30584 0 16:28 ? 00:00:00 /lamp_02/httpd24/bin/httpd -kstart root 30671 30408 0 16:29 pts/1 00:00:00 grep httpd
#驗證80端口是否啓動
[root@LAMP ~]# netstat -tulanp |grep :80 tcp 0 0 :::80 :::* LISTEN 30584/httpd
#由端口反查進程
[root@LAMP ~]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 30584 root 4u IPv6 327633 0t0 TCP *:http (LISTEN) httpd 30586 apache 4u IPv6 327633 0t0 TCP *:http (LISTEN) httpd 30587 apache 4u IPv6 327633 0t0 TCP *:http (LISTEN) httpd 30588 apache 4u IPv6 327633 0t0 TCP *:http (LISTEN)
#寫一個調用PHP版本的腳本
[root@LAMP ~]# cd /lamp_02/httpd/htdocs/ [root@LAMP htdocs]# ll total 4 -rw-r--r--. 1 root root 45 Jun 12 2007 index.html [root@LAMP htdocs]# vim index.php [root@LAMP htdocs]# cat index.php <?php phpinfo(); ?>
#運行 phpinfo() 函數,頁面信息以下:
#最後再測試PHP鏈接MySql是否正常 首先是爲MySQL設置密碼: [root@LAMP ~]# mysqladmin -u root password"123.com"
測試代碼以下:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[root@php5_4 htdocs]# cat test.php
<?php
$link_id=mysql_connect('localhost','root','123.com')or mysql_error();
if ($link_id) {
echo "<h1> mysql successfuly</h1>";
}
else {
echo mysql_error();
}
?>
[root@php
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++