Centos7 PHP的安装和配置
最近下了一个index.php,把它放在域名下,访问的时候,总是变成下载模式,不能正确显示。一查,原来是自己的服务器没有装PHP,尴尬。。
一、安装
1.1 yum源
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
1.2. 配置
配置php.ini (这一步不确定不做行不行)
vi /etc/php.ini
按下esc进入命令模式,输入:/cgi.fix_pathinfo,按n
进行下一个查找,找到指定cgi.fix_pathinfo, 修改为=0;
配置www.conf(这一步决定了用什么用户来启动php-fpm,因为我的网址的文件夹放在sam用户下了,如果不改的话,没有文件夹读写权限)
vi /etc/php-fpm.d/www.conf
将
user = apache
group = apache
改为
user = sam
group = sam
前提是已经创建了sam用户和sam组。
1.3 环境变量修改(这一步没有做)
安装完成之后,#whereis php 可以看到php的安装目录。
vim vim /etc/profile
在末尾添加
PATH=$PATH:/usr/local/php/bin //记得修改为自己php的安装路径
export PATH
:wq保存退出
运行该句指令使修改生效
source /etc/profile
查到PHP版本信息
php -v
查看已安装的模块
php -m
1.4 启动服务
systemctl start php-fpm.service
systemctl restart nginx
开机开启服务
systemctl enable php-fpm
1.5 修改nginx配置
查看nginx配置文件位置
nginx -t
找到以后,然后修改
vim /etc/nginx/conf.d/blog.conf
vim /etc/nginx/nginx.conf
将index后面的修改为:
index index.html index.php
注:这一步很重要,最开始以为自己设置了的,后来一查,发现Https那块没有设置这个index,所以一直报403 Forbidden 的错误。
添加
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
注:这一步卡了好久,原因是这个location,只改了http的,没有改https。 最后通过 F12 – Network ,才知道自己的设定没有加进去
重新加载nginx配置:
systemctl restart nginx.service
1.6 测试
在自己的Nginx或Apache或自建的网页目录下新建index.php,编辑内容为
<?php phpinfo(); ?>
然后在网页上输入192.169.x.x:80/index.php,如果能看到php信息页面说明你的Nginx或httpd安装成功,
二、讨论
2.1 安装与配置php以后,打开index.php,还是变成下载模式
原因一:
只修改了http的location,没有修改https的location,实际打开的是https,傻笑
原因二:
php-fpm监听的不是9000的端口, 通过netstat -lnp 查看一下 9000是否被php-fpm监听
Debug采用的措施:
curl -svo /dev/null 'http://127..0.0.1:9000/index.php'
2.2 将网页变成下载模式
location add_header
location {
add_header Content-Disposition "attachment;filename=index.php";
}
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn