lamp + mssql环境部署之二: 配置apache
修改网站根目录
-
创建存放网站文件的根文件夹
mkdir /website -
修改配置前,先备份httpd.conf文件.
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
- 运行以下命令,修改配置文件,
vim /etc/httpd/conf/httpd.conf
有两个地方要修改
DocumentRoot "/website" #apache的根目录,把/var/www/html 这个目录改为/var/www
<Directory "/website"> #把/var/www/html改成/var/www
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
- 重启apache
systemctl restart httpd
- 在网站根目录website中创建phpinfo.php文件.
echo "<?php phpinfo(); ?>" > /website/phpinfo.php
- 打开http://ip地址/phpinfo.php能看到以下页面,配置成功.
去掉tp5项目url地址中的index.php
例如原路径是 http://localhost/test/index.php/index/add
简化后地址是 http://localhost/test/index/add
解决办法: AllowOverride None 讲None改为 All //在APACHE里面去配置 (注意其他地方的AllowOverride也统统设置为ALL),代码如下:
DocumentRoot "/website"
<Directory "/website">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</Directory>
alias 别名配置
Web网站别名配置是被经常使用的一个特性。为站点URI定义一个路径映射关系,简化url路径
简化前的url http://localhost/api/public/模块/方法
简化后的url http://localhost/api/模块/方法
Alias /api "/website/api/public"
<Directory "/website/api/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
Apache禁止显示目录结构
参考我的另一篇博客:https://www.cnblogs.com/panbin2006/p/16517378.html
配置https访问
- apache增加SSL模块,打开httpd.conf,增加下面这行
LoadModule ssl_module modules/mod_ssl.so # 增加SSL支持模块
IncludeOptional conf.d/*.conf # 导入扩展配置文件,ssl.conf在conf.d目录下,没有这句读取不到ssl配置文件
- 修改ssl配置文件前,先备份
cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak
- 创建证书存放目录,把下载的3个证书文件保存到该目录下。
mkdir /etc/httpd/cert
- 修改ssl.conf文件为
vim /etc/httpd/conf.d/ssl.conf
修改后的ssl.conf文件
Listen 0.0.0.0:443
Listen [::0]:443
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /webiste
SSLEngine on
SSLCertificateFile /etc/httpd/cert/www.example.com_public.crt
SSLCertificateKeyFile /etc/httpd/cert/www.example.com.key
SSLCertificateChainFile /etc/httpd/cert/www.example.com_chain.crt
</VirtualHost>
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
- 重启apache服务
systemctl restart httpd