CentOS5.5下搭建最佳的LAMP環境

黄舟
發布: 2023-03-06 16:10:02
原創
1220 人瀏覽過

本文詳細說明在 Linux 系統中搭建 PHP 環境,由於 PHP 就是由 C 語言編寫的,最初也是運行在 Linux 系統中,所以Linux 是 PHP 的最佳環境。

本文作者是以虛擬機器(VMware)安裝的 CentOS 5.5 進行試驗。以下進行安裝詳解

1、準備工作

#一、請先確認你所安裝的Linux 系統中是否已安裝了Apache、MySQL、PHP,如果安裝請先解除安裝。

查看是否已安裝(Apache為例)

[root@gamejzy Linux]# rpm -qa|grep httpd
登入後複製

附註:rpm -qa 是查看本機中已安裝的所有軟體。 grep httpd 是過濾出與 httpd(apache) 有關的軟體。注意:grep php 是查看 PHP;grep mysql 是查看 MySQL

如果執行完指令後出現空,那麼表示機器中沒有安裝 Apache 軟體,如果出現諸如下情況說明已經安裝。

如果如上圖所示的那樣,那麼就需要把這三個軟體都卸載了。

卸載指令如下:

[root@gamejzy Linux]# rpm -e httpd-2.2.3-43.el5.centos --nodeps
登入後複製

註:--nodeps 是強制卸載

二、請保證你的Linux 系統中安裝了gcc、g++ 編譯器

檢查是否安裝很簡單,在命令列中敲入“gc”或“g+”,按tab 鍵,看看下面是否有命令顯示。

如果沒有也沒關係,安裝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


當執行完此指令後,會在目前目錄下建立一個php-5.2.6 的資料夾,解壓縮的所有檔案會放置在php-5.2 .6 資料夾中

請依照同樣的方法將所有的包都解壓縮,並且刪除所有的*.tar.gz 檔案

[root@gamejzy lamp]# rm -rf *.gz
登入後複製
以上指令刪除所有的.gz 檔案

四、編譯安裝軟體包介紹

在Linux 系統安裝每個原始碼軟體包的過程如下:

△ 設定(configure)△ 編譯(make)

△ 安裝(make install)

2、建置LAMP 環境(請依照下面給出的順序進行安裝)

這裡所有的軟體都安裝在/usr/local 下

#一、安裝libxml

安裝順序:1、進入libxml 目錄;2、設定參數(包括安裝路徑;依賴軟體;安裝功能等);3、編譯;4、安裝。註:所有軟體包安裝類似

[root@gamejzy lamp]# cd libxml2-2.6.30/ [root@gamejzy libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
登入後複製

./configure 為軟體包配置參數指令,--prefix 表示指定的安裝目錄,大部分目錄若不在會自動創建,個別不會,需要我們手動建立

[root@gamejzy libxml2-2.6.30]# make && make install
登入後複製

以上指令是將編譯和安裝在一起執行,由於軟體小,安裝速度比較快,若大的軟體,可能會花比較長的時間。

二、安裝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 參數,讓其安裝在預設目錄中,因為安裝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

這個軟體設定的時候不會自動建立目錄,需要我們手動建立

[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 中參數說明:

--enable-shared 建立共享庫所使用的GNU的libtool--enable-static 建立靜態庫使用的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
登入後複製

這個軟體直接安裝在預設目錄下。

八、安裝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 中參數說明:######--with-jpeg=/usr/local/jpeg6/ 指定到哪裡去找jpeg函式庫檔案的位置###--with-png=/usr/local/libpng/ 指定到哪去找png函式庫檔案的位置###--with-freetype=/usr/local/freetype / 指定到哪去找freetype 2.x字型庫的位置############注意###### 安裝此軟體包可能會出現以下錯誤,如下圖所示:## #############如果出現如此錯誤,解決方法:###
[root@gamejzy gd-2.0.35]# vi gd_png.c
登入後複製
###找到關鍵字"png.h" 指令:/png.h 回車#######替換為:/usr/local/libpng/include/png.h######效果如下圖所示:###

保存退出,继续执行"make && make install" 执行即可安装成功。

九、安装Apache(关键)

[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 中的参数说明:

--sysconfdir=/etc/httpd 指定Apache服务器的配置文件(httpd.conf等文件)存放位置
--with-included-apr 使用捆绑APR/APR-Util的副本
--enable-so 以动态共享对象(DSO)编译
--enable-deflate=shared 缩小传输编码的支持
--enable-expires=shared 期满头控制
--enable-rewrite=shared 基于规则的URL操控
--enable-static-support 建立一个静态链接版本的支持

测试 Apache 服务器

1、检查 /usr/local/ 下是否出现 apache2 目录;

2、检查 /etc/ 目录下面是否出现 httpd 目录,即里面是否有 httpd.conf 文件、extra目录等内容

3、开启 apache 服务器

[root@gamejzy httpd]# /usr/local/apache2/bin/apachectl start
登入後複製

stop(关闭)、restart(重启)

4、查看 apache 服务器是否启动,即查看 80 端口是否启动

[root@gamejzy httpd]# netstat -tnl|grep 80
登入後複製

执行完命令,出现如下所示,表示已经启动

tcp 0 0 :::80 :::*LISTEN

5、在浏览器中访问

如果在本机的话,请在浏览器地址栏中输入:localhost 或127.0.0.1

如果是远程连接的话,比如:SSH连接,那么请在浏览器地址栏中输入 Linux 的 ip 地址。比如:192.168.1.233

若网页中出现大字“

It works!

”说明 Apache 安装成功。

测试完毕!

添加 Apache 每次开机自动启动

[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 参数说明:

--with-extra-charsets=all 安装MySQL 所有的字符集

注意在 ./configure 的时候如果出现如下错误

原因:缺少ncurses安装包。

解决方法:下载安装相应软件包

yum list|grep ncurses yum -y install ncurses-devel
登入後複製

ncurses安装完成之后,再进行 ./configure 配置!

MySQL安装完成之后,设置一些内容,这些内容非常繁琐,但是又非常关键的,希望大家耐心学习。

1、设置配置文件 my.cnf,放在 /etc/ 目录下

[root@gamejzy mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf
登入後複製

2、初始化数据库文件,安装完 MySQL 之后,并不会出现 MySQL 的数据文件及数据存放位置

首先切换到 MySQL 的安装目录下

[root@gamejzy mysql-5.0.41]# cd /usr/local/mysql/
登入後複製

使用 bin 目录下的 mysql_install_db 进行初始化数据库文件,并使用上面建的 mysql 用户

[root@gamejzy mysql]# bin/mysql_install_db --user=mysql
登入後複製

运行完之后,会发现 MySQL 安装目录中会多一个 var 目录,里面放置的就是数据库文件,包括我们已经建的数据库都会放置在这个目录里面。

3、设置 MySQL 安装目录权限

改变目录下的所有文件和目录的拥有者为 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、设置权限,如果我们现在直接使用 bin 目录下的 mysql 命令,那么就能登录

[root@gamejzy mysql]# bin/mysql
登入後複製

这样就太危险了!因此需要设置权限。

先登录进 MySQL 中,使用 SQL 命令删除主机不是“localhost” 的用户名(MySQL 中的用户都mysql库中的user表),只留允许本机登录的账号。

mysql> delete from mysql.user where Host != 'localhost';
登入後複製

刷新授权表

mysql> flush privileges;
登入後複製

设置允许本机进入 MySQL 的 root 用户的密码

mysql> set password for 'root'@'localhost'=password('123456');
登入後複製

注:设置的密码必须记住,不然就进不去 MySQL 数据库了。

到这步的时候,我们的 root 用户,就已经设置了密码(密码为“123456”),我们可以测试一下,键入“exit”退出MySQL

这时登录 MySQL 数据库的命令不能是 bin/mysql 那么简单,应该如下

[root@gamejzy mysql]# bin/mysql -h 127.0.0.1 -u root -p123456
登入後複製

-h 指定主机名

-u 用户名

-p 密码

6、关闭 MySQL 数据库服务器

[root@gamejzy mysql]# bin/mysqladmin -u root -p shutdown
登入後複製

这里的是 root 用户是 MySQL 中的用户,执行后会提示你输入密码,Enter password:

输入密码,回车即可关闭数据库。

启动命令,请看本节4

7、加入到开机默认启动

[root@gamejzy mysql]# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
登入後複製

十一、安装PHP(重要)

这里我们安装 PHP 的高版本 php-5.3.19,安装参数比较多,请一定注意。

[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 参数说明:

--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 使多字节字符串支持
--enable-sockets 变量激活socket通讯特性

编译可能出现的问题:

出现如下报错:

解决方法:

cd /usr/local/mysql/lib/mysql/ ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
登入後複製

编译OK后,出现“Thank you for using PHP.”,说明配置成功。

[root@gamejzy php-5.3.19]# make && make install
登入後複製

编译和安装,时间会比较长,耐心等待吧!

编译完成后,需要以下配置

1、设置 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
登入後複製

会发现文件中有这么条内容

LoadModule php5_module modules/libphp5.so
登入後複製

这就说明 PHP 已经加载到 Apache 服务器中了,我们所要做的是告诉 Apache 服务器,哪些后缀名使用 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 服务器是否可以解析 PHP

往 /usr/local/apache2/htdocs 目录下添加一个phpinfo.php 文件,键入以下代码:

登入後複製

打开浏览器,访问该文件,看到如下图所示,说明 PHP 安装成功,并且和 Apache 服务器整合成功。


到此,CentOS 下的 LAMP 环境就搭建完毕了,虽然步骤繁琐,但是“工欲善其事,必先利其器”,花些时间,搭建一个完美的环境是值得的。CentOS5.5下搭建最佳的LAMP環境

以上是CentOS5.5下搭建最佳的LAMP環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!