LAMP环境搭建

目录
[隐藏]

前面搞定了虚拟机的网络问题,接下来就开始搭建LAMP环境了,第一次搭建还是遇到不少问题,但通过解决问题也学到了蛮多知识,要记的东西太多了,好记性不如烂笔头,赶紧的写下来。

1、配置环境

    虚拟机系统:CentOS7.3-1611.Minimal

    httpd版本:2.4.6

    PHP版本:5.6.31

    MySQL版本:5.6.37

    仅仅只是用来学习的,下载 CentOS7.3-1611.Minimal 这个版本感觉好多了,只有680MB,带了桌面系统和其它软件集成的4个G起步,,这次搭建都是使用 yum 来安装的,虽然安装后目录比较分散,但不用自己处理依赖性,使用起来比较简单。

2、安装httpd

    在CentOS 中,httpd就是Apache HTTP Server,所以要安装Apache就是要安装httpd的咯。开始没注意yum 源的问题,所以直接在系统自带的 yum 源安装的httpd,所以是httpd 2.4.6 版。

    先看下系统中安装httpd没有: 

           rpm -qa | grep httpd ,如果已经安装了则会显示 httpd 相关的包的。

    然后直接安装:

            yum install httpd   如果加了 -y 选项,则表示对安装过程中所有询问都直接确定,初次安装还是一步一步走,看看安装过程。

    安装完先看下安装了什么包把 rpm -qa | grep httpd

                        

    怎么也得了解清楚下安装后的目录结构吧,看下都在哪里:whereis httpd

         

    想更详细看下目录?执行:rpm -ql httpd | more  记得用more查看,目录太多了:

              

     这下能看到不少东西了,httpd 一些相关目录如下所述:

          主目录:/etc/httpd

    该目录下存放了三个配置文件目录,三个链接文件,如下

          配置文件目录:/etc/httpd/conf

          额外配置文件目录:/etc/httpd/conf.d

          模块配置文件目录:/etc/httpd/conf.modules.d

          链接文件:run->/run/httpd ,log->../../usr/log/httpd,

                          modules->../../usr/lib64/httpd/modules

         主要配置文件:/etc/httpd/conf/httpd.conf

    访问日志文件:/var/log/httpd/access_log    
    错误日志文件:/var/log/httpd/error.log 

    通过 httpd.conf 可以看到很多有用的信息的,路径、目录的访问限制等

          ServerRoot:/etc/httpd

          Listen:80

          DocumentRoot:/var/www/html   

    第一遍看,觉得有点奇怪,怎么没看到在Windows中加载模块的地方,,再仔细看才发现

                   

    在第56行,Include conf.modules.d/*.conf  就是用来加载模块的。

    了解了大概,就要修改下 httpd.conf 配置了:

            95行 将 ServerName  的 www.example.com 修改为自己的域名或者是localhost

          151行 将 AllowOverride none  改为 AllowOverride All

    修改完执行:systemctl restart httpd.service  重启httpd服务即可。


2.1 开启 80 端口

     CentOS7 中80端口默认是没有打开的,而且防火墙也是用的 firewalld,网上很多教程都是选择禁用firewalld,然后重新安装之前版本的防火墙。。。这里直接使用 firewalld。

     firewall-cmd --zone=public --add-port=80/tcp --permanent

        (--permarnent 表示永久有效,缺少该参数将会在重启后失效)

     接下来在 /var/www/html  中随便写个页面,然后去宿主机中测试吧,我这里删除了默认的初始页面,自己随便写的,如下图。

                             

    至此,httpd 安装算是完成了。

3、安装PHP5.6.31

     CentOS系统自带的、阿里的、163的 yum 源,都只提供了 php5.4.16 版本。要安装指定版本的php,那就只能添加额外的 yum 源啦。这里将默认yum源改成163的了,同时添加了 epel 和 remi 源。

     yum 源所在目录:/etc/yum.repos.d

     要改动该目录前,建议先备份默认的yum,然后再修改或添加。

     添加 epel 和 remi 源:

         yum install epel-release
         rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

    安装完后,/etc/yum.repos.d 目录下就会多出:epel.repo,remi.repo,remi-safe.repo 等好几个repo文件了,进去查看可以发现并不是每个都启用了的。

     yum 源搞定了,接下来就安装php吧:

        yum install --enablerepo=remi --enablerepo=remi-php56 php

     这样安装的就是php5.6.37 啦,--enablerepo 用来指定从哪些yum源查找下载,如果没有指定,那还是默认从 CentOS-Base.repo 中去找,就还之会看到php5.4.16的版本。。。

     安装完后,同样要了解目录结构:还是和上面提到的方法一样

          模块配置文件目录:/etc/php.d   存放模块的 .ini 配置文件,比如 bz2.ini 。

                 主要配置文件:/etc/php.ini  php的主要配置文件

     接下来,就可以直接在 /var/www/html 下写php程序,然后通过服务器访问了,什么鬼?明明还没有让Apache 开启对php的支持啊,怎么解析的?

      实际上,当安装PHP的时候,系统自动将PHP模块添加到Apache的目录了,在/etc/httpd/conf.d 下生成了一个 php.conf 的配置文件,然后再看 httpd.conf 的最后一行:IncludeOptional conf.d/*.conf  将conf.d目录下的所有配置文件都包含进去了,所以已经形成关联了。这也意味着,如果需要添加什么参数的话,可以不用修改 httpd.conf ,只需要在 conf.d 下创建一个 xxx.conf 文件,然后写要改的内容即可!

      测试一下吧:

                         

     基本的php功能已经有咯,然后再安装一些扩展:

            yum install --enablerepo=remi --enablerepo=remi-php56 php-opache php-perl-apcu php-mysqlnd php-gd php-curl php-ctype php-devel php-mbstring php-mcrypt php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-xml php-bcmath php-process

      需要其它扩展的自行查找添加即可。

      查看已安装的php扩展:php -m | more

      查看模块编译后的目录:php -i       找到 extension_dir

              

    所以模块编译后的 .so 文件就在:/usr/lib64/php/modules  目录下

               

4、安装MySQL 5.6.37

      CentOS7中,用 MariaDB 取代了 MySQL,MariaDB 是MySQL的一个分支。所以安装 MySQL 就要去官网下载咯,官网提供rpm文件,这样就可以用yum来安装了。

      首先下载rpm文件:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

      安装源:rpm -ivh mysql-community-release-el7-5.noarch.rpm
      安装完这个,在 /etc/yum.repos.d 下多出来两个源:mysql-community.repo,mysql-community-source.repo。在第一个源中启用了MySQL5.6的包。
      然后安装MySQL:yum install mysql-community-server

      装好后就是一些常规的设置了,,如果要允许用户能远程访问数据库,则在创建用户时,主机部分可用“%”代替,表示任意主机都可以。

       前面已经安装了php的MySQL扩展了,直接走一个。

            

                               

    这里需要注意一点!连接MySQL时,主机一定要写成“127.0.0.1”的形式,如果写“localhost”,则会报错,如下     

    

   查阅资料后找到了原因:

         当主机填写为localhost时,mysql会采用 unix domain socket连接

         当主机填写为127.0.0.1时,mysql会采用tcp方式连接

         这是linux套接字网络的特性,win平台不会有这个问题

    解决方法:

         在my.cnf 的 [mysql]区段里添加

                protocol=tcp

          重启MySQL 即可。

5、参考阅读

  • http://blog.csdn.net/analogous_love/article/details/53032961
  • http://www.cnblogs.com/starof/p/4680083.html
  • http://segmentfault.com/a/119000000418618

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To