CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装
每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下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的安装的更多相关文章
- CentOS 7 x64下Apache+MySQL(Mariadb)+PHP5.6的安装
每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下20遍了吧,原来都是凭经验,配置过程中重复入坑是难免的,故写此文做个备忘.虽然有像xampp这样的集成包,但是在生产环境的Linux发行 ...
- 如何升级CentOS 6.5下的MySQL
如何升级CentOS 6.5下的MySQL http://jingyan.baidu.com/article/48a42057e9b9bca9242504ab.html | 浏览:1136 | 更新: ...
- CentOS和Windows下配置MySQL远程访问的教程
CentOS和Windows下配置MySQL远程访问的教程 一.前言 由于实验在云服务器上跑的结果不是很理想.所以,现在切换到局域网服务器.因此,需要重新配置 Windows 服务器和 CentO ...
- centos下apache+mysql+php安装及配置
今天难得休闲,自从加盟当前公司以来好像就基本没有写过博客了.难得闲下来和前同事聊天,他们几个人合伙买了VPS在用.这对我们搞WEB开发的童鞋来说是非常重要的,我来这家公司有许久了,但是竟然到现在连一台 ...
- centos下 apache+mysql+php的安装
一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...
- Centos 7环境下编译mysql 5.7
首先在编译之前,我们要了解相关mysql 5.7的编译选项,官网编译选项地址:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-o ...
- Centos 7环境下配置MySQL 5.7读写分离
1.实验目的: 实现在Centos 7系统环境下,MySQL5.7读写分离. 2.实验条件: MySQL主服务器:Centos 7桌面环境,IP:10.10.11.31 MySQL从服务器:Cento ...
- Mac下Apache+MySQL+PHP安装
max下是自带有Apache和php的服务器的,不需要另外安装,本文就对相关配置进行介绍. 第一:Apache 在终端中输入,下面指令即可启动Apache服务器: //启动 sudo apachect ...
- Windows下Apache+MySQL+PHP快速配置的几种方法
Apache MySQL PHP Windows WAMP 1.易思EasySiteServer服务器集成环境 v1.0 (推荐) 尔创互联为推广其ESPCMS而开发的一个小东东,很好用.零配置,完 ...
随机推荐
- python处理命令行参数
直接从命令行执行py文件的时候如果带有参数,如何获取这些参数,如何解析? http://blog.chinaunix.net/uid-20786165-id-3182268.html sys.argv ...
- 【WCF】自定义地址头的筛选器
前面的文章中,老周已向大伙伴们介绍了如何在终结点上使用地址头,只要服务是沿着该终结点调用的,那么每一次调用都会自动把地址头插入到SOAP消息的Header列表中. 而通过前一篇文章中的示例,大家也看到 ...
- Android Studio vs. Eclipse ADT Comparison
Android Studio 是一个新的基于 IntelliJ IDEA Android 的安卓开发环境,它对 Eclipse ADT 进行了改进并新增了功能. Feature Android Stu ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- 【Spring-web】RestTemplate源码学习——梳理内部实现过程
2016-12-28 by 安静的下雪天 http://www.cnblogs.com/quiet-snowy-day/p/6228198.html 提示:使用手机浏览时请注意,图多费流量. 本篇 ...
- Android ORM -- Litepal(1)
ORM,即Object Relation Mapping,对象关系映射,实现了程序里面的类和数据库里面的数据之间的对应关系,对数据库的操作可以通过对类的操作去实现,不用再写SQL语句,从而提高了开发效 ...
- 使用do{ } while(0)的好处
经常看到好多程序,尤其是linux相关的,使用do{}while(0)的写法,很明显内部程序最多只能执行一次,这样写的原因是什么呢?个人认为主要的原因是,如果不使用do{}while(0),那么当一个 ...
- 使用 GitHub 和 Hexo 搭建个人独立博客
Wordpress这类博客系统功能强大,可对与我只想划拉的写点东西的人,感觉大材小用了.而且wp需要部署,网站的服务器也会带来问题,国内的服务器首先需要备案,费用不低:国外服务器访问速度受影响.近 ...
- Java使用实现面向对象编程:第七章集合框架的解读=>重中之重
对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...