我有一台 Centos 6.7 和 apache 2.2.15。我想将所有流量从端口 80 重定向到 443,但有一个例外。来自 localhost 的流量我想保留在端口 80 上。
现在我使用这个配置,但我不知道如何更改它
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA]
Run Code Online (Sandbox Code Playgroud) 这可能是一个有点困惑的问题......
我最近开始玩 docker 并尝试设置一个基本的灯服务器。
我有一个带有 httpd、php 和 mysql 的 centos docker 映像。
但是,在 docker 容器中,我无法像通常通过 systemd / service 那样启动服务。
我可以直接通过 httpd 运行 /usr/sbin/httpd
那么,如果运行 httpd via/usr/sbin/httpd而不是 via 有systemctl start httpd什么区别呢?
是否有“正确”的方法来停止或重新启动 httpd?- 我以为我可以终止该进程,但它似乎启动了大约 10 个 apache 进程。
我很欣赏这不是一个特别集中的问题,但将不胜感激地收到任何指向相关材料的指针。
I have been trying to build a captive portal in Apache that I plan to be Apple CNA aware.
I found several relevant posts in StackOverflow, including Captive portal popups... and How to create WiFi popup login page.
我将相关的 Apache 配置定义为:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^CaptiveNetworkSupport(.*)$ [NC]
RewriteRule ^(.*)$ http://192.168.2.1/captive/portal.html [L,R=302]
# android
RedirectMatch 302 /generate_204 http://192.168.2.1/captive/portal.html
# windows
RedirectMatch 302 /ncsi.txt http://192.168.2.1/captive/portal.html
Run Code Online (Sandbox Code Playgroud)
它工作不完全正确,因为 CNA 浏览器进入重定向循环。
我还尝试将所有相关页面放入 /captive 目录,并定义规则
RewriteRule !^captive($|/) http://192.168.2.1/captive/portal.html [L,R=302]
Run Code Online (Sandbox Code Playgroud)
但有类似的循环问题。该怎么办?
我有一个文件:
js/jquery.terminal-src.js: symbolic link to ../../repo/js/jquery.terminal-src.js
Run Code Online (Sandbox Code Playgroud)
当我尝试使用浏览器打开它时:
http://localhost/projects/jcubic/terminal/test/js/jquery.terminal-src.js
我有 403 错误被禁止,文件有权限
-rw-rw----. 1 kuba kuba 291604 08-27 22:20 ../../repo/js/jquery.terminal-src.js
Run Code Online (Sandbox Code Playgroud)
和 apache2 无法打开该文件,我已经安装了 SeLinux 并且我正在使用 Fedora Distro。
我有这个 /var/log/audit/audit.log
type=AVC msg=audit(1503868547.512:625): avc: denied { getattr } for
pid=519 comm="httpd" path="/home/kuba/projects/jcubic/terminal/test/css/jquery.
terminal-src.css" dev="sda3" ino=26608576 scontext=system_u:system_r:
httpd_t:s0 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=lnk_file
permissive=0
Run Code Online (Sandbox Code Playgroud)
我已将 apache 用户添加到kuba组中,并且projects是/var/www/html目录中的符号链接。其他文件,甚至是目录的符号链接,都可以正常工作。
我也尝试将 kuba 组设置为每个目录甚至 /home 但这不起作用(并且所有目录都已属于kuba组)
我需要配置什么才能使 apache 打开符号链接文件?
我不想禁用 SeLinux,因为它安装在 Fedora 上有其他原因吗?
我只是好奇:是否有任何 64 位 Linux 系统支持 32 位版本的 Apache?据我所知,64位Linux系统只支持Apache 64位,32位Linux系统只支持Apache 32位。
编辑
我的动机只是想知道,是否以及哪个 Linux 发行版也为应用程序和/或库提供 32 位包。
我正在从源代码编译 Apache,并静态链接mod_ssl. 我希望使用与系统安装版本不同的 OpenSSL 版本。我希望以一种不影响系统其余部分(即 CentOS)的方式执行此操作,因为我希望不更改核心系统的 SSL 版本,该版本由其他已安装的软件使用,这些软件将继续由包管理器。
我怎样才能正确地做到这一点?
我尝试编译 Apache --with-ssl,它可以很好地编译它,但在尝试运行它时却找不到它。
./httpd: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我想也许我可以LD_LIBRARY_PATH在启动 Apache 时进行设置,效果很好,但不确定这是一个合适的方法。解决这个问题的推荐方法是什么?有没有更好的方法来添加替代库搜索路径的目录?
我想在我的服务器上为我的朋友提供一个独立的网络托管空间。我做了:
useradd friend
groupadd sftpusers
mkdir /sftp
mkdir /sftp/friend
mkdir /sftp/friend/home
mkdir /sftp/friend/www
usermod -aG sftpusers friend
chown friend:sftpusers /sftp/friend/home/
chown friend:sftpusers /sftp/friend/www/
usermod -d /sftp/friend/home friend
Run Code Online (Sandbox Code Playgroud)
我将此添加到sshd_config:
Subsystem sftp internal-sftp -d /home
Match Group sftpusers
ChrootDirectory /sftp/%u
Run Code Online (Sandbox Code Playgroud)
这对 Apache 配置:
<VirtualHost *:80>
ServerName friend.example.com
DocumentRoot /sftp/friend/www
<Directory />
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
它有效:friend可以在 jailroot 环境中访问 SFTP 并且他不能/sftp/friend从 SFTP退出。这很好。
但我注意到他仍然可以使用 PHP 查看文件系统中的其他文件:如果他创建了一个index.php包含:
<?php …Run Code Online (Sandbox Code Playgroud) 使用不同用户(每个项目一个用户)设置 Apache 虚拟主机和 PHP-FPM 池的正确方法是什么?
\nwww-data,无法访问池化项目?我有一个将 Apache 与虚拟主机一起使用的设置,并且我想为每个虚拟主机设置自己的php-fpm池:
site1.conf:<VirtualHost *:443>\n DocumentRoot /var/www/site1/public\n\n <Directory /var/www/site1/public>\n Options Indexes FollowSymLinks\n AllowOverride All\n Require all granted\n </Directory>\n\n <FilesMatch \\.php$>\n # 2.4.10+ can proxy to unix socket\n SetHandler "proxy:unix:/run/php/php-fpm.site1.sock|fcgi://localhost/"\n </FilesMatch>\n\n</VirtualHost>\n\nRun Code Online (Sandbox Code Playgroud)\nsite1:[site1]\nuser = site1\ngroup = site1\nlisten.owner = site1\nlisten.group = www-data\nlisten.mode = 0660\n\nRun Code Online (Sandbox Code Playgroud)\n/var/www/site1: …我在 Amazon Linux 实例上安装了 httpd 软件包,并且/etc/httpd/目录包含子目录:
会议/
conf.d/
conf.modules.d/
我注意到这些是配置目录。
它们之间有什么区别?
我需要编译一个旧的Apache版本,1.3,编译过程失败,因为:
mod_auth_dbm.c:77:18: fatal error: ndbm.h: File or directory not found
Run Code Online (Sandbox Code Playgroud)
这个 ndbm.h 文件在哪里?