准备工作
服务器:阿里云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格式)
2⃣️上传压缩包到服务器(方法很多,简单讲讲)
例如:Xftp,安装好后,打开Xftp,左上角添加新的会话,输入会话名、你的公网IP、用户名、密码,连接即可。然后将下好的wordpress压缩包拖到右边的窗口即可。
Xftp下载地址
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证书可以申请一下,可以白嫖。以下是阿里云官网
进入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博客
💡 原创作者进进菜鸟,转载引用请注明出处 。