Centos yum安装php+mysql(mariadb)+httpd(apache)环境

来源:互联网 发布:优胜网络在线教育 编辑:程序博客网 时间:2024/06/05 03:52

Centos yum安装php+mysql(mariadb)+httpd(apache)环境

本文使用CentOS 6 x64版本,Centos7通用,安装php+mariadb+httpd环境,有机会会介绍windows版本安装与linux下二级制源码安装。
一、环境介绍
新入手一个美国老牌主机商vultr.com的$5/month的主机,一直用作ss使用,有近5年没有使用过PHP了,今日计划使用期安装下zblog系统和wordpress,自己动手制作个主题模板,做个bolg。

环境 命令 参数 OS cat /etc/redhat-release CentOS release 6.8 (Final) host uname -a Linux 2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

二、MYSQL(mariadb)安装
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
安装mysql:yum install -y mysql-server mysql mysql-devel
mysql centos 安装
这里mysql-server为mysql服务端软件,mysql 为mysql客户端软件,用于本地命令行方式连接操作mysql,这两个都比较好理解。mysql-devel为mysql开发者工具包,里面主要提供C/C++开发Mysql应用软件时使用的头文件等信息,同时例如Python,PHP等其他解释型脚本语言底层使用的都是C语言库,故在安装其mysql扩展插件时有可能需要mysql-devel开发环境。这里使用的是yum的方式安装mysql服务,若在没有网络的情况下可以使用rpm安装,centos自带光盘或ISO文件下Packages下面的rpm安装包。若是机器不是X86体系的处理器,而是例如国产化一些处理器如龙芯,飞腾等,运气好可以找到rpm包,找不到就只能源码安装,这里安装过程就不多说了,曾经在龙芯2B上安装一个MYSQL5.1,编译就耗时了近3个小时。
三、HTTPD(apache)安装
httpd安装:yum install -y httpd
httpd centos 安装
这里安装很简单,同理没有网络或芯片级差异请找rpm包或源码编译。

PS:这里主要说两点题外话,第一,rpm包其实是在这个平台上通过源码编译完成之后生成的二级制文件包,就是一个压缩包,其中有一些脚本,通过rpmbuild工具打包成当前平台向的rpm安装包或软件补丁包,具体可自行百度Google。第二,例如很多软件名称如下httpd、sshd、mysqld、pptpd后面都带个d,这个d的意思简单说下,d是daemon名称是守护神的意思,计算机术语是守护进程,没错,这些都是守护进程的意思,守护进程是一类在后台运行的特殊进程,确保其守护的服务正常运行。

四、php安装
php安装:yum install -y php php–devel
php扩展插件安装:yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
安装成功测试:
httpd安装后未修改配置文件/etc/httpd/conf/httpd.conf的情况下,默认web跟目录在/var/www/html,故在目录下建议一个info.php的文件,文件内容如下:
php centos install
这时候我们启动httpd服务查看效果,service httpd start

PS:不好意思,这里又要废话了,这里简单说下httpd这些服务,其实是存在于/etc/目录下的脚本文件,具体可了解linux服务。

httpd服务

这里httpd其实是一个bash脚本文件,其中而有start,stop,restart,status等函数,感兴趣的可以了解下,这里不啰嗦了,结果如下图所示,即安装成功。

phpinfo

在安装完成后,安装其他开源程序时,例如wordpress,phpwind,zblog等程序时,若出现上传失败,(即创建新文件失败),请从两方面考虑,用户权限问题,系统权限认证问题。用户权限问题主要体现在文件权限上,这里建议不要不管三七二十一就chmod 777 *来赋权,这样第一即使解决了也存在巨大问题如安全问题。第二在selinux MAC认证下,即使777也解决不了问题。

我们分析下这个问题,首先创建文件失败,除了磁盘满了,坏了等特殊情况下,肯定是权限出问题了,首先我们来看下,运行httpd服务的用户是谁,首先我们找到是那个进程在监听80端口,这里由于安全考虑,不想被来回扫到,我机器修改了httpd.conf文件,监听端口888。netstat -anp |grep 888 如下图:
netstat -anp
888端口监听的进程PID是10283,我们查找其与其相关的进程,ps -ef|grep 10283
ps
大家可以发现10283是由root用户启动,它创建了一些子进程,子进程的用户是apache,这里我们可以简单理解,httpd的业务处理服务进程是由apache用户启动的,所以需要对上传文件的目录给apache用户赋权限,可以通过 chown -R path path为具体路径。
此外,由于red hat体系(centos属于redhat的社区版)默认是运行selinux认证机制的,所以需要关闭其selinux,通过命令setenforce 0 暂时关闭,具体selinux认证是什么可以自行百度。

原创粉丝点击