php、Apache的安装配置

以下内容基于Manjaro

Apache配置浅析

安装了Apache启动不了,丢弃了phpstudy真的是啥都不会,趁机学习一下Apache的配置

基本配置目录:/etc/httpd/conf/httpd.conf

其实,配置文件80%都是英文解释,并没有什么难懂的,就权当记录一下了

ServerRoot "/etc/httpd"             //Apache配置文件根目录
Listen 80 //监听本机80端口
LoadModule ***.so //加载so模块
ServerName localhost:80 //服务器名及端口
<Directory />
AllowOverride none //配置项为all时,会搜索目录下.htaccess文件进行配置覆写
Require all denied //禁止访问
</Directory>
DocumentRoot "/srv/http" //web站点的根目录
<Directory "/srv/http">
Options Indexes FollowSymLinks //有如下几种Option类型:
//Indexes: 不存在定义的主页文件时,列出目录下文件列表
//FollowSymLinks: 跟随符号链接
//ExecCGI: 允许在目录下执行CGI脚本
//
AllowOverride None
Require all granted //授权所有访问
</Directory>
<IfModule dir_module> //索引页配置
DirectoryIndex index.html index.php //按照顺序寻找指定的主页
</IfModule>
<Files ".ht*"> //定义对一些文件的配置,这里是令.htaccess不可访问
Require all denied //不可访问
</Files>
<IfModule mime_module>
AddType ** * * //定义MIME类型
</IfModule>

配置Apache支持PHP7

在httpd.conf中,定义php的MIME类型:AddType application/x-httpd-php .php,并增加索引页index.php(不知道在什么地方添加请再看一下上文)
下载对应版本的libphp.so文件到httpd的modules文件夹下

对于Manjaro,只需要pacman -S php-apache(Arch大法好)

最后,在http.conf中LoadModule:LoadModule php7_module modules/libphp7.so

如果报错提示Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
不限麻烦可以再安装线程安全的php,嫌麻烦可以修改apache的工作模式为prefork(把其余两个注释掉):

#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

sudo apachectl start开启Apache

Author: 12end
Link: 12end.xyz/2019/07/11/apache-php/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.