本次记录的教程是以 CentOS 7.7 版本为例。目的是搭建一个可以运行 WordPress 的 PHP 环境。
在 Linux 环境中搭建 PHP 环境,主流的使用的是三剑客 Php+Nginx+MySQL,Nginx 可以用 Apache 替代,各有优劣,个人比较喜欢 Nginx。协作内容很简单,Nginx 提供 web 服务,并将 php 相关的请求转到 PHP 环境中处理,PHP代码中使用的数据库,则直接进入到 MySQL 中进行。
安装 MySQL
如果直接使用 CentOS 默认的 yum 源来安装 MySQL 的话,即yum install mysql
,你就会成功安装上 MariaDB ,至于 MariaDB 和 MySQL 之间的关系,感兴趣的可以自行去搜索一下,你甚至可以去体验一下,跟 MySQL 差距不大。但是这里需要安装 MySQL,需要如下操作:
添加 MySQL 的 yum 源
一句话来安装
rpm -Uvh https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
执行成功则安装 yum 源成功
选择要安装的版本
查看源中默认指向的版本
yum repolist all | grep mysql
返回结果
看得出来倒数第二行启用的是8.0版本(注意我们要的是 community社区版),在不确定自己的程序能向上兼容8.0的情况下,最好安装我想要的 5.7版本,所以禁用80,启用57:
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
执行语句如果报错 “yum-config-manager: 未找到命令”,则需要安装 yum-utils,执行:
yum-config-manager --enable mysql57-community>yum -y install yum-utils
进行安装
接下来开始安装
yum install mysql-community-server
然后等待下载安装就好了。
启动和查看密码
因为使用的 yum 安装,因此需要配置的地方不多,安装完成之后,可以使用 service 命令来启动关闭重启mysql。
启动 MySQL
service mysqld start
修改默认密码
获取安装mysql时的临时密码
grep 'temporary password' /var/log/mysqld.log
复制这段密码,输入命令
mysql –uroot –p
使用临时密码登录
修改密码,密码要符合一定的强度才可以通过。
set password for root@localhost = password('新密码');
修改可以远程登录的权限
update db set host = '%' where user = '用户名';
百分号代表任何ip,之后刷新列表
flush privileges;
PHP安装流程
这里选择安装 php 7.2 版本,毕竟据说 php7 还是蛮快的(未亲自验证)。CentOS 的 yum 源依然没有 php7.2 的内容,跟 MySQL 如出一辙
首先安装EPEL软件包:
yum install epel-release
然后安装源
rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
查看源的情况
yum repolist all|grep php72
返回结果如下:
看起来全都被禁用了,启用第一个
yum-config-manager --enable remi-php72
然后就是安装PHP和PHP相关的插件。
不要问装那些插件,问就是全都装(其实不知道为啥要装,非专业选手)
yum install php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache
启动PHP7.2
同样是使用 service 命令来控制,比如启动
service php72-php-fpm start
安装Nginx
nginx 安装使用编译安装的方式,首先从官网下载安装包,这里选择目前的稳定版1.16。
wget https://nginx.org/download/nginx-1.16.1.tar.gz
如果提示 -bash: wget: 未找到命令 ,就安装一个 yum install wget
下载后解压缩
tar –zxvf nginx-1.16.1.tar.gz
进入到目录,然后安装,执行以下命令
./configure
make&&make install
如果报各种错误,应该是没有安装对应依赖,分别是
yum -y install gcc
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
安装完成
启动nginx
进入到nginx的目录,/usr/local/nginx,启动nginx
./nginx
这时候访问主机的 IP 地址,就会显示nginx的欢迎页面。打不开检查一下防火墙。
配置Nginx与PHP关联
这个比较关键,也是难度比较高的部分
1.创建一个用户
这里创建的用户名是 www
2.修改php的文件
vi /etc/opt/remi/php72/php-fpm.d/www.conf
将文件修改如下内容:
user www
group www
修改完成重新启动php-fpm
service php72-php-fpm restart
3.修改nginx的配置
vi /usr/local/nginx/conf/nginx.conf
去掉 user 的注解,改为 www
user www
设置网站根目录
默认nginx会访问安装目录里面的 html 文件夹,如果需要修改,则需要修改 server 下的 root 项,改成绝对路径。
默认配置中有关于PHP的配置,找到如下代码并将注解去掉,
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;
}
注意有些区别,fastcgi_param 部分有改动,注意也改一下,否则会出现400错误。
全文配置如下:
user www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.yelook.com;
root /home/www/htdocs;
location / {
#root html;
index index.html index.htm index.php;
try_files $uri $uri/ /index.php?$args;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
}
}
}
重启Nginx,进入nginx程序目录
./nginx –s reload
然后就在root指定的目录中创建测试文件 index.php
<?php
phpinfo();
不出意外的话会看到正常的php信息页面。(如果出现 access denied 可以关注一下 SELinux status 相关的信息)
感谢你的赏识与认可
支付宝
微信支付
使用手机访问这篇文章
本文许可协议 © CC BY-NC-SA 4.0 转载请注明来源
修改为可以远程登录的语句之前 少了一步:
use mysql;