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

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

#yum install epel-release
#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
#unzip 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即可。

权限问题

许多网站都有对WEB目录写入的需求,典型的如上传文件。但是http是以apache的用户运行,而我们创建文件并不是以apache的用户创建,所以一运行会得到Permission denied的错误。通过chown将文件所有者修改为apache或者通过chmod修改为777并不是个好做法,正确的做法是通过ACL控制,执行以下命令使apache对/var/www/html内的所有文件都有写权限、创建的文件可以继承目录权限。

#setfacl  -R -d --set u:apache:rwx /var/www/html
#setfacl -R -m u:apache:rwx /var/www/html

参考

CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装的更多相关文章

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

    每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下20遍了吧,原来都是凭经验,配置过程中重复入坑是难免的,故写此文做个备忘.虽然有像xampp这样的集成包,但是在生产环境的Linux发行 ...

  2. 如何升级CentOS 6.5下的MySQL

    如何升级CentOS 6.5下的MySQL http://jingyan.baidu.com/article/48a42057e9b9bca9242504ab.html | 浏览:1136 | 更新: ...

  3. CentOS和Windows下配置MySQL远程访问的教程

    CentOS和Windows下配置MySQL远程访问的教程   一.前言 由于实验在云服务器上跑的结果不是很理想.所以,现在切换到局域网服务器.因此,需要重新配置 Windows 服务器和 CentO ...

  4. centos下apache+mysql+php安装及配置

    今天难得休闲,自从加盟当前公司以来好像就基本没有写过博客了.难得闲下来和前同事聊天,他们几个人合伙买了VPS在用.这对我们搞WEB开发的童鞋来说是非常重要的,我来这家公司有许久了,但是竟然到现在连一台 ...

  5. centos下 apache+mysql+php的安装

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  6. Centos 7环境下编译mysql 5.7

    首先在编译之前,我们要了解相关mysql 5.7的编译选项,官网编译选项地址:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-o ...

  7. Centos 7环境下配置MySQL 5.7读写分离

    1.实验目的: 实现在Centos 7系统环境下,MySQL5.7读写分离. 2.实验条件: MySQL主服务器:Centos 7桌面环境,IP:10.10.11.31 MySQL从服务器:Cento ...

  8. Mac下Apache+MySQL+PHP安装

    max下是自带有Apache和php的服务器的,不需要另外安装,本文就对相关配置进行介绍. 第一:Apache 在终端中输入,下面指令即可启动Apache服务器: //启动 sudo apachect ...

  9. Windows下Apache+MySQL+PHP快速配置的几种方法

    Apache MySQL PHP Windows WAMP 1.易思EasySiteServer服务器集成环境 v1.0  (推荐) 尔创互联为推广其ESPCMS而开发的一个小东东,很好用.零配置,完 ...

随机推荐

  1. 在网上摘录一段对于IOC的解析,比较直观,大家观摩观摩

    其实IoC非常简单,基本思想就是面向接口的编程,只是老外给起了个名字名充分利用之. 简单的说,传统模式下,如果你要用钱,你需要去银行取,IoC模式下,银联在你家安了一个取款机,你直接找取款机要钱就可以 ...

  2. 如何权衡自己的angular水准

    angular是现在常用的一个前端MVVM框架,感受下下面的问题权衡下自己的水准吧. 1. angular的数据绑定采用什么机制?详述原理2. 两个平级界面块a和b,如果a中触发一个事件,有哪些方式能 ...

  3. WCF学习之旅—WCF中传统的异常处理(十六)

    WCF中的异常处理 在软件开发过程中,不可能没有异常的出现,所以在开发过程中,对不可预知的异常进行解决时,异常处理显得尤为重要.对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地 ...

  4. 深入理解CSS3 Animation 帧动画

    CSS3我在5年之前就有用了,包括公司项目都一直在很前沿的技术. 最近在写慕课网的七夕主题,用了大量的CSS3动画,但是真的沉淀下来仔细的去深入CSS3动画的各个属性发现还是很深的,这里就写下关于帧动 ...

  5. 从零开始编写自己的C#框架(13)——T4模板在逻辑层中的应用(二)

    最近这段时间特忙,公事私事,忙得有时都没时间打开电脑了,这两周只能尽量更新,以后再将章节补回来. 直接进入主题,通过上一章节,大家明白了怎么使用模板类编写T4模板,本章进的是一些简单技巧的应用 1.首 ...

  6. node实现watcher的困境

    @(node,watcher) watcher,在如今的前端领域已经数见不鲜了.目前流行的gulp流程工具提供了watcher的选项,是我们在开发过程中不需要手动进行触发构建流程,转而根据文件(目录) ...

  7. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...

  8. Web安全相关(二):跨站请求伪造(CSRF/XSRF)

    简介 CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对 ...

  9. 2.JAVA之GUI编程布局

    布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...

  10. 阿里巴巴最新开源项目 - [HandyJSON] 在Swift中优雅地处理JSON

    项目名称:HandyJSON 项目地址:https://github.com/alibaba/handyjson 背景 JSON是移动端开发常用的应用层数据交换协议.最常见的场景便是,客户端向服务端发 ...