配置lnmp时出现“file not found?

在配置LNMP环境时遇到'file not found'的错误,尝试添加fastcgi_param配置无效。通过分析PHP运行过程,发现需要指定网站目录。在nginx配置中为location ~*.*.(php|php5)?$ 块添加 'root html/blog;',重启服务后问题解决。

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

问题:

  昨天测试并搭建lnmp架构,在测试过程中,挂载好测试环境时在浏览器上测试网站出现“file not found",使用命令curl时也出现”file not found",

解答:

  查看百度时,很多方法指向添加fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;但是测试中不行,没有效果;

分析:

  查看原理并了解php运行过程,确实网站的fastcgi找不到php文件,但是我这边配置好了php文件加载,配置如下:

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 81;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.php index.html index.htm;
}
location ~*.*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
}

但是运行并测试时就提示找不到file not found,怎么办?

解决方法:

       为了正常显示php时,就要让他找到php网站目录,只要在

location ~*.*\.(php|php5)?$ {

root   html/blog;    #网站目录,增加这一行;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

重启nginx,php服务后就可以显示网站,如下 :

命令行:curl blog.etiantian.org:81/1.php

浏览器:

恢复正常了。

 

转载于:https://www.cnblogs.com/wang50902/p/10842349.html

重启 `mysqld.service` 出现 `Unit not found` 错误通常意味着系统无法找到对应的 systemd 单元文件。这可能由多种原因引起,以下是一些常见的排查和解决方法: ### 1. 检查 MySQL 是否已正确安装 确保 MySQL 已经正确安装在系统中。可以通过以下命令检查是否安装了 MySQL 相关的包: ```bash rpm -qa | grep mysql ``` 如果未安装,请根据你的操作系统选择合适的安装方式来安装 MySQL。 ### 2. 检查 `mysqld.service` 文件是否存在 确认 `/usr/lib/systemd/system/mysqld.service` 或 `/etc/systemd/system/mysqld.service` 文件是否存在: ```bash ls /usr/lib/systemd/system/mysqld.service ``` 如果没有找到该文件,可以尝试重新安装 MySQL 或手动创建服务单元文件。 ### 3. 手动创建 `mysqld.service` 文件 如果 `mysqld.service` 文件不存在,可以手动创建一个。编辑 `/etc/systemd/system/mysqld.service` 文件并添加以下内容(根据实际情况调整路径): ```ini [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid ExecReload=/bin/kill -HUP $MAINPID ExecStop=/bin/kill -WINCH $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target ``` ### 4. 重新加载 systemd 配置 创建或修改服务文件后,需要重新加载 systemd 配置以使更改生效: ```bash systemctl daemon-reload ``` ### 5. 启用并启动 MySQL 服务 启用 MySQL 服务以便在系统启动自动运行,并尝试启动服务: ```bash systemctl enable mysqld systemctl start mysqld ``` ### 6. 检查日志信息 如果上述步骤仍然无法解决问题,可以查看系统日志以获取更多详细信息: ```bash journalctl -u mysqld.service ``` ### 7. 检查 MySQL 数据目录权限 确保 MySQL 数据目录及其子目录的权限设置正确。通常情况下,数据目录应属于 `mysql:mysql` 用户组: ```bash chown -R mysql:mysql /var/lib/mysql chmod -R 755 /var/lib/mysql ``` ### 8. 检查 SELinux 和防火墙设置 有,SELinux 或防火墙可能会阻止 MySQL 服务正常运行。可以暂禁用这些安全机制进行测试: ```bash setenforce 0 systemctl stop firewalld ``` ### 9. 使用 Docker 安装 MySQL 如果你希望使用 Docker 来部署 MySQL,可以参考以下示例命令[^2]: ```bash mkdir /opt/lnmp/mysqld cd /opt/lnmp/mysqld/ # 上传 my.cnf、mysql-boost-5.7.20.tar.gz 到此目录 docker run --name mysqld-container -v /opt/lnmp/mysqld:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7 ``` 通过以上步骤,应该能够解决 `Failed to restart mysqld.service: Unit not found` 的问题。如果还有其他疑问或遇到不同的错误情况,请进一步检查相关配置和服务状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值