搭建个人网站

准备工作

服务器:阿里云ECS

操作系统:Alibaba Cloud Linux 3.2104 LTS 64位(兼容CentOS 8)

开始

一、搭建LAMP环境

1.关闭防火墙与SELinux

1⃣️关闭防火墙

查看防火墙状态,inactive—关闭状态,active—开启状态,使用以下命令暂时关闭防火墙

systemctl status firewalld    #查看防火墙状态

systemctl stop firewalld    #暂时关闭,重启将打开
systemctl disable firewalld    #永久关闭

2⃣️关闭SELinux

查看SELinux状态,Disabled—关闭状态,Enforcing—开启状态

getenforce    #查看SELinux当前状态
setenforce 0    #暂时关闭,重启后将开启

#如果你想永久关闭
vim /etc/selinux/config    #编辑SELinux配置文件
按ℹ️键进入编辑模式
将SELINUX=enforcing改为SELINUX=disabled
Esc, :wq, 保存退出

2.安装Apache

1⃣️运行以下命令,安装Apache服务及其扩展包

dnf -y install httpd httpd-manual mod_ssl mod_perl
dnf -y install httpd httpd-devel

2⃣️运行以下命令,查看Apache的版本号

httpd -v

3⃣️依次运行以下命令,启动Apache服务并设置服务开机启动

systemctl start httpd
systemctl enable httpd

4⃣️测试Apache服务是否安装并启动成功

a.在阿里云的ECS控制台找到自己的服务器公网地址

b.浏览器输入http://<你的公网地址>,若出现Apache欢迎页面即Apache服务启动成功

3.安装并配置MySql

1⃣️运行以下命令,安装MySQL

wget <http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm> && dnf -y install mysql57-community-release-el7-10.noarch.rpm && dnf -y install mysql-community-server --nogpgcheck

2⃣️查看MySQl版本号

mysql -V

3⃣️启动MySQL

systemctl start mysqld

4⃣️设置开机启动

systemctl enable mysqld
systemctl daemon-reload

5⃣️查看MySQL初始密码

grep "password" /var/log/mysqld.log
#该命令回返回一串信息,末尾显示的即为MySQL初始密码

6⃣️配置MySQL的安全性设置

mysql_secure_installation    #输入后输入上一步显示的初始密码,紧接着会提示修改密码,然后会出现几个询问

Change the password for root ?(Press y|Y for yes, any other key for No):
#按y,确认更换密码,并重复输入上一步你设置的密码
Remove anonnymous users?    #是否删除匿名用户?按y
Disallow root login remotely?    #是否禁止root远程登录,如果你只是建站建议禁止(按y),如果需要远程SSH操作数据库,按n
Remove test database and access to it?   #是否删除test库对它的访问权限,按y
Reload privilege tables now?    #是否重新加载授权表,按y,刷新权限

4.安装PHP

1⃣️添加并更新epel源

rpm -ivh --nodeps <https://rpms.remirepo.net/enterprise/remi-release-8.rpm>

2⃣️安装php

dnf update -y dnf libdnf
sed -i 's/PLATFORM_ID="platform:al8"/PLATFORM_ID="platfrom:el8"/g' /etc/os-release
dnf -y module install php:remi-7.4
sed -i 's/PLATFORM_ID="platform:el8"/PLATFORM_ID="platform:al8"/g' /etc/os-release

dnf -y install php-mysqli   #安装Wordpress必要的php扩展

3⃣️查看php版本

php -v

4⃣️测试

#在Apache网站根目录创建测试文件
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

systemctl restart httpd    #重启Apache服务

#在浏览器地址栏输入
http://<你的公网地址>/phpinfo.php
#若返回php信息页即安装成功

#成功搭建LAMP环境后,建议删除phpinfo.php测试文件,消除数据泄露风险。
rm -rf /var/www/html/phpinfo.php

5.(可选)安装phpMyAdmin

phpMyAdmin是一个MySQL数据库管理工具,使用者可以通过网页管理和操作数据库

1⃣️创建phpMyAdmin数据存放目录

mkdir -p /var/www/html/phpmyadmin

2⃣️下载phpMyAdmin压缩包并将文件解压,然后将文件夹的内容复制到上一步创建的目录里

cd ~    #返回到主目录
wget --no-check-certificate <https://files.phpmyadmin.net/phpMyAdmin/4.0.10.20/phpMyAdmin-4.0.10.20-all-languages.zip>
dnf -y install unzip    #下载zip格式压缩包的解压工具
unzip phpMyAdmin-4.0.10.20-all-languages.zip    #解压
cp phpMyAdmin-4.0.10.20-all-languages/* /var/www/html/phpmyadmin   #复制phpMyAdmin文件到存放目录

3⃣️测试

#浏览器地址栏输入
http://<你的公网地址>/phpmyadmin
#若返回登陆页面,则安装成功

二、配置Wordpress网站服务

1.创建一个数据库(例如:wordpress)用来存放网站数据

#进入MySQL数据库
mysql -u root -p    #输入你的密码进入数据库
create database wordpress;    #创建一个数据库wordpress存放网站数据

#创建一个新用户user来管理数据库,密码为PASSword123&&&(当然你也可以直接用root,但这并不安全)
create user 'user'@'localhost' identified by 'PASSword123&&&';
#给这个新用户授予wordpress的全部权限
grant all privileges on wordpress.* to 'user'@'localhost';
#使配置生效
flush privileges;
#退出MySQL
exit;

2.下载Wordpress压缩包,上传至服务器并解压至存放目录

1⃣️下载Wordpress

wordpress下载地址(建议下载tar.gz格式)

下载 | WordPress.org China 简体中文

2⃣️上传压缩包到服务器(方法很多,简单讲讲)

例如:Xftp,安装好后,打开Xftp,左上角添加新的会话,输入会话名、你的公网IP、用户名、密码,连接即可。然后将下好的wordpress压缩包拖到右边的窗口即可。

Xftp下载地址

家庭/学校免费 - NetSarang Website

3⃣️解压wordpress压缩包,并将其内容存放至网站根目录

#假设我将下载好的压缩包wordpress-6.2.0.tar.gz上传到了/home目录
cd /home   #转到压缩包目录
tar -zxvf wordpress-6.2.0.tar.gz   #解压,解压后会有生成一个wordpress文件夹
#将wordpress文件到内容复制到网站根目录(默认为/var/www/html)
cp -r wordpress/* /var/www/html/
#复制配置文件
cp wp-config-sample.php wp-config.php
#编辑wordpress配置文件
vim wp-config.php

编辑wordpress配置文件

#在打开的配置文件中编辑以下几行
/*wordpress数据库名*/
define('DB_NAME', 'wordpress');

/*MySQL数据库wordpress的用户名user(之前创建的管理wordpress的用户名)*/
define('DB_USER', 'user');

/*wordpress数据库用户密码*/
define('DB_PASSWORD', 'PASSword123&&&');

#另外再添加几行,用于配置ftp,方便wordpress更新与下载
define('FS_METHOD', 'direct');
define('FS_CHMOD_DIR', 0777);
define('FS_CHMOD_FILE', 0777);

#最后Esc :wq保存退出

4⃣️给网关赋权(用于解决wordpress安装插件或模板失败的问题)

使用以下命令行,查看你的网关用户名,(一般来讲Apache的网关用户名是apache,Nginx的网关用户名是www)

vim /etc/passwd    #查看是否存在apache这个用户名,
#若有则Esc :q退出文件,执行下一步;若没有,请到网上查一下在你的配置下网关用户名叫什么

#更改目录到属主为网关用户
chown -R apache /var/www/html/

#然后将目录权限改为755
chmod -R 755 /var/www/html

⚠️测试一下,如果下载插件或主题仍然失败,尝试单独给更新程序文件夹777权限,或整个网站根目录添加777权限。

#下载功能正常就不要使用以下命令行
chmod -R 777 /var/www/html/wp-admin/update-core.php

3.安装wordpress

以上步骤完毕后,个人网站已经基本完成了,来开始最后的几步吧!

1⃣️安装wordpress

打开浏览器,在地址栏输入 http://<你的公网地址> 进入wordpress安装界面

站点标题:填写你的网站名称

用户名:填写你登陆wordpress后台的用户名

密码:自己设置咯

您的电子邮件:填你的邮箱咯

2⃣️点击登录,等待1分钟左右,即可登录后台了,至此你的网站也搭建好了👌。

三、(可选,如果你有域名建议添加)为网站添加域名与SSL证书

1.SSL证书下载

如果你是用的是阿里云的服务器,其他品牌类似,道理相同。

1⃣️登陆阿里云,下载SSL证书

没有申请SSL证书可以申请一下,可以白嫖。以下是阿里云官网

https://cn.aliyun.com/

进入SSL证书管理控制台-SSL证书-免费证书-下载-选择下载Apache格式的,你会得到一个含有三个证书文件压缩包

2⃣️将压缩包上传至你的服务器,可以直接用Xftp,这里不再赘述。

例如:你将含有证书文件的压缩包file.zip上传到了目录/hom下

#解压证书文件,并将其移动到/etc/httpd/ssl目录下(⚠️若没有ssl目录,直接创建即可)
cd home
unzip file.zip
mv file/* /etc/httpd/ssl
#⚠️这里讲一下Apache证书文件的文件结构,总共有三个文件
#例如以下三个,拿百度举个例子没有冒犯的意思,文件名可任意取,一般默认文件就是按域名+类型这样取名
#baidu.com_public.crt   证书文件
#baidu.com_chain.crt    证书链接文件
#baidu.com.key    私钥文件

2.编辑Apache的配置文件

1⃣️编辑/etc/httpd/conf/httpd.conf

#找到以下命令,并将其前面的注释去掉,如果有
Include conf.modules.d/*.conf
#(用于配置加载SSL的配置目录)

2⃣️编辑/etc/httpd/conf.modules.d/00-ssl.conf

#找到以下命令行,取消前面的注释,如果有
LoadModule ssl_module modules/mod_ssl.so
#(用于加载SSL模块)

3⃣️编辑/etc/httpd/conf.d/ssl.conf

#修改以下标记框内的内容,一般是注释掉了,打开即可,若VirtualHost里面没有,手写即可,其余命令的不用管
<VirtualHost 0.0.0.0:433>
	#网站根目录
	DocumentRoot "/var/www/html"
	#填写证书名称(即域名)
	ServerName baidu.com
	#启用SSL功能
  SSLEngine on
	#接下来填写证书文件路径,⚠️注意路径末尾文件名要填自己的,这里是做示范
	#证书文件路径
	SSLCertificateFile /etc/httpd/ssl/baidu.com_public.crt
	#私钥文件路径
	SSLCertificateKeyFile /etc/httpd/ssl/baidu.com.key
	#证书链文件路径
	SSLCertificateChainFile /etc/httpd/ssl/baidu.com.chain.crt

</VirtualHost>

4⃣️重启Apache服务,即可使用https访问

⚠️在访问网址前,你需要确保已经放行了443端口

https://<你的域名>

5⃣️(可选)想必有朋友不知道怎么放行端口,这里简单讲一下。

登陆阿里云官网-ECS服务器管理控制台-实例-安全组-配置规则-入方向-选择手动添加

端口范围:直接写你要放行的端口号,例如443

授权对象:填0.0.0.0,表示对所有ip授权

备注:加个备注,标明一下

其他:保持默认即可

3.(可选)HTTP自动跳转到HTTPS

1⃣️编辑/etc/httpd/conf/httpd.conf配置文件

查看是否存在以下命令行

#编辑配置文件
vim /etc/httpd/conf/httpd.conf
#按`/`键,输入以下这串关键字可以直接搜索🔍
LoadModule rewrite_module modules/mod_rewrite.so
#如果存在这一行命令,去掉前面的注释即可

2⃣️如果不存在,则增加配置文件

(1).在/etc/httpd/conf.modules.d中新建一个 *.conf 文件,例如 00-rewrite.conf。在新建文件中添加以下内容

#直接vim创建并编辑00-rewrite.conf
vim /etc/httpd/conf.modules.d/00-rewrite.conf
#你会看到一个空白文本,添加以下内容保存退出即可
LoadModule rewrite_module modules/mod_rewrite.so

(2).在/etc/httpd/conf/httpd.conf配置文件中添加以下内容

#编辑Apache配置文件
vim /etc/httpd/conf/httpd.conf

#找到以下内容,可以直接用`/`查找
<Directory "/var/www/html"> 
# 新增下面这三行
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</Directory>

(3).重启Apache服务器即可

systemctl restart httpd
#重启完后,你就用`http://<域名>`访问网址就会自动跳转到`https://<域名>`啦

四、(可选)优化服务器,避免因内存太小而频繁宕机

由于用的是阿里云的免费学生机,内存只有可怜的2G,登陆站点消耗的内存大,会出现mysql内存占用率超过50%的情况,这时mysql的进程就可能会被Linux内核杀死。

1.利用swap虚拟内存缓解物理内存压力

1⃣️创建SWAP分区

#检查系统SWAP文件信息
sudo swapon -s
free -m
#检查硬盘可用空间
df -h
#创建Swap文件
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
#此处的1024代表swap分区内存,可以根据需要设定

2⃣️激活swap,并设置开机生效

#激活swap
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1
#使swap在主机重启后依然生效
sudo vim /etc/fstab
#在打开的配置文件中添加以下内容
/var/swap.1 swap swap defaults 0 0
ALL done!

2.降低MySQL数据库的服务压力

1⃣️InnoDB 引擎的缓冲区大小

#在Linux操作系统下,MySQL的配置文件是my.cnf
#查找mysql配置文件的目录
find / -name my.cnf    #查找到后会返回一个目录,那个目录会存放MySQL配置文件
#例如:此处返回到值为 /etc/my.cnf
#编辑配置文件
vim /etc/my.cnf

#找到以下命令行,取消前面的注释,并将缓冲区大小改为64M或者32M,默认128M
innodb_buffer_pool_size=64M

2⃣️限制MySQL的最大连接数(max_connections)

#同理,编辑mysql的配置文件my.cnf
#找到以下命令行,将最大连接数改为100,默认151
max_connections=100
#如果没找到这一行命令,也可以直接自己加过去

3⃣️修改完后重启MySQL

systemctl restart mysqld

#可以登陆Wordpress站点后台-仪表盘-工具-站点健康-信息-数据库页面,来查看是否修改成功

参考链接🔗

部署LAMP环境(Alibaba Cloud Linux 3)_云服务器 ECS-阿里云帮助中心

CentOS7.4搭建LAMP环境安装WordPress详细图解_ymxowgk的博客-CSDN博客

解决CentOS下WordPress无法更新和安装插件的问题,更新/安装失败无法创建目录_51CTO博客_wordpress插件安装失败

SSL 证书 Apache 服务器 SSL 证书安装部署(Linux)-证书安装-文档中心-腾讯云

阿里云服务器 mysql经常自动停止挂掉重启的完美解决方式_database was not shutdown normally!_Tyrone_XU的博客-CSDN博客

💡 原创作者进进菜鸟,转载引用请注明出处 。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进进菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值