詳解CentOS5.5 下搭建 PHP 環(huán)境(最佳的LAMP環(huán)境)
本文詳細(xì)闡述在 Linux 系統(tǒng)中搭建 PHP 環(huán)境,由于 PHP 就是由 C 語言編寫的,最初也是運(yùn)行在 Linux 系統(tǒng)中,所以Linux 是 PHP 的最佳環(huán)境。
關(guān)于本文中使用到的軟件,請點擊此鏈接下載。
CentOS5.5現(xiàn)在官方已經(jīng)不再提供,推薦大家使用centos6以上版本:
centos6.8下載地址:http://www.dbjr.com.cn/softs/499124.html
centos7.2下載地址:http://www.dbjr.com.cn/softs/499109.html
>>> 【點擊下載】
本文中作者是以虛擬機(jī)(VMware)安裝的 CentOS 5.5 進(jìn)行試驗。下面進(jìn)行安裝詳解
1、準(zhǔn)備工作
一、請先確認(rèn)你所安裝的 Linux 系統(tǒng)中是否已經(jīng)安裝了Apache、MySQL、PHP,如果安裝請先卸載。
查看是否安裝(Apache為例)
[root@gamejzy Linux]# rpm -qa|grep httpd
注:rpm -qa 是查看本機(jī)中已經(jīng)安裝的所有軟件。 grep httpd 是過濾出與 httpd(apache) 有關(guān)的軟件。注:grep php 是查看 PHP;grep mysql 是查看 MySQL
如果執(zhí)行完命令后出現(xiàn)空,那么說明機(jī)器中沒有安裝 Apache 軟件,如果出現(xiàn)諸如下情況說明已經(jīng)安裝。
如果如上圖所示的那樣,那么就需要把這三個軟件都卸載了。
卸載命令如下:
[root@gamejzy Linux]# rpm -e httpd-2.2.3-43.el5.centos --nodeps
注:--nodeps 是強(qiáng)制卸載
二、請保證你的 Linux 系統(tǒng)中安裝了 gcc、g++ 編譯器
檢查是否安裝很簡單,在命令行中敲入“gc”或“g+”,按 tab 鍵,看下面是否有命令顯示。
如果沒有也沒關(guān)系,安裝 gcc、g++ 的方法十分簡單
安裝gcc:
yum -y install gcc
安裝g++:
yum install gcc-c++
三、將所有的軟件(大部分都是 tar 包)包拷貝到 /tmp/lamp 底下,并解壓
解壓 tar.gz 命令(php軟件為例):tar zxvf php-5.2.6.tar.gz
當(dāng)執(zhí)行完此命令后,會在當(dāng)前目錄下創(chuàng)建一個 php-5.2.6 的文件夾,解壓的所有文件會放置在 php-5.2.6 文件夾中
請按照同樣的方法將所有的包都解壓,并且刪除所有的 *.tar.gz 文件
[root@gamejzy lamp]# rm -rf *.gz
以上命令刪除所有的 .gz 文件
四、編譯安裝軟件包介紹
在 Linux 系統(tǒng)安裝每個源代碼軟件包的過程如下:
△ 配置(configure)
△ 編譯(make)
△ 安裝(make install)
2、搭建 LAMP 環(huán)境(請按照下面給出的順序進(jìn)行安裝)
這里所有的軟件都安裝在 /usr/local 下
一、安裝libxml
安裝順序:1、進(jìn)入 libxml 目錄;2、配置參數(shù)(包括安裝路徑;依賴軟件;安裝功能等);3、編譯;4、安裝。注:所有軟件包安裝類似
[root@gamejzy lamp]# cd libxml2-2.6.30/ [root@gamejzy libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
./configure 為軟件包配置參數(shù)命令,--prefix 表示指定的安裝目錄,大部分目錄若不在會自動創(chuàng)建,個別不會,需要我們手動創(chuàng)建
[root@gamejzy libxml2-2.6.30]# make && make install
以上命令是將編譯和安裝在一起執(zhí)行,由于軟件小,安裝速度比較快,若大的軟件,可能會花比較長的時間。
二、安裝libmcrypt
[root@gamejzy lamp]# cd libmcrypt-2.5.8/ [root@gamejzy libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt [root@gamejzy libmcrypt-2.5.8]# make && make install
三、安裝zlib
[root@gamejzy lamp]# cd zlib-1.2.3/ [root@gamejzy zlib-1.2.3]# ./configure [root@gamejzy zlib-1.2.3]# make && make install
./configure 后面不要跟 --prefix 參數(shù),讓其安裝在默認(rèn)目錄中,因為安裝 libpng 的時候會用到 zlib。
四、安裝libpng
[root@gamejzy lamp]# cd libpng-1.2.31/ [root@gamejzy libpng-1.2.31]# ./configure --prefix=/usr/local/libpng [root@gamejzy libpng-1.2.31]# make && make install
五、安裝jpeg6
這個軟件配置的時候不會自動創(chuàng)建目錄,需要我們手動創(chuàng)建
[root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6 [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/bin [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/lib [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/include [root@gamejzy libpng-1.2.31]# mkdir -p /usr/local/jpeg6/man/man1
生成目錄完畢!
[root@gamejzy lamp]# cd jpeg-6b/ [root@gamejzy jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static [root@gamejzy jpeg-6b]# make && make install
./configure 中參數(shù)說明:
--enable-shared 建立共享庫使用的GNU的libtool
--enable-static 建立靜態(tài)庫使用的GNU的libtool
六、安裝freetype
[root@gamejzy lamp]# cd freetype-2.3.5/ [root@gamejzy freetype-2.3.5]# ./configure --prefix=/usr/local/freetype [root@gamejzy freetype-2.3.5]# make && make install
七、安裝autoconf
[root@gamejzy lamp]# cd autoconf-2.61/ [root@gamejzy autoconf-2.61]# ./configure [root@gamejzy autoconf-2.61]# make && make install
這個軟件直接安裝在默認(rèn)目錄下。
八、安裝GD
[root@gamejzy lamp]# cd gd-2.0.35/ [root@gamejzy gd-2.0.35]# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ [root@gamejzy gd-2.0.35]# make && make install
./configure 中參數(shù)說明:
--with-jpeg=/usr/local/jpeg6/ 指定到哪去找jpeg庫文件的位置
--with-png=/usr/local/libpng/ 指定到哪去找png庫文件的位置
--with-freetype=/usr/local/freetype/ 指定到哪去找freetype 2.x字體庫的位置
注意 安裝此軟件包可能會出現(xiàn)以下錯誤,如下圖所示:
如果出現(xiàn)如此錯誤,解決方法:
[root@gamejzy gd-2.0.35]# vi gd_png.c
找到關(guān)鍵詞"png.h" 命令:/png.h 回車
替換為:/usr/local/libpng/include/png.h
效果如下圖所示:
保存退出,繼續(xù)執(zhí)行"make && make install" 執(zhí)行即可安裝成功。
九、安裝Apache(關(guān)鍵)
[root@gamejzy lamp]# cd httpd-2.2.9/ [root@gamejzy httpd-2.2.9]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support [root@gamejzy httpd-2.2.9]# make && make install
./configure 中的參數(shù)說明:
--sysconfdir=/etc/httpd 指定Apache服務(wù)器的配置文件(httpd.conf等文件)存放位置
--with-included-apr 使用捆綁APR/APR-Util的副本
--enable-so 以動態(tài)共享對象(DSO)編譯
--enable-deflate=shared 縮小傳輸編碼的支持
--enable-expires=shared 期滿頭控制
--enable-rewrite=shared 基于規(guī)則的URL操控
--enable-static-support 建立一個靜態(tài)鏈接版本的支持
測試 Apache 服務(wù)器
1、檢查 /usr/local/ 下是否出現(xiàn) apache2 目錄;
2、檢查 /etc/ 目錄下面是否出現(xiàn) httpd 目錄,即里面是否有 httpd.conf 文件、extra目錄等內(nèi)容
3、開啟 apache 服務(wù)器
[root@gamejzy httpd]# /usr/local/apache2/bin/apachectl start
stop(關(guān)閉)、restart(重啟)
4、查看 apache 服務(wù)器是否啟動,即查看 80 端口是否啟動
[root@gamejzy httpd]# netstat -tnl|grep 80
執(zhí)行完命令,出現(xiàn)如下所示,表示已經(jīng)啟動
tcp 0 0 :::80 :::* LISTEN
5、在瀏覽器中訪問
如果在本機(jī)的話,請在瀏覽器地址欄中輸入:http://localhost 或 http://127.0.0.1
如果是遠(yuǎn)程連接的話,比如:SSH連接,那么請在瀏覽器地址欄中輸入 Linux 的 ip 地址。比如:http://192.168.1.233
若網(wǎng)頁中出現(xiàn)大字“
It works!
”說明 Apache 安裝成功。
測試完畢!
添加 Apache 每次開機(jī)自動啟動
[root@gamejzy /]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
十、安裝MySQL(重要)
安裝 MySQL 之前先建立一個專門管理 MySQL 的組和用戶名
建立一個組名叫“mysql”
[root@gamejzy /]# groupadd mysql
建立一個用戶名叫“mysql”,讓他屬于“mysql”組
[root@gamejzy /]# useradd -g mysql mysql
[root@gamejzy lamp]# cd mysql-5.0.41/ [root@gamejzy mysql-5.0.41]# ./configure --prefix=/usr/local/mysql --with-extra-charsets=all [root@gamejzy mysql-5.0.41]# make && make install
./configure 參數(shù)說明:
--with-extra-charsets=all 安裝MySQL 所有的字符集
注意 在 ./configure 的時候如果出現(xiàn)如下錯誤
原因:缺少ncurses安裝包。
解決方法:下載安裝相應(yīng)軟件包
yum list|grep ncurses yum -y install ncurses-devel
ncurses安裝完成之后,再進(jìn)行 ./configure 配置!
MySQL安裝完成之后,設(shè)置一些內(nèi)容,這些內(nèi)容非常繁瑣,但是又非常關(guān)鍵的,希望大家耐心學(xué)習(xí)。
1、設(shè)置配置文件 my.cnf,放在 /etc/ 目錄下
[root@gamejzy mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf
2、初始化數(shù)據(jù)庫文件,安裝完 MySQL 之后,并不會出現(xiàn) MySQL 的數(shù)據(jù)文件及數(shù)據(jù)存放位置
首先切換到 MySQL 的安裝目錄下
[root@gamejzy mysql-5.0.41]# cd /usr/local/mysql/
使用 bin 目錄下的 mysql_install_db 進(jìn)行初始化數(shù)據(jù)庫文件,并使用上面建的 mysql 用戶
[root@gamejzy mysql]# bin/mysql_install_db --user=mysql
運(yùn)行完之后,會發(fā)現(xiàn) MySQL 安裝目錄中會多一個 var 目錄,里面放置的就是數(shù)據(jù)庫文件,包括我們已經(jīng)建的數(shù)據(jù)庫都會放置在這個目錄里面。
3、設(shè)置 MySQL 安裝目錄權(quán)限
改變目錄下的所有文件和目錄的擁有者為 root
[root@gamejzy mysql]# chown -R root .
改變 var 目錄的擁有者為 mysql 用戶
[root@gamejzy mysql]# chown -R mysql ./var/
改變所有目錄和文件的用戶組為 mysql 組
[root@gamejzy mysql]# chgrp -R mysql .
4、啟動 MySQL
[root@gamejzy mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
& 表示在后臺啟動
這時,使用 netstat -tnl,如果看見 3306 端口,那么說明啟動成功
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
5、設(shè)置權(quán)限,如果我們現(xiàn)在直接使用 bin 目錄下的 mysql 命令,那么就能登錄
[root@gamejzy mysql]# bin/mysql
這樣就太危險了!因此需要設(shè)置權(quán)限。
先登錄進(jìn) MySQL 中,使用 SQL 命令刪除主機(jī)不是“l(fā)ocalhost” 的用戶名(MySQL 中的用戶都mysql庫中的user表),只留允許本機(jī)登錄的賬號。
mysql> delete from mysql.user where Host != 'localhost';
刷新授權(quán)表
mysql> flush privileges;
設(shè)置允許本機(jī)進(jìn)入 MySQL 的 root 用戶的密碼
mysql> set password for 'root'@'localhost'=password('123456');
注:設(shè)置的密碼必須記住,不然就進(jìn)不去 MySQL 數(shù)據(jù)庫了。
到這步的時候,我們的 root 用戶,就已經(jīng)設(shè)置了密碼(密碼為“123456”),我們可以測試一下,鍵入“exit”退出MySQL
這時登錄 MySQL 數(shù)據(jù)庫的命令不能是 bin/mysql 那么簡單,應(yīng)該如下:
[root@gamejzy mysql]# bin/mysql -h 127.0.0.1 -u root -p123456
-h 指定主機(jī)名
-u 用戶名
-p 密碼
6、關(guān)閉 MySQL 數(shù)據(jù)庫服務(wù)器
[root@gamejzy mysql]# bin/mysqladmin -u root -p shutdown
這里的是 root 用戶是 MySQL 中的用戶,執(zhí)行后會提示你輸入密碼,Enter password:
輸入密碼,回車即可關(guān)閉數(shù)據(jù)庫。
啟動命令,請看本節(jié)4
7、加入到開機(jī)默認(rèn)啟動
[root@gamejzy mysql]# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
十一、安裝PHP(重要)
這里我們安裝 PHP 的高版本 php-5.3.19,安裝參數(shù)比較多,請一定注意。
[root@gamejzy lamp]# cd php-5.3.19/ [root@gamejzy php-5.3.19]# ./configure \ > --prefix=/usr/local/php \ > --with-config-file-path=/usr/local/php/etc \ > --with-apxs2=/usr/local/apache2/bin/apxs \ > --with-mysql=/usr/local/mysql/ \ > --with-libxml-dir=/usr/local/libxml2/ \ > --with-png-dir=/usr/local/libpng/ \ > --with-jpeg-dir=/usr/local/jpeg6/ \ > --with-freetype-dir=/usr/local/freetype/ \ > --with-gd=/usr/local/gd2/ \ > --with-mcrypt=/usr/local/libmcrypt/ \ > --with-mysqli=/usr/local/mysql/bin/mysql_config \ > --enable-soap \ > --enable-mbstring=all \ > --enable-sockets
./configure 參數(shù)說明:
--with-config-file-path=/usr/local/php/etc 指定PHP5配置文件存入的路徑
--with-apxs2=/usr/local/apache2/bin/apxs 告訴PHP查找Apache 2的地方
--with-mysql=/usr/local/mysql/ 指定MySQL的安裝目錄
--with-libxml-dir=/usr/local/libxml2/ 告訴PHP放置libxml2庫的地方
--with-png-dir=/usr/local/libpng/ 告訴PHP放置libpng庫的地方
--with-jpeg-dir=/usr/local/jpeg6/ 告訴PHP放置jpeg庫的地方
--with-freetype-dir=/usr/local/freetype/ 告訴PHP放置freetype庫的地方
--with-gd=/usr/local/gd2/ 告訴PHP放置gd庫的地方
--with-mcrypt=/usr/local/libmcrypt/ 告訴PHP放置libmcrypt庫的地方
--with-mysqli=/usr/local/mysql/bin/mysql_config 變量激活新增加的MySQLi功能
--enable-soap 變量激活SOAP和Web services支持
--enable-mbstring=all 使多字節(jié)字符串支持
--enable-sockets 變量激活socket通訊特性
編譯可能出現(xiàn)的問題:
出現(xiàn)如下報錯:
解決方法:
cd /usr/local/mysql/lib/mysql/ ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
編譯OK后,出現(xiàn)“Thank you for using PHP.”,說明配置成功。
[root@gamejzy php-5.3.19]# make && make install
編譯和安裝,時間會比較長,耐心等待吧!
編譯完成后,需要以下配置
1、設(shè)置 php.ini 配置文件
[root@gamejzy php-5.3.19]# cp php.ini-development /usr/local/php/etc/php.ini
注:/usr/local/php/etc 是在配置的時候指定的位置
2、和 Apache 整合
先打開 Apache 的配置文件 httpd.conf
[root@gamejzy php-5.3.19]# vi /etc/httpd/httpd.conf
會發(fā)現(xiàn)文件中有這么條內(nèi)容
LoadModule php5_module modules/libphp5.so
這就說明 PHP 已經(jīng)加載到 Apache 服務(wù)器中了,我們所要做的是告訴 Apache 服務(wù)器,哪些后綴名使用 PHP 解析
在 vi 編輯器中搜索“AddType application/x-compress .Z”
在后面添加一條:AddType application/x-httpd-php .php
修改后的效果如下圖
保存并退出,重啟 Apache
[root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl stop [root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl start
3、測試 Apache 服務(wù)器是否可以解析 PHP
往 /usr/local/apache2/htdocs 目錄下添加一個phpinfo.php 文件,鍵入以下代碼:
<?php header("Content-Type:text/html;Charset=utf-8"); phpinfo(); ?>
打開瀏覽器,訪問該文件,看到如下圖所示,說明 PHP 安裝成功,并且和 Apache 服務(wù)器整合成功。
到此,CentOS 下的 LAMP 環(huán)境就搭建完畢了,雖然步驟繁瑣,但是“工欲善其事,必先利其器”,花些時間,搭建一個完美的環(huán)境是值得的。
- centos7.2搭建LAMP環(huán)境的具體操作方法
- 詳解Lamp環(huán)境搭建Linux CentOS6.5編譯安裝mysql5.6
- 64位CentOS 6.0下搭建LAMP環(huán)境詳細(xì)步驟
- CentOS 6.4安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
- CentOS 5.5使用yum來安裝LAMP(php運(yùn)行環(huán)境)
- CentOS 6.3編譯安裝LAMP環(huán)境筆記
- CentOS 6.6安裝配置LAMP服務(wù)器(Apache+PHP5+MySQL)
- Centos7.2 系統(tǒng)上yum安裝lamp環(huán)境
- centos7.0之Lnmp和Lamp詳細(xì)介紹
- CentOS平臺快速搭建LAMP環(huán)境的方法
相關(guān)文章
CentOS7設(shè)置jar應(yīng)用程序開機(jī)啟動的方法
這篇文章主要介紹了CentOS7設(shè)置jar應(yīng)用程序開機(jī)啟動的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10centos 7.5 部署varnish緩存服務(wù)器功能
這篇文章主要介紹了centos 7.5 部署varnish緩存服務(wù)器功能,文中給大家介紹了varnish的簡介和主要特征,需要的朋友可以參考下2019-10-10linux系統(tǒng)下一個冷門的RAID卡ioc0及其監(jiān)控mpt-status
這篇文章主要介紹了linux系統(tǒng)下一個冷門的RAID卡ioc0及其監(jiān)控mpt-status,需要的朋友可以參考下2016-05-05linux網(wǎng)站服務(wù)Apache的安裝與配置方法詳解
這篇文章介紹下linux網(wǎng)站服務(wù)apache的安裝與配置方法,本文分為四部分給大家介紹的非常詳細(xì),感興趣的朋友可以參考下2016-10-10