home archives github knives links
tags php apache https
categories
only title title and content
apache笔记

安装

sudo apt install php7.2 # php的版本可改
sudo apt install apache2
sudo apt install php7.2-mysql # php支持mysql, 好像不需要
sudo apt install mysql-server mysql-client # 安装数据库

常用命令

sudo service mysql start # 启动数据库服务
sudo service apache2 restart # http
sudo /usr/sbin/apache2ctl start # http

配置

apache2配置目录/etc/apache2

目录说明: xxx-available是apache2可用的模块, xxx-enabled是已经开启的模块, 如果模块开启了, 则xxx-enabled下会有一个指向xxx-available对应模块的软连接, 如果没有则说明没有开启

修改apache2默认目录

DocumentRoot /{不要带/}
<Directory /{你的目录,不要加/}>
Require all granted
<Directory>

开启浏览目录权限

<Directory /{你的目录,不要加/}>
Options Indexes
<Directory>

端口

修改apache2默认端口

<VirtualHost *:{端口号}>
Listen {端口}

注意httpshttp的区别

多端口

启用https

仅localhost

参考: stackoverflow, 输入网址chrome://flags/#allow-insecure-localhost进行设置, 此外还需要清除缓存之类(TODO)

自签名SSL证书

参考: https://majing.io/posts/10000050311000

  1. 创建认证中心, Certificate Authority(CA)
openssl genrsa -des3 -out myCA.key 2048
openssl req -x509 -new -nodes -key myCA.key -sha256 -days 825 -out myCA.pem
  1. 创建localhost.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
  1. 创建证书
openssl genrsa -out localhost.key 2048
openssl req -new -key localhost.key -out localhost.csr
openssl x509 -req -in localhost.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out localhost.crt -days 825 -sha256 -extfile localhost.ext
sudo a2enmod ssl
sudo systemctl restart apache2
sudo a2ensite default-ssl
sudo systemctl reload apache2

修改/etc/apache2/sites-enabled/default-ssl.conf:

SSLEngine on
SSLCertificateFile /home/lynx/darkin_blade/m3u8/https/localhost.crt
SSLCertificateKeyFile /home/lynx/darkin_blade/m3u8/https/localhost.key

TODO

常见错误

无法启动apache: 找不到libphpx.x.so

php7.4为例

apt-file search "libphp7.4.so"
libapache2-mod-php7.4: /usr/lib/apache2/modules/libphp7.4.so
sudo apt install libapache2-mod-php7.4

403 Forbidden