简介:
如果经常看我的文章,应该知道我这里的一个主路由是X86软路由。
配置还行:
Intel(R) Celeron(R) CPU 3215U @ 1.70GHz
1.80 GiB 24G+500G
只做路由器太浪费了,所以就有了一些跑在路由器上的东西。
只是docker和ipv6貌似不和,或者说我没配置好。有心情再搞它。
最大的作用其实就是WEB服务,nginx为主,基本上什么都行。
openwrt,关于nginx的说明。
https://openwrt.org/docs/guide-user/services/webserver/nginx
一:PHP
- PHP 是 "PHP Hypertext Preprocessor" 的首字母缩略词
- PHP 是一种被广泛使用的开源脚本语言
- PHP 脚本在服务器上执行
- PHP 没有成本,可供免费下载和使用
二:安装
opkg update && opkg install nginx-all-module luci-ssl-nginx php8 php8-cgi php8-fastcgi php8-fpm
三:PHP配置
增加php配置:/etc/nginx/conf.d/php.locations
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
# Mitigate https://httpoxy.org/ vulnerabilities
fastcgi_param HTTP_PROXY "";
#error_log /dev/null;
fastcgi_connect_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
client_body_timeout 10s;
send_timeout 60s; # default, increase if experiencing a lot of timeouts.
output_buffers 1 32k;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:1026;
# include the fastcgi_param setting
include fastcgi_params;
# SCRIPT_FILENAME parameter is used for PHP FPM determining
# the script name. If it is not set in fastcgi_params file,
# i.e. /etc/nginx/fastcgi_params or in the parent contexts,
# please comment off following line:
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
NGINX网站有一句If you’re using unix socket change fastcgi_pass to:fastcgi_pass unix:/var/run/php-fpm.sock;
根据我们的具体情况,可以改
fastcgi_pass 127.0.0.1:1026;为fastcgi_pass unix:/var/run/php8-fpm.sock;
四:FASTCGI配置
/etc/nginx/fastcgi_params
默认配置似乎有问题,因为我看nginx关于fastcgi的配置和openwrt中fastcgi配置有不同
openwrt推荐的有,nginx推荐的没有:
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param REQUEST_SCHEME $scheme;
nginx推荐的有,openwrt推荐的没有:
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
nginx有一句Please note if you’re using Ubuntu Precise (12.04), I change SCRIPT_FILENAME and add PATH_INFO params.
似乎是这个问题导致默认配置无法运行。
我结合两个配置文件合并为:
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
五:测试
在/www目录准备两个文件:
test.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试页</title>
</head>
<body>
<span>HTML测试</span>
</body>
</html>
View Code
test.php
此时访问http://openwrt的IP/test.html
此时访问http://openwrt的IP/test.php
均正常显示不报错即可
六:注意事项
/etc/config/php8-fastcgi
配置了fastcgi的端口,openwrt的nginx,默认是1026
检查你的1026端口是否监听
netstat -antup | grep 1026
如果没有,重启一下php8-fastcgi
来源:https://www.cnblogs.com/jackadam/p/16271801.html |