• CentOS 7 x64下Apache+MySQL(Mariadb)+PHP5.6的安装


    每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下20遍了吧,原来都是凭经验,配置过程中重复入坑是难免的,故写此文做个备忘。虽然有像xampp这样的集成包,但是在生产环境的Linux发行版上,还是通过包管理工具安装会放心。这次新买的服务器是CentOS 7(7.2)系统,相关配置也都以此版本为主,为方便操作,直接使用root用户配置。

    配置yum源

    追加CentOS 6.5的epel及remi源。

    # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
    # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    

    以下是CentOS 7.0的源。

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

    使用yum list命令查看可安装的包(Packege)。

    # yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
    

    安装PHP5.6

    yum源配置好了,下一步就安装PHP5.6。

    # yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
    

    用PHP命令查看版本。

    # php --version

    CentOS 7的源比较旧,自带的PHP是PHP 5.4,我们想要的是PHP 5.6,这就需要执行以下命令添加额外的remi源。

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

    准备工作完成后,执行以下命令:

    #yum install httpd
    #yum install mariadb mariadb-server
    #yum install --enablerepo=remi --enablerepo=remi-php56 php php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit

    apache,mysql,php56就安装完了,从上面指令会发现没有mysql和mysql-server。这是由于mysql存在版权问题,自CentOS 7已经被移除,取而代之的是mariadb和mariadb-server,它们被设计成与mysql,mysql-server完全兼容;而php除了自身外还安装了mbstring,mcrypt,mysqlnd等插件,这些在大部分项目中都是必要的,如果没有安装可能会出现打开网站一片空白,查看日志也没错误的情况。

    现在我们看下apache的配置。apache安装完后就可以直接使用了,执行下命令先手动启动,并将它添加到开机启动。

    #systemctl start httpd #手动启动
    #systemctl enable httpd #添加开机启动

    执行netstat -tln检查下80端口是否在监听,如果有在监听说明启动成功了。

    然后打开apache的默认配置文件,位于/etc/httpd/conf/httpd.conf,找到DocumentRoot这一行,通常结果是

    DocumentRoot "/var/www/html”`

    ,它表示网站根目录位于/var/www/html。在该目录下执行echo "It Works!" > index.html(如果已经有该文件就不用自己创建了)。然后执行如下命令测试网站是否能正常访问。

    #curl http://127.0.0.1/
    It Works! #输出该结果表示一切正常

    当然,也可以直接在浏览器中访问测试。需要注意的是,如果你是从别的电脑访问,那么要先执行下iptables -F清空下防火墙,否则访问不了。

    然后我们看下PHP的配置。正常来讲,安装完php56之后,会在apache下生成相应的配置文件,确认下有生成以下文件:/etc/httpd/conf.modules.d/10-php.conf,/etc/httpd/modules/libphp5.so,/etc/httpd/conf.d/php.conf

    同样在网站根目录下执行以下命令创建php测试文件:

    #echo "<?php phpinfo; ?>" > info.php 

    访问下http://localhost/info.php,能显示PHP的配置信息即表示PHP安装成功,如果不行,执行apachectl restart重启下Apache服务器试试,如果失败再从其他地方找原因。

    最后看下mysql的安装与配置。执行以下命令,先手动启动,然后添加到开机启动,接着启动mysql服务器的初始配置。

    #systemctl start mariadb    
    #systemctl enable mariadb
    #mysql_secure_installation #完成mysql首次初始化

    完成以后,执行
    mysql -uroot -p<刚才设置的密码>登陆看看,如果成功说明mysql配置OK。
    至此服务器的配置就完成了。

    额外的配置

    现代的PHP开发,基本上都构建在composer之上,执行以下命令安装composer是必要的。

    #yum install --enablerepo=remi --enablerepo=remi-php56 composer

    phpMyAdmin用来管理MySQL也很方便,在/var/www/html下面,下载并解压就完成可以了。

    wget https://files.phpmyadmin.net/phpMyAdmin/4.6.5.1/phpMyAdmin-4.6.5.1-all-languages.zip
    mv phpMyAdmin-4.6.5.1-all-languages phpMyAdmin

    建议phpMyAdmin禁止root登陆,会比较安全,修改方法:进入phpMyAdmin目录,打开libraries/config.default.php,找到以下这行,

    cfg['Servers'][$i]['AllowRoot'] = true;

    true改为false即可。

  • 相关阅读:
    【Phalapi】新加Namespace (模块)
    【PHP】 curl 上传文件 流
    牛掰!我是这么把个人博客粉丝转到公众号的
    Stack Overflow 上 250W 浏览量的一个问题:你对象丢了
    为什么人到中年就危机了呢?
    Java 并发编程(三):如何保证共享变量的可见性?
    如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他
    国庆佳节第四天,谈谈我月收入增加 4K 的故事
    为什么要将局部变量的作用域最小化?
    面试官:兄弟,说说基本类型和包装类型的区别吧
  • 原文地址:https://www.cnblogs.com/hedianzhan/p/8867965.html
Copyright © 2020-2023  润新知