网站后台的lnmp启动与重启

本文记录了一次解决LNMP环境下网站频繁出现502网关错误的过程,包括重启服务器、启动nginx与mysql服务及php-fpm进程等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网站建立时间很长了,经常挂掉,又没有其他技术人员带。只好自己摸索着修复。

到今天网站已经挂掉了一个礼拜。请求各路大神无果后决定自己修复。

 

首先出现的是502,网关错误。

 

1.上阿里云服务用户中心重新启动了服务器。再次打开网站出现无法访问。连网关错误都没有。

 

2.查看nginx服务是否运行,使用PUTTY登录到服务器后台使用#ps -A | grep  nginx 命令,发现nginx服务未运行

3.启动nginx服务,查找nginx文件以及nginx.conf文件的位置,使用命令#find / -name nginx   与  #find / -name nginx.conf 。得到两个文件位置分别为:/usr/local/nginx/sbin/nginx 与 /usr/local/nginx/conf/nginx.conf

 

4.启动nginx服务,使用命令#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

 

5.再次使用命令##ps -A | grep  nginx 发现nginx服务已经启动:2581 ? 00:00:00 nginx  2582 ? 00:00:00 nginx

nginx的重启命令:#/usr/local/nginx/sbin/nginx -s reload   或者   kill -HUP 主5进程号或进程号文件路径

 

6.启动mysql,使用#find / -name mysql_safe发现mysql_safe位置为/usr/local/mysql/bin/mysqld_safe。执行命令#/usr/local/mysql/bin/mysqld_safe &

 

7.再次查看mysql服务已启动。#ps -A | grep  mysql。2732 ? 00:00:00 mysqld_safe  2872 ? 00:00:00 mysqld

 

8.依然是网关错误502.百思不得其解,继续努力钻研ING^^^.

 

9.查看php-fpm进程是否启动#ps -A | grep  php*。没有进程在运行。蛋疼(因为php是nginx的一个插件,所以在我的印象中来说php是没有进程的,所以并未想到这个。)

 

10.使用#find / -name php-fpm 查找php-fpm的位置,得到位置如下:/usr/local/sbin/php-fpm 。

 

11.使用#/usr/local/sbin/php-fpm -R命令运行php-fpm进程。(-R的意思是Run as root .即以root的身份运行)

 

12.重新打开网站,发现已经能够正常访问。在修复的过程中发现LNMP的集成环境总会有502的错误,是LNMP集成环境的一个固有的BUG,解决方法也很多,但是没有很靠谱的解决办法。

 

认知:CS的学习时一个逻辑能力的进步,根据问题必须一步步想到导致问题的原因,再根据原因一步步的找到解决办法。

 

以上

明明

2015年2月3日10:24:07

 

 

转载于:https://www.cnblogs.com/yiluxiuxing/p/4269349.html

### 如何在CentOS 7 上部署 LNMP 环境 #### 准备工作 为了确保顺利部署 LNMP (Linux, Nginx, MySQL 和 PHP),需要先更新系统并安装必要的依赖项。可以使用 `yum` 来完成这些操作。 ```bash sudo yum update -y && sudo yum install epel-release -y ``` #### 安装 Docker 对于希望利用容器化技术来简化管理和部署过程的情况,在 CentOS 7 中可以通过官方文档推荐的方法来安装 Docker[^1]: ```bash # 设置存储库 sudo yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker CE sudo yum install docker-ce docker-ce-cli containerd.io # 启动服务 sudo systemctl start docker sudo systemctl enable docker ``` #### 配置 NGINX 容器 创建一个名为 nginx 的目录用于放置配置文件和静态网页资源,接着拉取最新的官方镜像版本,并启动容器实例[^2]: ```bash mkdir ~/nginx cd ~/nginx/ touch index.html echo "<h1>Hello from my first Nginx Container</h1>" >>index.html docker pull nginx:latest docker run --name some-nginx -v /path/to/html:/usr/share/nginx/html:ro -p 80:80 -d nginx ``` 请注意上述命令中的路径 `/path/to/html` 应替换为实际存放 HTML 文件的位置。 #### 添加 MySQL 数据库支持 通过 Docker Hub 获取合适的 MySQL 版本作为数据库服务器运行于后台守护进程中: ```bash docker pull mysql/mysql-server:tag docker run --name=mysql-container-name \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -d mysql/mysql-server:tag ``` 这里 `-e` 参数用来设置环境变量以初始化 root 用户密码;而 `mysql-container-name` 及 `my-secret-pw` 则需自行定义合适名称安全强度较高的密码字符串代替之。 #### 构建 PHP-FPM 运行时环境 同样采用相同的方式获取 php-fpm 映像并指定挂载点映射至宿主机上的源码位置以便处理动态请求: ```bash docker pull php:fpm-alpine docker run --name=phpfpm-container \ -v /var/www/html:/var/www/html \ --link=mysql-container:mysql \ -d php:fpm-alpine ``` 最后一步是调整 Nginx 的 FastCGI 参数使其能够转发 .php 结尾的 URL 请求给对应的 FPM 处理程序解析执行。 #### 整合各组件间通信关系 编辑默认站点配置模板(通常位于 `/etc/nginx/conf.d/default.conf`),添加如下片段指向本地监听端口 9000 的 fastcgi_pass 地址以及设定索引页面顺序优先级等选项: ```nginx location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/run/php/php7.x-fpm.sock; # 或者 tcp socket 形式的 IP:Port try_files $uri =404; } ``` 保存更改后重启所有关联的服务进程使新参数生效即可访问测试效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值