Web部署
实验简介
openEuler中基于LAMP部署WordPress
实验器材
本文环境基于华为云 的弹性云服务器 ECS:
CPU架构:选择鲲鹏通用计算增强型
操作系统选择 openEuler 20.03 64bit with ARM
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:
- Linux,操作系统,openEuler就是一种Linux发行版
- Apache,Web服务器
- MariaDB或MySQL,数据库管理系统(或者数据库服务器)
- PHP、Perl或Python,Web后端语言,我们选用的是PHP
实验过程
配置openEuler
在华为云openEuler 安装后,没有配置yum源,我们通过重新配置。
cd /etc/yum.repos.d
vi openEuler_x86_64.repo
添加以下内容
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/EPOL/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-20.03-LTS/update/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
安装LAMP
在shell中 通过下面命令安装Apache
yum install -y httpd
通过下面命令开启Apache服务:
systemctl start httpd.service
通过下面命令,设置Apache开机自启动:
systemctl enable httpd.service
系统默认启动防火墙,会导致我们无法访问网站,通过下面命令关闭防火墙:
systemctl stop firewalld
通过下面命令禁止防火墙自启动:
systemctl disable firewalld
MariaDB Server 是最流行的开源关系型数据库之一。它由 MySQL 的原始开发者制作,并保证保持开源。它是大多数云产品的一部分,也是大多数 Linux 发行版的默认配置。MariaDB 被设计为 MySQL 的直接替代产品,具有更多功能,新的存储引擎,更少的错误和更好的性能。
通过下面命令安装mariadb:
yum install -y mariadb-server
通过下面命令开启mariadb服务:
systemctl start mariadb
通过下面命令给mariadb数据库的root账户设置密码123456:
mysqladmin -uroot password '123456'
通过下面命令安装PHP和PHP模块
yum install -y php
yum install -y php-mysqlnd php-fpm php-opcache php-cli
php-curl php-dom php-exif php-fileinfo php-gd php-hash
php-json php-mbstring php-mysqli php-openssl
php-pcre php-xml libsodium
通过下面命令安装交互更加良好的nano 文本编辑器
yum install nano
通过下面命令查看Apache和mariadb的运行状态:
systemctl status httpd
systemctl status mariadb
通过下面命令查看Apache和mariadb是否已经开启了开机自启动:
systemctl list-unit-files | grep httpd.service
systemctl list-unit-files | grep mariadb.service
通过下面命令查看PHP的版本信息:
php -v
通过下面命令创建一个PHP测试文件测试PHP是否正常,输出重定向到test.php文件:
echo "<?php phpinfo(); ?>" > /var/www/html/test.php
通过下面命令给这个文件赋权限
chmod 755 /var/www/html/test.php
通过下面命令重启Apache服务:
systemctl restart httpd
安装部署wordpress
通过下面命令安装wget:
yum install -y wget
通过下面命令请求wordpress安装包(.ZIP):
wget https://cn.wordpress.org/latest-zh_CN.zip
通过下面命令查看mariadb的版本号:
rpm -qa | grep mariadb
通过下面命令登录到mariadb:
mysql -uroot -p
通过下面命令创建WordPress数据库:
create database wordpressdb;
通过下面命令安装unzip解压工具:
yum install -y unzip
解压latest-zh_CN.zip到/var/www目录下
unzip latest-zh_CN.zip -d /var/www
通过下面命令创建用户给Apache权限:
chown -R apache:apache /var/www/wordpress
chmod -R 755 /var/www/wordpress/
编辑Apache的配置文件:
应对文件做好备份(易出错)
nano /etc/httpd/conf/httpd.conf
编辑Apache的欢迎页面,将其内容都注释掉:
nano /etc/httpd/conf.d/welcome.conf
重启Apache服务:
systemctl restart httpd
转到下面这个文件夹:
cd /var/www/wordpress
创建 wp-config.php 文件:
nano wp-config.php
文件为空白,需自己编辑,详情见问题与解决部分
实例
:访问ip/wp-config.php(ip为华为云的弹性公网ip)
如果不成功,直接访问ip
登录
问题及解决
1、无法正常重新启动Apache
编辑修改Apache的配置文件时出现错误,更改了错误的地方
本编辑为了修改ip地址默认访问的路径
配置文件相关语句见下:
# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" //服务器的根路径,改文件中所有涉及到的路径的根都是相对它而言的。
Listen 80 //监听的端口
Include conf.modules.d/*.conf //包含辅助配置文件目录下的所有以.conf结尾的;;;文件(/etc/httpd/conf.modules.d/*.conf)
User apache //运行web服务的用户
Group apache
ServerAdmin root@localhost //管理员邮件地址
#ServerName www.example.com:80 //服务器的名字
ServerName www.uplooking.com:80
<Directory /> ---容器,对整个目录中的东西进行设置,权限等等
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html" //web服务文档根路径
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks //Indexes:索引目录,(默认没有主页时),允许索引目录 FollowSymLinks:支持符号链接 软连接
AllowOverride None //和访问权限有关 可以进行认证 None --不使用认证 all--应用所有的认证指令 AuthConfig --允许使用与认证授权相关的指令
Require all granted //访问控制 所有人方行
</Directory>
<IfModule dir_module>
DirectoryIndex index.html //网站索引页的名称
</IfModule>
<Files ".ht*"> //以所有.ht开头进行模式匹配不能进行访问
Require all denied
</Files>
ErrorLog "logs/error_log" //错误日志的设定
LogLevel warn //日志级别
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined //日志格式规定
LogFormat "%h %l %u %t \"%r\" %>s %b" common //日志格式规定
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio //日志格式规定
</IfModule>
CustomLog "logs/access_log" combined //访问日志
</IfModule>
<IfModule alias_module>
# Alias /webpath /full/filesystem/path //给路径设置别名 意味着访问http://Server_ip/webpath时,其页面文件来自于/full/filesystem/path中
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" //脚本路径的别名
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types //支持哪些非二进制文件
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8 //默认字符集
#EnableMMAP off //线程模式
EnableSendfile on //开启进程模式(默认)
IncludeOptional conf.d/*.conf //包含辅助配置文件目录下的所有以.conf结尾的文件(/etc/httpd/conf.d/*.conf)
2、页面访问失败
如果访问失败,我们可以先用test.php试验是否可以正常运行php文件,如果php环境没问题,就可能是权限的问题,用chmod 755修改wp-config.php权限,即可成功访问。
3、mariadb命令
4、wp-config.php配置指南
https://developer.wordpress.org/apis/wp-config-php/
感想
1、注意命令的准确性。
实验过程中出现命令的不准确导致无法成功完成
如mariadb中命令以;结尾,无分号无法执行。
2、注意help的应用
如mariadb中运用\h可查询相关命令,不会发生不会退出的问题
3、应先学习相关问题的学习
以Apache为例,编辑配置文件应先学习该文件,本次发生文件编辑不准出错的案例。
编辑wp-config.php也发生相关问题,并不是提供的所有文本均有用。
4、注意备份
编辑文件时发生错误后无法找回源文件,只能从头来,很不方便,大大拖慢了进程。
5、注意实验指导书内容
指导书中存在部分问题解决方法,开始没发现。
个人建议
1、希望视频与博客配套。
2、希望涉及到文本编辑的地方更细节一些。