记录:CentOS7.2配置LNMP环境记录
来源:SegmentFault
时间:2023-01-28 21:10:51 252浏览 收藏
在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《记录:CentOS7.2配置LNMP环境记录》,聊聊MySQL、Linux、nginx、PHP、centos,希望可以帮助到正在努力赚钱的你。
CentOS7.2配置LNMP环境记录
php 5.6+ nginx 1.10+ mysql 5.5+
LNMP是Linux、Nginx、MySQL(MariaDB)和PHP的缩写,这个组合是最常见的WEB服务器的运行环境之一。本文将带领大家在CentOS 7操作系统上搭建一套LNMP环境。
本教程适用于CentOS 7.x版本。
准备工作
更新 yum 源,自带的源没有 PHP5.6 :
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
安装 epel:
yum install epel-release
然后更新下系统:
yum update
准备工作完成,开始安装!
安装Nginx
CentOS系统模板中配置了内网源,下载速度较快,推荐使用yum安装Nginx:
sudo yum install nginx
按照提示,输入yes后开始安装。安装完毕后,Nginx的配置文件在/etc/nginx目录下。使用以下命令启动Nginx:
sudo systemctl start nginx
检查系统中firewalld防火墙服务是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外网端口访问。
sudo systemctl status firewalld
如果显示active (running),则需要调整防火墙规则的配置。
修改/etc/firewalld/zones/public.xml文件,在zone一节中增加:
...
保存后重新加载firewalld服务:
sudo systemctl reload firewalld
您可以通过浏览器访问 http://<外网IP地址> 来确定Nginx是否已经启动。
最后将Nginx设置为开机启动:
sudo systemctl enable nginx.service
这么Nginx就安装成功了!
安装MySQL(MariaDB)
MariaDB是MySQL的一个分支,主要由开源社区进行维护和升级,而MySQL被Oracle收购以后,发展较慢。在CentOS 7的软件仓库中,将MySQL更替为了MariaDB。
我们可以使用yum直接安装MariaDB:
sudo yum install mariadb-server
安装完成之后,执行以下命令重启MariaDB服务:
sudo systemctl start mariadb
MariaDB默认root密码为空,我们需要设置一下,执行脚本:
sudo /usr/bin/mysql_secure_installation
这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。
首先提示输入当前的root密码:
- Enter current password for root (enter for none):
初始root密码为空,我们直接敲回车进行下一步。 - Set root password? [Y/n]
设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。 - Remove anonymous users? [Y/n] 是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。
- Disallow root login remotely? [Y/n]
是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。 - Remove test database and access to it? [Y/n] 是否删除测试用的数据库和权限?
建议按照默认设置,回车继续。 - Reload privilege tables now? [Y/n]
是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。
完成后你会看到Success!的提示,MariaDB的安全设置已经完成。我们可以使用以下命令登录MariaDB:
mysql -uroot -p
按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。
最后我们将MariaDB设置为开机启动。
sudo systemctl enable mariadb
安装PHP
我们可以直接使用yum安装PHP:
sudo yum install php56w-cli php56w-fpm php56w-mysql php56w-mysqli php56w php56w-opcache php56w-gd php56w-intl php56w-mbstring php56w-exif php56w-mcrypt php56w-openssl //把该安装的一次性装到位
安装完成后我们将php-fpm启动:
sudo systemctl start php-fpm
将php-fpm设置为开机启动:
sudo systemctl enable php-fpm
接下来需要注意了!~配置Nginx--多个站点
我给大家提供一个范本作为参考:
nginx.conf
里面我会详细的给予中文注释
vi /etc/nginx/nginx.conf //编辑nginx.conf的命令
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; #错误日志记录的位置 pid /run/nginx.pid; #nginx.pid为记录nginx主进程pid文件;切勿修改、移动 # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; #引入/usr/share/nginx/modules/ 目录下的所有以.conf结尾的文件 events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; #这句很重要,引入所有etc/nginx/conf.d/目录下的.conf文件 #***etc/nginx/conf.d/目录存放的就是分站点的文件(下面会给出实例代码)*** server { #由于我们的nginx需要配置多站点,所以在此就需要注释一些东西 listen 80 default_server; listen [::]:80 default_server; #保留监听的端口 # server_name _; # root /usr/share/nginx/php; # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # location / { # } # error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } # location ~ \.php$ { # root /usr/share/php; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; # } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } } #注意:此份nginx.conf可以直接复制了去使用!~好用了就给博主打个赏钱!谢谢!
配置完nginx之后我们该干啥、?当然是重启nginx呗
service nginx start #启动nginx service nginx stop #停止nginx service nginx restart #重启nginx sudo systemctl reload nginx #或者执行这条
重启完毕,继续打开 http://<外网IP地址> 来确定Nginx是否已经启动
此时,服务器启动的是nginx和apache
而且php-fpm默认发送到apache
所以咱们还得继续修改一下php-fpm
配置 php-fpm :
vi /etc/php-fpm.d/www.conf #编辑php-fpm配置文件
修改user和group (源代码为:user = apache group = apache)
user = nginx group = nginx
修改完了之后,还是老样子,重启php-fpm服务
service php-fpm start #启动php-fpm service php-fpm stop #停止php-fpm service php-fpm restart #重启php-fpm
最后,咱们需要为nginx添加站点了
添加站点这我先给大家一个截图,以帮助大家迅速的了解是怎么回事
大家应该看的很清楚了,猜都可以猜到,博主这一共配置了三个站点,这三个站点是怎么被nginx引入的呢?
我给大家贴出nginx的配置文件的里面应该有这么一句(注意图中的红框,上面的是地址)
include /etc/nginx/conf.d/*.conf; #这句很重要,引入所有etc/nginx/conf.d/目录下的.conf文件 #***etc/nginx/conf.d/目录存放的就是分站点的文件(下面会给出实例代码)***
好的,大家应该能准确理解了,如果还是理解不了的话只能缺你回去喝点三鹿了!
下面我给大家贴出nginx站点配置文件的代码,修改修改就可以用
看代码的时候请注意看里面的路径,当然我也还是会给一定的中文注释
#这个文件是上面的qopmall.com.conf server { server_name qopmall.com www.qopmall.com;#这里就是你要绑定的域名了,空格分开 location / { root /usr/share/php/weixin; #这里是你站点存放的文件夹名称(也就是说,你当前这个站点的文件全部都丢在这个路径的weixin文件夹里面) index index.php index.html index.htm; #这里照抄即可 } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/php/weixin; #这里的配置等同于上面的那个root配置 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/php/weixin/$fastcgi_script_name; #这里的配置也是和上面的root配置一样 include fastcgi_params; } }
代码非常简单,我没注释到的不用修改就行;
上面的路径,比如/usr/share/php/weixin 这就是你站点的根目录,我给大家截图参考:
- 各位童鞋,创建好站点了,先写个简单的php程序测试一下是否正常,比如info;
【补充:很重要】
部分童鞋发现按照教程操作最后无法打开80端口,这是阿里云的ECS服务器刚够买完,默认关闭了80端口。这个请移步阿里云控制台自行操作,如需步骤,请自行百度!
由于博主是个菜鸡,也就顺带给大家分享一下经验,老司机请绕道行驶!
如果你觉得博主写得帮到了你,或者对你来说还算有用了,麻烦点个赞,土豪直接打赏就行,我不反对!see you!~
今天关于《记录:CentOS7.2配置LNMP环境记录》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于mysql的内容请关注golang学习网公众号!
-
499 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
101 收藏
-
208 收藏
-
174 收藏
-
317 收藏
-
371 收藏
-
244 收藏
-
288 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习