centos7配置LEMP环境(PHP、nginx、MySQL)
前言
系统环境(centos7)
$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
一、安装PHP7
1.删除旧版本
yum remove php*
2.添加 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
3.yum安装PHP7
yum install php70w* --skip-broken //安装全部插件 跳过冲突
4. 测试php版本
$ php -v
PHP 7.0.33 (cli) (built: Dec 6 2018 22:30:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies
with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans
5.启动php-fpm
systemctl start php-fpm
二、安装nginx
1.添加 yum 源
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.yum安装nginx
yum install nginx
3.配置 Nginx 服务
# 设置开机启动
systemctl enable nginx
# 启动/停止服务
systemctl start/stop nginx
# 重启服务
systemctl restart nginx
# 重新加载(一般重新配置之后,不希望重启服务,这时可以使用重新加载)
systemctl reload nginx
调整配置
$ ps aux|grep php
root 18091 0.1 0.5 739076 42988 ? Ss 09:45 0:00 php-fpm: master process (/etc/php-fpm.conf)
apache 18102 0.0 0.1 739076 11768 ? S 09:45 0:00 php-fpm: pool www
apache 18103 0.0 0.1 739076 11768 ? S 09:45 0:00 php-fpm: pool www
apache 18104 0.0 0.1 739076 11768 ? S 09:45 0:00 php-fpm: pool www
apache 18105 0.0 0.1 739076 11768 ? S 09:45 0:00 php-fpm: pool www
apache 18106 0.0 0.1 739076 11772 ? S 09:45 0:00 php-fpm: pool www
root 20305 0.0 0.0 112712 988 pts/2 S+ 09:46 0:00 grep --color=auto php
$ ps aux|grep nginx
root 27869 0.0 0.0 46440 968 ? Ss 09:50 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 27870 0.0 0.0 46848 1924 ? S 09:50 0:00 nginx: worker process
nginx 28098 0.0 0.1 739076 11772 ? S 09:50 0:00 php-fpm: pool www
nginx 28099 0.0 0.1 739076 11772 ? S 09:50 0:00 php-fpm: pool www
nginx 28100 0.0 0.1 739076 11772 ? S 09:50 0:00 php-fpm: pool www
nginx 28101 0.0 0.1 739076 11772 ? S 09:50 0:00 php-fpm: pool www
nginx 28102 0.0 0.1 739076 11776 ? S 09:50 0:00 php-fpm: pool www
root 29531 0.0 0.0 112712 988 pts/2 S+ 09:51 0:00 grep --color=auto nginx
可以看到php现在运行的是apache用户,而nginx运行的是nginx用户,两者不一致。
要保持两者一致性
,才可以进行反向代理。同时,避免后续的一系列奇葩问题。
修改php-fpm
vim /etc/php-fpm.d/www.conf
如下将user和group由apache改为nginx。
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
重启php-fpm
systemctl restart php-fpm
测试页面
备份nginx配置文件
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
打开nginx配置文件
vim /etc/nginx/conf.d/default.conf
注释掉php配置
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
创建测试页面
vim /usr/share/nginx/html/info.php
输入以下字段:
<?php
phpinfo();
?>
浏览器打开ip地址,显示php版本和配置信息。
三、安装MySQL
1)指定版本(5.7)
下载mysql的repo源并安装mysql服务
# 进入下载目录
cd /usr/local/src/
# 下载mysql rpm
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
# 安装mysql服务
yum -y install mysql-server
默认配置文件路径
# 配置文件:/etc/my.cnf
# 日志文件:/var/log/var/log/mysqld.log
# 服务启动脚本:/usr/lib/systemd/system/mysqld.service
# socket文件:/var/run/mysqld/mysqld.pid
启动mysql服务
service mysqld restart
重置密码
grep "password" /var/log/mysqld.log
可以在输出位置看到系统设置的随机密码:root@localhost:随机密码
接下来进入mysql,并修改密码。(第一次登陆 ,需要重置密码 要不什么也不能操作)
# 进入mysql
mysql -u root -p 上面的随机密码
# 修改密码
alter user 'root'@'localhost' identified by '新密码';
# 刷新权限
flush privileges;
最后,退出MySQL,重新进入,需要输入你的新密码了。
2)不指定版本
# 安装MySQL服务
yum install mysql-server
# 重新启动MySQL
/etc/init.d/mysqld restart
# 配置MySQL
/usr/bin/mysql_secure_installation
提示将要求您输入当前的root密码。
因为你刚刚安装MySQL,你很可能不会有一个,所以留空,按enter键。
Enter current password for root (enter for none):
OK, successfully used password, moving on...
然后提示将询问您是否要设置root密码。 继续,选择Y,然后按照说明进行操作。
CentOS自动化设置MySQL的过程,问你一系列是或否的问题。
这是最简单只是说是的所有选项。 最后,MySQL将重新加载和实现更改。
四、设置自动启动
将所有新安装的程序设置为在VPS引导时自动启动
chkconfig mysqld on
chkconfig nginx on
chkconfig php-fpm on
五、补充扩展
centos下的chkconfig基本命令
1. 开机启动列表查看: chkconfig --list
2. 添加服务: chkconfig --add servicename
3. 删除服务: chkconfig --del servicename
4. 查看具体启动服务信息: chkconfig --list servicename
5. 开启自动启动服务 : chkconfig httpd on
6. 开启自动不启动服务: chkconfig httpd off
7. Level选项: chkconfig --level 35 sshd on 将Level3和Level5设置成on
例如:chkconfig --list sshd
输出:httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
说明: 0-6 分别表示的意义
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
六、参考
https://www.jianshu.com/p/8d54a401ec06
https://qizhanming.com/blog/2018/08/06/how-to-install-nginx-on-centos-7
https://www.howtoing.com/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-6
https://blog.csdn.net/localhostcom/article/details/73824874
https://blog.csdn.net/z13615480737/article/details/78906598
如果需要源码编译安装,参考:https://www.cnblogs.com/kingzjm/p/10373727.html