前面Nginx和httpd的安装都是为了支持PHP而弄的,然后这个目标就给了我一沉重的打击,等我慢慢道来,先来说说PHP的安装和配置吧。
一、PHP的安装
1、由于linux的yum源不存在php7.x,所以我们要更改yum源:
#rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm #rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
2、yum查询安装php71w
#yum search php71w
3、yum 安装php71w和各种拓展,选自己需要的即可。
#yum install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-fpm php71w-gd php71w-mbstring php71w-mysqlnd php71w-opcache php71w-pdo php71w-xml
4、安装完成之后,#whereis php 可以看到php的安装目录,然后我们来给php配置环境,实际上在centos7上php.ini已经不用像在Windows上那样配置了。我们只需要修改这个文件的参数设置cgi.fix_pathinfo,默认设置值为“1”,用;进行注释或修改为0即可。(@ _@)
#vim vim /etc/profile
在末尾添加
PATH=$PATH:/usr/local/php/bin //记得修改为自己php的安装路径
export PATH
:wq保存退出
source /etc/profile //运行该句指令使修改生效
php -v //就可以看到PHP版本信息了。
5、测试,在自己的Nginx或Apache或自建的网页目录下新建index.php,编辑内容为<?php phpinfo(); ?>
然后在网页上输入192.169.x.x:80/index.php,如果能看到php信息页面说明你的Nginx或httpd安装成功,
但我就没有这么幸运了,特别是在Nginx上。
由于Nginx对PHP的支持需要php-fpm拓展的安装和启动,然后刚开始的时候我是对php-fpm进行单独的安装和配置,启动运行systemctl start php-fpm.service systemctl start nginx,
netstat -lntp ,可以看到启动的端口和服务。
但在测试的时候,index.php总是无法解析,而是把index.php文件进行下载到本地了,很是纠结,然后我就放弃了Nginx的配置,转而配置httpd。
同样的是纠结了我好长一段时间的是,刚开是的时候httpd是能正常解析php文件的,但有段时间我把httpd服务给kill掉过后,由于不甘心又去配置Nginx,还是老样子,就又回来启动httpd,这时连httpd也都不能解析php文件了,只能访问html静态文件。而且还出现了些异常现象,后来仔细检查,在#systemctl status httpd中看到了下面错误,提示进程Process:2401启动失败。想着可能PID为2401的端口被占用,#netstat -anp --查看所有端口情况,当然没找到占用情况(无语加崩溃)。后来重启实例,重启httpd,竟然好了,(想着可能是进程启动失败或端口占用原因,我还清过缓存。具体原因还在不断摸索中,在此作个记录。)
Nginx解析php失败的原因将继续研究。。。
附:https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7