设为首页 收藏本站
查看: 484|回复: 0

[经验分享] CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)

[复制链接]

尚未签到

发表于 2017-4-7 09:11:10 | 显示全部楼层 |阅读模式
  本文转载自:http://blog.csdn.net/liruxing1715/article/details/8259399
  

  

  本文详细阐述在 Linux 系统中搭建 PHP 环境,由于 PHP 就是由 C 语言编写的,最初也是运行在 Linux 系统中,所以Linux 是 PHP 的最佳环境。
  关于本文中使用到的软件,请点击此链接下载。>>> 【点击下载
  本文中作者是以虚拟机(VMware)安装的 CentOS 5.5 进行试验。下面进行安装详解
  1、准备工作
  一、请先确认你所安装的 Linux 系统中是否已经安装了Apache、MySQL、PHP,如果安装请先卸载。
  查看是否安装(Apache为例)
[plain] view plaincopy


  • [iyunv@gamejzyLinux]#rpm-qa|grephttpd


注:rpm -qa 是查看本机中已经安装的所有软件。 grep httpd 是过滤出与 httpd(apache) 有关的软件。注:grep php 是查看 PHP;grep mysql 是查看 MySQL  如果执行完命令后出现空,那么说明机器中没有安装 Apache 软件,如果出现诸如下情况说明已经安装。
DSC0000.png

  

  

  

  如果如上图所示的那样,那么就需要把这三个软件都卸载了。
  卸载命令如下:
[plain] view plaincopy


  • [iyunv@gamejzyLinux]#rpm-ehttpd-2.2.3-43.el5.centos--nodeps


注:--nodeps 是强制卸载  二、请保证你的 Linux 系统中安装了 gcc、g++ 编译器
  检查是否安装很简单,在命令行中敲入“gc”或“g+”,按 tab 键,看下面是否有命令显示。
  如果没有也没关系,安装 gcc、g++ 的方法十分简单
  安装gcc:
[plain] view plaincopy


  • yum-yinstallgcc


安装g++:[plain] view plaincopy


  • yuminstallgcc-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 文件
[plain] view plaincopy


  • [iyunv@gamejzylamp]#rm-rf*.gz


以上命令删除所有的 .gz 文件  四、编译安装软件包介绍
  在 Linux 系统安装每个源代码软件包的过程如下:
  △ 配置(configure)
  △ 编译(make)
  △ 安装(make install)
  2、搭建 LAMP 环境(请按照下面给出的顺序进行安装)
  这里所有的软件都安装在 /usr/local 下

  一、安装libxml
  安装顺序:1、进入 libxml 目录;2、配置参数(包括安装路径;依赖软件;安装功能等);3、编译;4、安装。注:所有软件包安装类似
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdlibxml2-2.6.30/
  • [iyunv@gamejzylibxml2-2.6.30]#./configure--prefix=/usr/local/libxml2


./configure 为软件包配置参数命令,--prefix 表示指定的安装目录,大部分目录若不在会自动创建,个别不会,需要我们手动创建[plain] view plaincopy


  • [iyunv@gamejzylibxml2-2.6.30]#make&&makeinstall


以上命令是将编译和安装在一起执行,由于软件小,安装速度比较快,若大的软件,可能会花比较长的时间。  二、安装libmcrypt
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdlibmcrypt-2.5.8/
  • [iyunv@gamejzylibmcrypt-2.5.8]#./configure--prefix=/usr/local/libmcrypt
  • [iyunv@gamejzylibmcrypt-2.5.8]#make&&makeinstall


三、安装zlib[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdzlib-1.2.3/
  • [iyunv@gamejzyzlib-1.2.3]#./configure
  • [iyunv@gamejzyzlib-1.2.3]#make&&makeinstall


./configure 后面不要跟 --prefix 参数,让其安装在默认目录中,因为安装 libpng 的时候会用到 zlib。  四、安装libpng
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdlibpng-1.2.31/
  • [iyunv@gamejzylibpng-1.2.31]#./configure--prefix=/usr/local/libpng
  • [iyunv@gamejzylibpng-1.2.31]#make&&makeinstall


五、安装jpeg6  这个软件配置的时候不会自动创建目录,需要我们手动创建
[plain] view plaincopy


  • [iyunv@gamejzylibpng-1.2.31]#mkdir/usr/local/jpeg6
  • [iyunv@gamejzylibpng-1.2.31]#mkdir/usr/local/jpeg6/bin
  • [iyunv@gamejzylibpng-1.2.31]#mkdir/usr/local/jpeg6/lib
  • [iyunv@gamejzylibpng-1.2.31]#mkdir/usr/local/jpeg6/include
  • [iyunv@gamejzylibpng-1.2.31]#mkdir-p/usr/local/jpeg6/man/man1


生成目录完毕![plain] view plaincopy


  • [iyunv@gamejzylamp]#cdjpeg-6b/
  • [iyunv@gamejzyjpeg-6b]#./configure--prefix=/usr/local/jpeg6/--enable-shared--enable-static
  • [iyunv@gamejzyjpeg-6b]#make&&makeinstall


./configure 中参数说明:  --enable-shared 建立共享库使用的GNU的libtool
  --enable-static 建立静态库使用的GNU的libtool
  六、安装freetype
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdfreetype-2.3.5/
  • [iyunv@gamejzyfreetype-2.3.5]#./configure--prefix=/usr/local/freetype
  • [iyunv@gamejzyfreetype-2.3.5]#make&&makeinstall


七、安装autoconf[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdautoconf-2.61/
  • [iyunv@gamejzyautoconf-2.61]#./configure
  • [iyunv@gamejzyautoconf-2.61]#make&&makeinstall


这个软件直接安装在默认目录下。  八、安装GD
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdgd-2.0.35/
  • [iyunv@gamejzygd-2.0.35]#./configure--prefix=/usr/local/gd2--with-jpeg=/usr/local/jpeg6/--with-png=/usr/local/libpng/--with-freetype=/usr/local/freetype/
  • [iyunv@gamejzygd-2.0.35]#make&&makeinstall


./configure 中参数说明:  --with-jpeg=/usr/local/jpeg6/ 指定到哪去找jpeg库文件的位置
--with-png=/usr/local/libpng/ 指定到哪去找png库文件的位置
--with-freetype=/usr/local/freetype/ 指定到哪去找freetype 2.x字体库的位置
  注意 安装此软件包可能会出现以下错误,如下图所示:
DSC0001.png

  如果出现如此错误,解决方法:
[plain] view plaincopy


  • [iyunv@gamejzygd-2.0.35]#vigd_png.c


找到关键词"png.h" 命令:/png.h 回车  替换为:/usr/local/libpng/include/png.h
  效果如下图所示:
DSC0002.png

  保存退出,继续执行"make && make install" 执行即可安装成功。
  九、安装Apache(关键)
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdhttpd-2.2.9/
  • [iyunv@gamejzyhttpd-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
  • [iyunv@gamejzyhttpd-2.2.9]#make&&makeinstall


./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 服务器
[plain] view plaincopy


  • [iyunv@gamejzyhttpd]#/usr/local/apache2/bin/apachectlstart


stop(关闭)、restart(重启)  4、查看 apache 服务器是否启动,即查看 80 端口是否启动
[plain] view plaincopy


  • [iyunv@gamejzyhttpd]#netstat-tnl|grep80


执行完命令,出现如下所示,表示已经启动  tcp 0 0 :::80 :::* LISTEN
  5、在浏览器中访问
  如果在本机的话,请在浏览器地址栏中输入:http://localhost 或 http://127.0.0.1
  如果是远程连接的话,比如:SSH连接,那么请在浏览器地址栏中输入 Linux 的 ip 地址。比如:http://192.168.1.233
  若网页中出现大字“
It works!
”说明 Apache 安装成功。  测试完毕!
  添加 Apache 每次开机自动启动
[plain] view plaincopy


  • [iyunv@gamejzy/]#echo"/usr/local/apache2/bin/apachectlstart">>/etc/rc.d/rc.local

十、安装MySQL(重要)  安装 MySQL 之前先建立一个专门管理 MySQL 的组和用户名
  建立一个组名叫“mysql”
[plain] view plaincopy


  • [iyunv@gamejzy/]#groupaddmysql


建立一个用户名叫“mysql”,让他属于“mysql”组[plain] view plaincopy


  • [iyunv@gamejzy/]#useradd-gmysqlmysql


[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdmysql-5.0.41/
  • [iyunv@gamejzymysql-5.0.41]#./configure--prefix=/usr/local/mysql--with-extra-charsets=all
  • [iyunv@gamejzymysql-5.0.41]#make&&makeinstall


./configure 参数说明:  --with-extra-charsets=all 安装MySQL 所有的字符集
  注意 在 ./configure 的时候如果出现如下错误
DSC0003.png

  原因:缺少ncurses安装包。
  解决方法:下载安装相应软件包
[plain] view plaincopy


  • yumlist|grepncurses
  • yum-yinstallncurses-devel


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

  MySQL安装完成之后,设置一些内容,这些内容非常繁琐,但是又非常关键的,希望大家耐心学习。
  1、设置配置文件 my.cnf,放在 /etc/ 目录下
[plain] view plaincopy


  • [iyunv@gamejzymysql-5.0.41]#cpsupport-files/my-medium.cnf/etc/my.cnf


2、初始化数据库文件,安装完 MySQL 之后,并不会出现 MySQL 的数据文件及数据存放位置  首先切换到 MySQL 的安装目录下
[plain] view plaincopy


  • [iyunv@gamejzymysql-5.0.41]#cd/usr/local/mysql/


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


  • [iyunv@gamejzymysql]#bin/mysql_install_db--user=mysql


运行完之后,会发现 MySQL 安装目录中会多一个 var 目录,里面放置的就是数据库文件,包括我们已经建的数据库都会放置在这个目录里面。  3、设置 MySQL 安装目录权限
  改变目录下的所有文件和目录的拥有者为 root
[plain] view plaincopy


  • [iyunv@gamejzymysql]#chown-Rroot.


改变 var 目录的拥有者为 mysql 用户[plain] view plaincopy


  • [iyunv@gamejzymysql]#chown-Rmysql./var/


改变所有目录和文件的用户组为 mysql 组[plain] view plaincopy


  • [iyunv@gamejzymysql]#chgrp-Rmysql.


4、启动 MySQL[plain] view plaincopy


  • [iyunv@gamejzymysql]#/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 命令,那么就能登录
[plain] view plaincopy


  • [iyunv@gamejzymysql]#bin/mysql


这样就太危险了!因此需要设置权限。  先登录进 MySQL 中,使用 SQL 命令删除主机不是“localhost” 的用户名(MySQL 中的用户都mysql库中的user表),只留允许本机登录的账号。
[sql] view plaincopy


  • mysql>deletefrommysql.userwhereHost!='localhost';


刷新授权表[sql] view plaincopy


  • mysql>flushprivileges;


设置允许本机进入 MySQL 的 root 用户的密码[sql] view plaincopy


  • mysql>setpasswordfor'root'@'localhost'=password('123456');


注:设置的密码必须记住,不然就进不去 MySQL 数据库了。  到这步的时候,我们的 root 用户,就已经设置了密码(密码为“123456”),我们可以测试一下,键入“exit”退出MySQL
  这时登录 MySQL 数据库的命令不能是 bin/mysql 那么简单,应该如下:
[plain] view plaincopy


  • [iyunv@gamejzymysql]#bin/mysql-h127.0.0.1-uroot-p123456


-h 指定主机名  -u 用户名
  -p 密码
  6、关闭 MySQL 数据库服务器
[plain] view plaincopy


  • [iyunv@gamejzymysql]#bin/mysqladmin-uroot-pshutdown

这里的是 root 用户是 MySQL 中的用户,执行后会提示你输入密码,Enter password:  输入密码,回车即可关闭数据库。
  启动命令,请看本节4
  7、加入到开机默认启动
[plain] view plaincopy


  • [iyunv@gamejzymysql]#echo"/usr/local/mysql/bin/mysqld_safe--user=mysql&">>/etc/rc.d/rc.local


十一、安装PHP(重要)  这里我们安装 PHP 的高版本 php-5.3.19,安装参数比较多,请一定注意。
[plain] view plaincopy


  • [iyunv@gamejzylamp]#cdphp-5.3.19/
  • [iyunv@gamejzyphp-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通讯特性

  执行命令后,出现“Thank you for using PHP.”,说明配置成功。
[plain] view plaincopy


  • [iyunv@gamejzyphp-5.3.19]#make&&makeinstall


编译和安装,时间会比较长,耐心等待吧!  编译完成后,需要以下配置
  1、设置 php.ini 配置文件
[plain] view plaincopy


  • [iyunv@gamejzyphp-5.3.19]#cpphp.ini-development/usr/local/php/etc/php.ini


注:/usr/local/php/etc 是在配置的时候指定的位置  2、和 Apache 整合
  先打开 Apache 的配置文件 httpd.conf
[plain] view plaincopy


  • [iyunv@gamejzyphp-5.3.19]#vi/etc/httpd/httpd.conf


会发现文件中有这么条内容[plain] view plaincopy


  • LoadModulephp5_modulemodules/libphp5.so


这就说明 PHP 已经加载到 Apache 服务器中了,我们所要做的是告诉 Apache 服务器,哪些后缀名使用 PHP 解析  在 vi 编辑器中搜索“AddType application/x-compress .Z”
  在后面添加一条:AddType application/x-httpd-php .php
  修改后的效果如下图
DSC0004.png

  保存并退出,重启 Apache
[plain] view plaincopy


  • [iyunv@gamejzyphp-5.3.19]#/usr/local/apache2/bin/apachectlstop
  • [iyunv@gamejzyphp-5.3.19]#/usr/local/apache2/bin/apachectlstart


  3、测试 Apache 服务器是否可以解析 PHP
  往 /usr/local/apache2/htdocs 目录下添加一个phpinfo.php 文件,键入以下代码:
[php] view plaincopy


  • <?php
  • header("Content-Type:text/html;Charset=utf-8");
  • phpinfo();
  • ?>


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

  

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361292-1-1.html 上篇帖子: web开发选择PHP、ASP还是ASP.NET 下篇帖子: 【捷哥浅谈PHP】第一弹---php位运算符”|”和逻辑运算符”||”遇到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表