AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[extension](server)

Martin Hope
Totoro
Asked: 2022-03-17 12:32:11 +0800 CST

试图让 Apache 服务于 webp 而不是 png/jpg(来自 prestashop 的 /img 文件夹)

  • 1

第一次在这里发帖,所以我希望我做得很好。

我从我的 prestashop public_html 文件夹开始将所有 png/jpg 转换为 webp,并向 .htaccess 添加了重写规则,以便提供 webp 而不是 png/jpg。

我的重写基于已经存在的 prestashop 重写。我在哪里:
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
我最终做了:

RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.webp [L]
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.webp$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.webp [L]
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]

哪个有效:我得到了提供 webp 图像的 jpg URL,到目前为止一切都很好(我知道仍然需要实现

#RewriteCond %{HTTP_ACCEPT} image/webp
#RewriteCond %{DOCUMENT_ROOT}/$1.webp -f

并且尝试弄清楚我是否应该离开[L]或做[L,T=image/webp]或做[T=image/webp,E=REQUEST_image],这就是为什么我正在阅读与 apache 相关的文档并在网络上爬取关于重写相关主题的内容,这确实是巨大的。

好的,回到主题,我发现我缺少对 prestashop 存储在 public_html/img 文件夹中的图像的 webp 重写。

然后我尝试了以下(以及其他变体):

RewriteRule ^/img/(.+)\.jpe?g$ /img/$1.webp [L]
RewriteRule ^/img/(.+)\.png$ /img/$1.webp [L]

^--- 不好...仍然从 img 目录提供 jpg/png 类型的图像(仔细检查 MIME 类型)。

注意:

  1. 每次我更改 .htaccess 并尝试解决方案时,我都会清除 prestashop 缓存,以防万一(尽管知道每次请求都会读取 .htaccess)。
  2. 存在 img 文件夹中 jpg/png 对应的 webp 图片。
  3. 图像文件 perms 在 img 文件夹中是正确的,实际上在 public_html 下的所有东西中都是正确的
  4. 在 prestashop 的 img 文件夹中,还有另一个 .htaccess,它限制了可以从此文件夹提供的文件类型,我已经添加了 webp,以防万一有人问。

更新:根据 MrWhite 的要求,添加 img 文件夹的 .htaccess

<IfModule mod_php5.c>
    php_flag engine off
</IfModule>

# Apache 2.2
<IfModule !mod_authz_core.c>
    Order deny,allow
    Deny from all
    <Files ~ "(?i)^.*\.(webp|jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|ico)$">
        Allow from all
    </Files>
</IfModule>

# Apache 2.4
<IfModule mod_authz_core.c>
    Require all denied
    <Files ~ "(?i)^.*\.(webp|jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|ico)$">
        Require all granted
    </Files>
</IfModule>

请问你们能帮我吗?

rewrite .htaccess extension mod-rewrite images
  • 1 个回答
  • 536 Views
Martin Hope
Alexis Dufrenoy
Asked: 2021-03-19 07:14:02 +0800 CST

在 Apache 服务器上显示具有另一个文件扩展名的 html 文件

  • 1

我们的一个系统生成的文件扩展名为 .asp,实际上只有 html。我需要在不喜欢 asp 文件的 Apache httpd 服务器上显示这些文件。有没有办法指示服务器将这些文件显示为 HTML 文件?

extension asp html apache-2.4
  • 1 个回答
  • 334 Views
Martin Hope
ill
Asked: 2020-12-02 04:49:34 +0800 CST

安装脚本扩展 Python - SNAPSHOT JAR

  • 0

我正在尝试安装 Geoserver 脚本扩展 - Python(描述)。下载 geoserver-2.17-SNAPSHOT-python-plugin(我的 Geoserver 是 2.17.0)后,我按照说明进行操作:

将存档的内容提取到 GeoServer 的 /WEB-INF/lib/ 目录中。例如,如果 GeoServer 安装在 /opt/geoserver-2.2.2/ 中,则提取 /opt/geoserver-2.1.0/webapps/geoserver/WEB-INF/lib/ 中的存档内容。

重新启动地理服务器。

但是 - 脚本扩展没有显示在我的菜单中。扩展路径是'/opt/tomcat/webapps/geoserver/WEB-INF/lib'。地理服务器版本为 2.17.0。在我的 lib 文件夹中,我现在可以找到像 gt-process-geometry-23.0.jar 和 gt-process-geometry-23-SNAPSHOT.jar 这样的库。我应该删除“gt-process-geometry-23.0.jar”吗?'geoserver-2.17-SNAPSHOT-python-plugin' 中包含的所有 jar 文件都是这种情况(...23-SNAPSHOT.jar)。我假设 SNAPSHOT jar 包含 Python 脚本扩展并且不需要添加额外的 python.jar?因此我需要删除以geometry-23.0.jar 结尾的文件吗?

编辑:我确实删除了所有 '*-23.0.jar' 并重新启动。仍然没有可见的脚本扩展。可能是什么问题?我最近以同样的方式安装了 WPS 扩展。

scripting python extension
  • 1 个回答
  • 55 Views
Martin Hope
undo
Asked: 2020-05-06 10:57:56 +0800 CST

PHP 在通过 CLI 调用时加载扩展,而不是通过 Apache

  • 1

对我来说,PHP 仅在从 CLI 调用时才能完美加载扩展,但在我通过 Apache 加载页面时却不能。

例如,这是 的输出php -m:

[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
filter
hash
iconv
json
libxml
mysqlnd
openssl
pcre
PDO
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

但是,当通过 Apache 运行时:
1. 在phpinfo()中,OpenSSL 支持显示为“已禁用”。
2.extension_loaded("curl")是false
3.get_loaded_extensions()不包括curlor OpenSSL。
4. 尝试使用任何扩展功能失败。

这是var_dump(get_loaded_extensions());通过 Apache 运行时:

array(28) {
  [0]=>
  string(4) "Core"
  [1]=>
  string(6) "bcmath"
  [2]=>
  string(8) "calendar"
  [3]=>
  string(5) "ctype"
  [4]=>
  string(4) "date"
  [5]=>
  string(6) "filter"
  [6]=>
  string(4) "hash"
  [7]=>
  string(5) "iconv"
  [8]=>
  string(4) "json"
  [9]=>
  string(3) "SPL"
  [10]=>
  string(4) "pcre"
  [11]=>
  string(8) "readline"
  [12]=>
  string(10) "Reflection"
  [13]=>
  string(7) "session"
  [14]=>
  string(8) "standard"
  [15]=>
  string(7) "mysqlnd"
  [16]=>
  string(9) "tokenizer"
  [17]=>
  string(3) "zip"
  [18]=>
  string(4) "zlib"
  [19]=>
  string(6) "libxml"
  [20]=>
  string(3) "dom"
  [21]=>
  string(3) "PDO"
  [22]=>
  string(4) "Phar"
  [23]=>
  string(9) "SimpleXML"
  [24]=>
  string(3) "xml"
  [25]=>
  string(9) "xmlreader"
  [26]=>
  string(9) "xmlwriter"
  [27]=>
  string(14) "apache2handler"
}

操作系统:Windows 10 1809, up to date.

php -v:

PHP 7.4.5 (cli) (built: Apr 14 2020 16:17:34) ( ZTS Visual C++ 2017 x64 )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

httpd:来自https://www.apachelounge.com/的 Apache 2.4.43 Win64

PHP 和 Apache 通过 this in httpd.conf(mod_php) 进行交互:

LoadModule php7_module "C:/<path_to_PHP>/PHP7/php7apache2_4.dll"

这台机器上只安装了一个 Apache+PHP。


我试过的:

  1. 确认 PHP 在两种模式下都使用相同的 ini 文件。如果我从 ini 文件中禁用扩展名,它们就会停止显示php -m(应该如此)。
  2. (重新)安装 MS Visual Studio C++ Redistributable 2015-19(x86 和 x64)。
  3. 重新启动httpd。
  4. 重启电脑。
  5. 重新安装 PHP 和 Apache。
  6. display_startup_errors=on然后检查日志。Apache 和 PHP 错误日志中都没有相关信息。
  7. 确认 PHP 正在 ZTS 中运行php.exe -v,“线程安全”显示为phpinfo()通过 Apache 启用。

请帮忙。我需要这个网络服务器启动并运行,这让我发疯。

windows php extension apache-2.4
  • 1 个回答
  • 660 Views
Martin Hope
Cunning
Asked: 2017-02-23 18:59:42 +0800 CST

Nginx+PHP-FPM:让php处理文件扩展名

  • 1

我正在尝试提供一个处理一些 RESTful URI 的 PHP 脚本并了解最终用户需要哪种格式的数据,我将其作为 URI 中的扩展名进行处理,例如:

example.com/foo/bar.json?q=x&a=y --> data in ajax format
example.org/foo/bar.xml?q=x&a=y  --> data in xml format

我在我的开发机器中使用了 Apache httpd + modphp,它工作得很好,但是舞台服务器使用了 CentOS + Nginx + PHP。在那里,nginx 拦截并尝试处理静态 json 文件并返回 404。

如何防止 Nginx 处理某些文件类型(例如 json、xml)并让 PHP 处理这些文件?

我的 Nginx 配置:

server {

  # listen [::]:443 ssl http2 accept_filter=dataready;  # for FreeBSD
  # listen 443 ssl http2 accept_filter=dataready;  # for FreeBSD
  # listen [::]:443 ssl http2 deferred;  # for Linux
  # listen 443 ssl http2 deferred;  # for Linux
  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  # The host name to respond to
  server_name example.com;

  include h5bp/directive-only/ssl.conf;
  include ssl/conf/example.com;

  # Path for static files
  root /var/www/example.com/app/public;
  index index.php index.html index.htm;

  #Specify a charset
  charset utf-8;

  # Custom 404 page
  error_page 404 /404.html;

  # Include the basic h5bp config set
  include h5bp/basic.conf;

  # log settings
  access_log off;
  error_log  /var/log/www/example.com/nginx/error/error.log error;

  # turn off access logs and prevents logging
  # an error if robots.txt and favicon.ico are not found
  location = /favicon.ico { access_log off; log_not_found off; }
  location = /robots.txt  { access_log off; log_not_found off; }


  # check if a file or directory index file exists,
  # else pass the request to the index.php as a query parameter.
  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  # handle execution of PHP files
  # set php5-fpm socket
  # tell NGINX to proxy requests to PHP FPM via the FCGI protocol
  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass localhost:9003;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors off;
    fastcgi_buffer_size 16k;
    fastcgi_buffers 4 16k;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
  }

  # block access to .htaccess files
  location ~ /\.ht {
    deny all;
  }

}

更新:它终于工作了,我把 json 相关的位置放在主要/位置,并将$script_file_namejson 相关的位置更改为静态脚本名称。感谢蒂姆。

nginx static-content extension php-fpm
  • 1 个回答
  • 1910 Views
Martin Hope
Evgeni
Asked: 2010-01-06 17:50:48 +0800 CST

安装 Apache、PHP 和 MySQL 后,我无法在没有 Apache 错误的情况下向 php.ini 添加扩展

  • 1

我有 Windows XP 操作系统。

安装了 Apache 2.2.14,然后是 PHP 5.2.12(用 phpinfo.php 测试 -> 它可以工作了!)然后我安装了 MySQL 5.1。现在,当我添加extension = php_mysql.dll到 php.ini 并重新启动服务器时,Apache 告诉我他无法启动(带有“请求的操作失败”的小窗口)。即使我只添加extension = *smth*.dll---> 相同的东西。Apache 只是不喜欢我的扩展。如何证明他,他们很酷之类的?谢谢。

php apache-2.2 extension
  • 3 个回答
  • 3560 Views
Martin Hope
Student for Life
Asked: 2009-07-15 05:19:37 +0800 CST

IIS 6.0 在带有“.”的文件上收到 404 错误。扩展名,仅此而已

  • 1

我有一个问题,我从 IIS 6.0 服务器反向代理到提供没有扩展名的 PNG 文件的 apache 服务器。奇怪的是,它提供带有“。”的文件。但仅此而已,例如:

“ http://internalserver/proxy/image。”

我尝试添加 MIME 类型“。” 甚至“。*”到 IIS 虚拟目录和服务器(通过 IIS MMC 管理单元),但这似乎并没有解决问题。添加 mime 类型在测试其他晦涩的扩展名时起作用,例如 image.x、image.] 等,但如果你有文件名和“。” 之后没有别的了,它似乎以 404 失败。

有什么线索吗?

iis-6 mime extension
  • 2 个回答
  • 700 Views
Martin Hope
surajs
Asked: 2009-06-01 22:45:00 +0800 CST

资源管理器右键单击上下文菜单项丢失

  • 2

操作系统:Windows XP Service Pack 2 当我右键单击文件/文件夹时,大多数第三方上下文菜单项都丢失了。这些是 7zip 、 Unlocker、 Winamp 等项目......它在右键单击上下文菜单中添加了条目。有什么问题?我检查了 HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers 并且他们似乎没有添加任何这些第三方安装的项目。

windows-xp shell context-menu extension windows-explorer
  • 2 个回答
  • 2081 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve