首先,为了做这篇文章,从头开始,重装系统,选择debian 11.6 进行重装: 服务器推荐:腾讯云
配置完成后,用SSH连接(推荐下载Xshell+Xftp,有免费版)
登陆后,先更新一下debian
# apt-get update
# apt-get upgrade
安装apache
# apt-get install apache2
安装php (组件可选,如果没有特殊要求,建议全装)
# apt-get install php libapache2-mod-php php-mysql php-tidy php-gd php-curl php-xml php-cli php-mbstring php-zip php-intl php-imagick libapache2-mod-rpaf
用Xftp编辑 /etc/php/7.4/apache2/php.ini
将#extension=mbstring 的#注释掉
extension=mbstring
传递真实IP(若没有反向代理需求可以略过,若nginx在本地也略过)
编辑文件 /etc/apache2/mods-enabled/rpaf.conf
在127.0.0.1 后面加上nginx反向代理服务器的IP地址
RPAFproxy_ips 127.0.0.1 11.22.33.44 55.66.77.88 ::1
更改apache端口(如果不安装nginx代理,此段略过)
更改apache端口(如果不安装nginx代理,此段略过)
用Xftp 编辑 /etc/apache2/ports.conf
将端口 80 改成 20080 或者其它
将端口 443 改成 20443 或者其它
apache 安装rewrite模块及vhost模块等(建议全部)
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/remoteip.load /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/vhost_alias.load /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/socache_shmcb.load /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/http2.conf /etc/apache2/mods-enabled
ln -s /etc/apache2/mods-available/http2.load /etc/apache2/mods-enabled
虚拟机配置文件,例如:
/etc/apache2/sites-available/abc.conf
<VirtualHost *:80>
ServerName www.abc.com
ServerAdmin admin@www.abc.com
DocumentRoot /var/www/www.abc.com
<Directory /var/www/www.abc.com>
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/www.abc.com.error.log
CustomLog ${APACHE_LOG_DIR}/www.abc.com.access.log combined
</VirtualHost>
并创建 /var/www/www.abc.com 文件夹
如果有ngin反向代理做前端,请将以上的80端口改为50080或者其他
链接文件到sites-enabled文件夹
ln -s /etc/apache2/sites-available/abc.conf /etc/apache2/sites-enabled
如有多个网站,请重复以上步骤
最后重启apache
# /etc/init.d/apache2 restart
如果配置SSL,请参考以下格式:
<IfModule mod_ssl.c>
<VirtualHost *:20443>
ServerName xl.cool
DocumentRoot /var/www/xl.cool
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on
SSLCertificateFile /etc/apache2/ssl/xl.cool.pem
SSLCertificateKeyFile /etc/apache2/ssl/xl.cool.key
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
<Directory /var/www/xl.cool>
Options FollowSymLinks
AllowOverride All
</Directory>
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/32
ErrorLog ${APACHE_LOG_DIR}/xlcool.error.log
CustomLog ${APACHE_LOG_DIR}/xlcool.access.log combined
</VirtualHost>
</IfModule>
SSL 要设置好 证书的位置,以上参考位置 /etc/apache2/ssl/
如果不需要反向代理,这段代码可以删除
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/32
MariaDB数据库安装:
apt-get install mariadb-server
安全配置
mysql_secure_installation
设置数据库密码和其他选项,以下供参考
进入mariadb
# mysql -uroot -p12345678 把12345678换成你的密码
新建一个用户名
CREATE USER '用户名'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* to '用户名'@'localhost';
退出后重启数据库
systemctl restart mysql
有时候失败,建议重启服务器 reboot
使用数据库的又一种方法,Navicat + ssh
在navicat中,新建一个mariadb连接,输入主机localhost,端口3306,帐号密码。
再选择SSH栏,输入你的主机地址,SSH端口(一般默认是22),用户名和验证方法
这样就可以通过SSH中转,访问你的服务器localhost数据库了
新建数据库,如果用来做wordpress,字符集可以选 utf8mb4
然后就可以制作wordpress了
# cd /var/www
# wget https://cn.wordpress.org/latest-zh_CN.zip
# unzip latest-zh_CN.zip
然后把wordpress文件夹改成apache配置的名称即可进行安装
如果 Nginx 作为前端,用来反向代理apache
好处是:可以比单纯用apache更快,集合了apache的兼容性和nginx的速度
# apt-get install nginx
nginx的缓存设置
nano /etc/nginx/conf.d/proxy.conf
#*************************************************
# 反向代理参数,具体自行搜索按需配置吧,懒得说明了
proxy_connect_timeout 30;
proxy_read_timeout 60;
proxy_send_timeout 30;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
client_max_body_size 100m;
# 配置临时目录、缓存路径(注意要先建立这2个目录,要在同一个硬盘分区,注意权限)
proxy_temp_path /var/tmp/nginx/tmp 1 2;
proxy_cache_path /var/tmp/nginx/xlde levels=1:2 keys_zone=xlde:128m inactive=7d max_size=1g;
# keys_zone=xlde:32m 表示这个 zone 名称为 xlde,分配的内存大小为 32MB
# levels=1:2 表示缓存目录的第一级目录是 1 个字符,第二级目录是 2 个字符
# inactive=7d 表示这个zone中的缓存文件如果在 7 天内都没有被访问,那么文件会被cache manager 进程删除
# max_size=1G 表示这个zone的硬盘容量为 1G
#*************************************************
# mkdir /var/tmp/nginx/xlde #建立文件夹
# mkdir /var/tmp/nginx/tmp #建立文件夹
# chmod -R 777 /var/tmp/nginx #权限777
网站参数设置
nano /etc/nginx/sites-available/xl
附本站nginx站点参数
server {
listen 80;
server_name xl.cool www.xl.cool;
rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。
}
server{
listen 443 ssl http2;
server_name xl.cool www.xl.cool;
index index.php index.html;
ssl_certificate /etc/nginx/ssl/xl.cool.pem;
ssl_certificate_key /etc/nginx/ssl/xl.cool.key;
ssl_session_cache shared:SSL:100m;
ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_stapling on; #OCSP Stapling 开启,OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高 TLS 握手速度
ssl_stapling_verify on; #OCSP Stapling 验证开启
#ssl_trusted_certificate /etc/nginx/ssl/ca-certs.pem; #OCSP Stapling 的证书位置(完整的证书链)
#resolver 127.0.0.1; #用于查询OCSP服务器的DNS
#resolver_timeout 5s; #查询域名超时时间
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;
access_log /var/log/nginx/xl.cool.log;
location / {
proxy_pass https://127.0.0.1:20443;
#proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Referer https://$host;
proxy_ssl_session_reuse on;
}
error_log /var/log/nginx/xl.cool.error.log error;
# 只对图片、js、css 等静态文件进行缓存
location ~* \.(png|jpg|jpeg|gif|ico|js|swf|mp3)$ {
#-------------------------------------
proxy_cache xlde;
proxy_cache_key "$scheme://$host$request_uri";
proxy_cache_valid 200 304 7d;
proxy_cache_valid 301 3d;
proxy_cache_valid any 1m;
#--------------------------------------
#--------------------------------------
proxy_pass https://127.0.0.1:20443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Referer https://$host;
}
}
SSL证书的位置:/etc/nginx/ssl/
做个链接
ln -s /etc/nginx/sites-available/xl /etc/nginx/sites-enabled
/etc/init.d/nginx restart 重启
SSL测试一下,A+的结果
关于网站环境,手动操作,流程+干货,已经倾囊相授了
可以转载,最好能加个我的链接,谢谢!
若有问题可以留言