CentOS 7 系统配置Apache

文章目录

[隐藏]

  • 安装基本软件包
  • Apache基本配置
  • 配置Apache提供HTTPS服务
  • 额外配置

现在公司的项目由于一直是一个外包团队在维护,一直运行在Windows Server上,我接手之后从长远考虑以及熟练及安全、性能等方面考虑,我最终决定换成Linux,而由于运行的是公司的正式项目,毫无疑问选择了CentOS,至于版本,我选择了最新的CentOS7。而服务器本打算是用流行的Nginx的,但是几个CGI参数始终无法配置好,出于稳定性考虑,最后选择了Apache。

安装基本软件包

由于CentOS 7 自带的PHP版本才5.4,不能满足我们开发的程序的要求,本着能包管理器安装就不编译安装的原则,选择了webstatic这个源的包,更新系统:

yum update  

安装EPEL源:

yum install epel-release  

安装webstatic源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm  

安装Apache、安装PHP及Mariadb数据库命令如下:

yum install httpd php56w php56w-mysql php56w-pdo php56w-gd php56w-mcrypt php56w-mbstring php56w-json php56w-xml php56w-openssl mariadb-server -y  

对,你没看错,CentOS下的Apache在包管理器中的名字就是httpd。这样就安装好了各个所需要的组件,接下来就是配置了。

Apache基本配置

用 yum 安装的apache,配置文件在 /etc/httpd/ ,我们需要改的各个配置文件都在这个目录下面。

首先,更改/etc/httpd/conf/httpd.conf中的ServerName字段,否则会提示AH00558字段:

[root@localhost ~]# httpd -t  AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message  Syntax OK  

接着,在/etc/httpd/conf.d/下面新建一个example.conf文件,这个就是我们需要的虚拟主机配置文件,如果只是想要HTTP服务,复制下面这段并进行相应修改即可:

<VirtualHost *:80>  ServerName www.example.com  DocumentRoot /var/www/example/  ServerAlias example  ErrorLog /var/log/httpd/example.error.log  CustomLog /var/log/httpd/example.log combined  <Directory /var/www/example>          Options Indexes FollowSymLinks MultiViews          AllowOverride FileInfo Options          Order allow,deny          allow from all  </Directory>  Header unset X-Powered-By  </VirtualHost>  

配置完成之后,用apache自带的工具检查是否有语法错误。

配置Apache提供HTTPS服务

但是由于现在的潮流是提供HTTPS服务,我们这个项目也给App端提供数据接口服务,按照苹果的要求以及处于安全性考虑,确实有必要上HTTPS服务,但是考虑到实际业务情况,我们现阶段不打算强制跳转到HTTPS访问,于是采用的是HTTP和HTTPS都可访问策略,这就要求要准备一份SSL证书了,申请证书这一步按下不表,很多途径都可以申请,我这里只记录下配置步骤。

要使用yum包管理器安装的Apache支持SSL,还需要安装一个Apache模块,命令如下:

yum install mod_ssl  

然后是增加对应的SSL配置,在上面那个配置文件末尾增加或者新建一个配置文件都行,相应配置:

<VirtualHost *:443>  ServerName https://www.example.com  DocumentRoot /var/www/example/  ServerAlias example  ErrorLog /var/log/httpd/example.error.log  CustomLog /var/log/httpd/example.log combined  <Directory /var/www/example>          Options Indexes FollowSymLinks MultiViews          AllowOverride FileInfo Options          Order allow,deny          allow from all  </Directory>  SSLEngine on  SSLCertificateFile /var/www/example-ssl/xxx.pem  SSLCertificateKeyFile /var/www/example-ssl/xxx.key  </VirtualHost>  

复制,更改对应的项即可。

然后再次检查一下语法是否有误:

httpd -t  

如果没问题,可以重启httpd服务:

systemctl restart httpd  
额外配置

上面有个配置项我这里记录一下,Header unset X-Powered-By这一行是让Apache隐藏对应的http header,处于安全考虑不允许后端暴露太多信息。

同样需要隐藏的还有Apache的版本号以及操作系统信息,在/etc/httpd/conf/httpd.conf文件末尾增加下面两行:

ServerTokens Prod  ServerSignature Off  

最后再检查一下是否有语法错误,如果一切正常则可以重启Apache服务或者重新加载配置文件。

由于Apache是以apache用户组下的apache用户运行的,所以,对应的网站目录文件需要给予对应的权限才能使网站正常运行:

chown -R apache.apache /var/www/example  

上面的文件路径改成对应的网站文件路径即可。

原文出处:zoco -> https://zoco.me/post/centos-7-config-apache-httpd

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。