本文用于记录用gentoo安装apache、nginx、php、mariadb、openssl(https),之前安装花费了几天时间,现记录以供以后查阅,欢迎指点。
由于安装的时候没有做笔记,现在的都是回想,可能有疏漏和错误之处,请海涵,同时也欢迎指出错误;同样的,我不是专业人员,它不适合生产环境。
ssl证书是在https://freessl.org/免费申请的,你可以得到2个文件,证书full_chain.pem和私钥private.key;注意要用域名不要用ip去申请,你可以修改你的/etc/hosts模拟域名的效果
请注意文件和目录的访问权限,比如你的用户有没有访问网站目录的权限,有没有访问证书的权限,如果你的配置文件是复制粘贴的你还要查看文件权限是否变动
这里安装两个web服务器只是为了选其一,当然你可以启动2个web运行,只要你处理好了冲突即可;你也可以用nginx处理静态,apache处理动态。
1. 安装
gentoo是在vmware上安装的,内核版本为4.14.63(现已升级为4.14.65),gcc为7.3.0,glibc为2.26-r7,这些软件都是当时的gentoo仓库最新稳定版。
apache:2.4.34-r2
nginx:1.14.0-r3
php:7.2.10
mariadb:10.1.34
openssl:1.0.2p
下面贴出相关安装软件配置,其中openssl是安装系统就已经存在了。
先更新软件仓库,然后emerge -avu apache nginx php mariadb openssl
2. 配置
所有的编辑请自行先备份
配置apache
编辑 /etc/apache2/httpd.conf
增加ServerName 选项,否则启动apache会有警告
修改运行用户和组,我专门创建了www用户用来运行网站;注意:如果你的用户ID等于大于1000,可能会出现在系统登录界面,哪怕你设置了禁止登录的nologin,增加用户的时候我不想看到它的家目录,所以指定参数不自动创建家目录
让apache支持php,如果你需要apache支持php,php会被apache启动,无需自己启动
在最下方增加
编辑 /etc/apache2/vhosts.d/00_default_vhost.conf 配置基本的http协议
修改监听端口为你想监听的,注意不要和nginx冲突了
编辑 /etc/apache2/vhosts.d/00_default_ssl_vhost.conf 配置https协议
修改监听端口为你需要的数,同样的不要和其它软件有冲突
修改SSLCertificateFile为你的证书文件
修改SSLCertificateKeyFile为你的私钥文件
修改SSLCertificateChainFile为你的证书文件
修改Directory指向你的web路径并做相应的配置
编辑 /etc/apache2/vhosts.d/default_vhost.include 这是上面两个文件的头文件
设置好相关路径为你的路径,缺省访问文件名等
配置nginx
编辑 /etc/nginx/nginx.conf
修改运行用户和线程数为你的数据
修改默认文件,监听端口,服务器名,根目录,php处理,ssl设置(注意里面的证书配置)
nginx需要手动启动fpm-php,因为fpm-php没有 systemctl 启动方式,这里创建一个 /etc/systemd/system/php-fpm.service ,这样你就可以systemctl start fpm-php启动了,注意你的fpm-php的路径是否正确
配置php
修改php-fpm.conf 设置好socket和运行用户
修改www.conf,设置好运行用户
配置mariadb
mariadb我只修改了数据库地址,你可以使用原有的路径,之后运行emerge --config mariadb生成数据库
配置openssl
openssl我没有配置任何东西,只是在freessl申请了免费证书,当然它是有时间限制的