摘要:记录一下开发环境的配置(会有多种方法,之后会逐步的完善各种配置方法)
CentOS上的PHP版本都十分古老,满足不了一些框架对PHP版本的要求。于是,出现了许多第三方软件库,如EPEL、RPM Fusion、Remi等,这些库提供了新版的PHP。让我们的系统能与时俱进。
但是,第三方软件库有几个缺点:第一,他们提供的软件没有经过CentOS官方测试,在安装软件的同时,可能会替换掉系统的一些核心文件,造成系统不稳定。第二,第三方库安装的软件可能不保证兼容性,也许对系统升个级就会导致某个软件没法使用。
这里使用SCL(Software Collections)软件库安装高版本的PHP。SCL属于CentOS官方的软件库,经过充分测试,安装软件时不会替换系统的核心文件,保证了系统的稳定性。
yum install centos-release-scl-rh
yum search php
yum install rh-php72
rh- 前缀是RedHat的意思,告诉你这是官方提供的PHP而不是第三方库提供的。
安装完之后,PHP实际会安装在/opt/rh目录下
scl -l
scl enable rh-php72 "php -v" 查看版本,但是太麻烦了,可以通过设置来使用
scl enable rh-php72 bash 执行后就可以直接正常使用 php -v查看信息
ps -ef|grep php 查看PHP是否启动
yum -y install epel-release
yum -y install nginx
systemctl start nginx.service
systemctl stop nginx.service
systemctl reload nginx.service
systemctl status nginx.service
以下是Nginx的默认路径:
(1) Nginx配置路径:/etc/nginx/
(2) PID目录:/var/run/nginx.pid
(3) 错误日志:/var/log/nginx/error.log
(4) 访问日志:/var/log/nginx/access.log
(5) 默认站点目录:/usr/share/nginx/html
yum -y install mariadb mariadb-server
默认的账户密码为空
systemctl start mariadb
systemctl enable mariadb
1 登陆服务器
2 关闭防火墙
输入~ systemctl status firewalld~命令查看当前防火墙的状态。
如果防火墙的状态参数是~inactive~,则防火墙为关闭状态, 可跳过此步骤。如果防火墙的状态参数是active,则防火墙为开启状态。如上图所示,此处防火墙为开启状态,需要运行如下命令关闭防火墙:
如果您想临时关闭防火墙,输入命令~systemctl stop firewalld~。
说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。
如果您想永久关闭防火墙,输入命令~systemctl disable firewalld~。
3 关闭SELinux
运行·getenforce·命令查看SELinux的当前状态。
如果SELinux状态参数是~Disabled~, 则SELinux为关闭状态,可跳过此步骤。如果SELinux状态参数是Enforcing,则SELinux为开启状态。如上图所示,此处SELinux为开启状态,需要运行如下命令关闭SELinux:
如果您想临时关闭SELinux,输入命令~setenforce 0~。
说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux还会开启。
如果您想永久关闭SELinux,输入命令~vi /etc/selinux/config~编辑SELinux配置文件。回车后,把光标移动到~SELINUX=enforcing~这一行,按下~i~键进入编辑模式,修改为~SELINUX=disabled~, 按下Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。
依次运行以下命令更新YUM源。
# yum install -y http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-15.ius.centos7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
说明 本教程以 ius-release-1.0-15.ius.centos7.noarch.rpm版本为例。实际安装过程中,请您使用最新版本ius-release软件包。
运行以下命令安装PHP
yum -y install php72w-devel php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-mcrypt.x86_64 php72w-pdo.x86_64 php72w-mysqlnd php72w-fpm php72w-opcache php72w-pecl-redis php72w-pecl-mongo
运行以下命令查看PHP版本。
php -v
地址:https://webtatic.com/packages/php72/
在/usr/share/nginx/html/目录下新建phpinfo.php文件,用于展示phpinfo信息。具体步骤如下:
运行vim /usr/share/nginx/html/phpinfo.php命令打开文件。
按i进入编辑模式。
输入下列内容。
<?php echo phpinfo(); ?>
按:wq保存并退出。
运行以下命令启动PHP-FPM。
systemctl start php-fpm
运行以下命令设置PHP-FPM开机自启动。
systemctl enable php-fpm
打开浏览器。
在地址栏输入http://<ECS实例公网IP地址>/phpinfo.php。
运行以下命令安装Nginx。
yum -y install nginx
运行以下命令查看Nginx版本。
nginx -v
返回结果如下所示,表示Nginx安装成功。
nginx version: nginx/1.12.2
运行以下命令备份Nginx配置文件。
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
运行以下命令打开Nginx配置文件。
vim /etc/nginx/nginx.conf
按i进入编辑模式。
在server大括号内,添加下列配置信息,使Nginx支持PHP请求。
location / {
index index.php index.html index.htm;
}
#配置Nginx通过fastcgi方式处理您的PHP请求
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000; #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理。
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; #Nginx调用fastcgi接口处理PHP请求
}
说明 若不添加此配置信息,则会导致Nginx无法处理您的PHP请求,即您请求的PHP页面将无法打开。
运行以下命令启动Nginx服务。
systemctl restart nginx
二:centos7.x用firewall打开80端口
1.关闭与开启防火墙
启动:systemctl start firewalld
关闭: systemctl stop firewalld
2.查看防火墙是否开启的状态,以及开放端口的情况
systemctl status firewalld.service
firewall-cmd --list-all
3. 通过以下命令开放http 80 端口
firewall-cmd --add-port=80/tcp --permanent
命令末尾的--permanent表示用久有效,不加这句的话重启后刚才开放的端口就又失效了
4 .然后重启防火墙:
sudo firewall-cmd --reload
5. 再次查看端口的开放情况:
firewall-cmd --list-all
ports:里出现了 80 端口
(同时阿里云的安全局也要增加个80规则,这里使用的Vultr)