本博客写在的说明:
此篇文章主要来自网络收集,具体看写在最后的文章来源。博主昨天中午的时候搜到了这篇“CentOS 6.5系统安装配置LAMP(Apache+PHP5+MySQL)服务器环境”的文章,且博主的版本是CentOS5.8的,且被空间商称为纯净版的。由于博主还是linux菜鸟,所以在安装搭配的过程中的确碰到了问题,那么博主会在文章中会以“博主的说明”在原博主的文章之上加以说明,方便博主以及看到这篇文章的朋友参考。
本文章适合系统已经装好的用户使用,没有其他诸如分区、网络设置等内容,仅讲Apache+PHP5+MySQL的服务器搭配。

~~~~~~~~~~~~~~~~~~~~~~~~~~性感的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~



一直都认为国内最好的PHP框架为 ThinkPHP,但有朋友说在做DB更新的时候,会出现偶然性几率的丢失掉 Where 条件,等于说做有条件的更新的时候,有可能就突然变成了全部更新,惊恐。唯有转投当前最热门之一的 YII 框架 。
Down下基础框架后,跑一下,发现没效果,查看一下教程文档才发现原来需要最低 PHP5.4 的版本支持,但系统上用的是php5.3 的版本,看来要升级了。
吐槽一下,不知道为什么,php都更新了那么多个版本了,但是 CentOS 默认 yum 安装的还是PHP5.3 的版本,根本找不到直接升级PHP的方法,唯有手工编译升级了。

首先说下思路,因为一开始系统上已经跑了一套完成的 PHP 环境,那时候都是快速自动安装的,如果是跑一些5.3以下版本的话,很简单,几个指令,10分钟搞定了。
但现在要升级,彻底一点的话,唯有推倒重来了。所以步骤有:

  1. 卸载掉当前的 Apache、php、mysql;
  2. 清除残留的一些配置文件;
  3. 一步步安装 Apache 、mysql、php,当然在过程当中需要注意每个软件的依赖控件不可少。

下面是整体的步骤,从卸载后开始(同理适合刚刚安装好的全新系统):

1. 准备工作,工欲善其事必先利其器,各个软件的安装包是必须的, 有:

apr-1.5.1.tar.bz2(博主的是apr-1.5.2.tar.bz2)
apr-util-1.5.4.tar.bz2
pcre-8.36.tar.bz2
httpd-2.4.10.tar.bz2(博主的是httpd-2.4.23.tar.bz2)

mysql-5.5.21.tar.gz

php-5.6.4.tar.bz2(博主的是php-5.6.5.tar.bz2)

具体的版本和下载地址相信大家都可以搜索下载好啦。

2. 安装Apache2.4

apr-1.5.1.tar.bz2
apr-util-1.5.4.tar.bz2
pcre-8.36.tar.bz2
这些是Apache依赖的一些安装包,解压,安装。
.tar.gz和.tar.bz2要解压很简单 :
.tar.gz 格式解压为 tar -zxvf xx.tar.gz
.tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
博主的说明:博主这里给新手说下,这个依赖,他就好比我们在win系统中安装新的软件的时候,提示你要安装最新的.net框架一样,必须以这个作为前提驱动才能成功安装。所以博主安装成功后才悟到这个道理,也就是我们必须安装好依次apr、apr-util、pcre后,才能依赖他们安装高版本的httpd-2.4.23)

cd apr-1.5.1
./configure --prefix=/usr/local/apr
make && make install

cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

cd pcre-8.36
./configure
make && make install
博主的说明:根据博主实际操作,执行./configure后是无法make && make install的,博主最后是通过如下操作完成的安装)
cd pcre-8.36
./configure --prefix=/usr/local/pcre
make && make install

都完成后正式安装Apache
cd httpd-2.4.10
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-rewrite
make && make install

cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
service httpd start
测试是否安装成功

出现“It works”就说明Apache已经正常安装。

博主的说明:博主安装到这里的时候没有出现“It works”,从昨天下午的某个时间一直到晚上,博主都把问题归咎于Apache没有成功安装的问题上,后来到今天中午,博主无意中找到了防火墙方面的资料说明,谢谢会不会要添加防火墙,于是博主就添加如下内容)
vi /usr/local/apache2/conf/httpd.conf
LoadModule vhost_alias_module modules/mod_vhost_alias.so
vi /usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost 1xx.1xx.1xx.2xx:80>
    ServerAdmin abcr@abc.com
    DocumentRoot "/usr/local/apache2/htdocs"
    ServerName 1xx.1xx.1xx.2xx
    ServerAlias 1xx.1xx.1xx.2xx
</VirtualHost>

博主的说明:这个是我在找Apache问题的时候修改文件以及内容,1xx为博主服务器的ip,这个修改之后才做了后面的防火墙的相关操作)

配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙
备注:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,
正确的应该是添加到默认的22端口这条规则的下面
博主的说明:博主添加的这两行分别是当前Apache的80,和后面会用到的mysql数据库用到的3306端口,但是外网还是无法访问,博主继续围绕防火墙问题展开资料查询,而后执行了如下命令后,通过外网ip就可以访问了,博主此时是非常开心的,所以才有了分享这篇文章,和进一步做码字做说明的动力。具体可以点击查看博主收集的centos防火墙初始化这篇文章。)
iptables -F
service iptables save
service iptables restart

2. 安装Mysql
需要先安装好 cmake
yum -y install cmake make

cd mysql-5.5.21

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFIGDIR=/usr/local/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql
make && make install
配置mysql 5.5.21
cp /usr/loacl/mysql/support-files/my-huge.cnf etc/my.cnf
vi /etc/my.cnf
修改my.cnf配置,把innodb相关选项前面的#去掉,大概在115-130行之间。

以下命令为mysql 启动及自启动配置
cp /usr/loacl/mysql/support-files/mysql.server /etc/init.d/mysqld
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
chkconfig --add mysqld
chkconfig --level 345 mysqld on

service mysqld start
一般只要把my.cnf设置好这里就不会报错

剩下mysql 的账号密码数据库等更改创建就还是老规矩了

  1. 安装PHP5.6

cd php-5.6.4
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/include/libxml2 --with-config-file-path=/usr/local/apache2/conf --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --enable-gd-native-ttf --with-zlib --with-mcrypt --with-pdo-mysql=/usr/local/mysql --enable-shmop --enable-soap --enable-sockets --enable-wddx --enable-zip --with-xmlrpc --enable-fpm --enable-mbstring --with-zlib-dir --with-bz2 --with-curl --enable-exif --enable-ftp --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-freetype-dir=/usr/lib/

有时候,CentOS会在编译过程中报错 mcrypt.h not found. Please reinstall libmcrypt
这个很好解决,百度一下就出来了,传送门
解决后
make && make install

apache配置文件httpd.conf相关修改以支持PHP
vim /usr/local/apache/conf/httpd.conf

  1. 添加php支持。
    AddType application/x-httpd-php .php .phtml
    AddType application/x-httpd-php-source .phps
  2. 添加默认索引页面index.php,再找到“DirectoryIndex”,在index.html后面加上“ index.php”
    DirectoryIndex index.html index.php
  3. 不显示目录结构,找到“Options Indexes FollowSymLinks”,修改为
    Options FollowSymLinks
  4. 开启Apache支持伪静态,找到“AllowOverride None”,修改为
    AllowOverride All
    保存httpd.conf配置,然后再执行以下两行命令
    chown -R nobody. /usr/local/apache/htdocs/
    chmod -R 777 /usr/local/apache/htdocs/
    service httpd restart

到这里基本 PHP环境搞定,测试一下.

本文来自:http://blog.csdn.net/along602/article/details/42695779

最后由 Leo 编辑于2016年09月08日 16:38