实验八 web部署
本次实验目的:在openEuler虚拟机上配置web环境。
配置LAMP
LAMP:
L Linux,操作系统
A Apache,网页服务器,解析网页语言、接收用户请求并给与响应
M MariaDB或MySQL,数据库管理系统(或者数据库服务器)
P PHP、Perl或Python,脚本语言,用于后台开发
这里我们用Linux-openEuler,Apache,MariaDB和php
Linux
配置虚拟机
在华为云平台上购买弹性云服务器
使用Moba Xterm,session->SSH,将云服务器的公网ip输入,生成虚拟机页面
配置虚拟机yum源
华为云openEuler没有配置yum源。> yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。
yum相关请见http://c.biancheng.net/view/2931.html
点击查看代码
cd /etc/yum.repos.d
vi openEuler_x86_64.repo
在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
nano文本编辑器
通过下面命令安装交互更加良好的nano 文本编辑器:
点击查看代码
yum install nano
Apache
安装:
点击查看代码
yum install -y httpd
启动:
点击查看代码
systemctl start httpd.service
通过下面命令,设置Apache开机自启动:
点击查看代码
systemctl enable httpd.service
初学web服务器时注意:
系统默认启动防火墙,会导致我们无法访问网站,通过下面命令关闭防火墙:
点击查看代码
systemctl stop firewalld
通过下面命令禁止防火墙自启动:
点击查看代码
systemctl disable firewalld
MariaDB
MariaDB Server 是最流行的开源关系型数据库之一。它由 MySQL 的原始开发者制作,并保证保持开源。它是大多数云产品的一部分,也是大多数 Linux 发行版的默认配置。MariaDB 被设计为 MySQL 的直接替代产品,具有更多功能,新的存储引擎,更少的错误和更好的性能。
安装:
点击查看代码
yum install -y mariadb-server
开启mariadb服务:
点击查看代码
systemctl start mariadb
通过下面命令设置mariadb开机自启动:
点击查看代码
systemctl enable mariadb
通过下面命令给mariadb数据库的root账户设置密码123456(或者其他什么):
点击查看代码
mysqladmin -uroot password '245014'
可以通过下面命令修改密码,一般不用操作
点击查看代码
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; (注:新密码替换成自己的密码)
PHP
通过下面命令安装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
检查
通过下面命令查看Apache和mariadb的运行状态:
点击查看代码
systemctl status httpd
systemctl status mariadb
通过下面命令查看Apache和mariadb是否已经开启了开机自启动:
点击查看代码
systemctl list-unit-files | grep httpd.service
systemctl list-unit-files | grep mariadb.service
通过下面命令查看mariadb的版本号:
点击查看代码
rpm -qa | grep mariadb
通过下面命令查看PHP的版本信息:
点击查看代码
php -v
test.php测试:
通过下面命令创建一个PHP测试文件测试PHP是否正常,输出重定向到test.php文件:
点击查看代码
echo "<?php phpinfo(); ?>" > /var/www/html/test.php
通过下面命令给这个文件赋权限:
点击查看代码
chmod 755 /var/www/html/test.php
通过下面命令重启Apache服务:
点击查看代码
systemctl restart httpd
在其他浏览器中输入ip/test.php出现以下形式即可
安装部署wordpress
通过下面命令安装wget:
点击查看代码
yum install -y wget
通过下面命令请求wordpress安装包(.ZIP):
点击查看代码
wget https://cn.wordpress.org/latest-zh_CN.zip
通过下面命令登录到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
通过下面命令创建用户给wordpress以Apache权限:
点击查看代码
chown -R apache:apache /var/www/wordpress
chmod -R 755 /var/www/wordpress/
编辑Apache的配置文件:
找准这个地方,把Directory语句中原本的默认路径 /var/www/html 改为 /var/www/wordpress
点击查看代码
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
wp-config.php 文件中的代码:
点击查看代码
<?php
/**
* The base configuration for WordPress
*
* The wp-config.php creation script uses this file during the installation.
* You don't have to use the web site, you can copy this file to "wp-config.php"
* and fill in the values.
*
* This file contains the following configurations:
*
* * Database settings
* * Secret keys
* * Database table prefix
* * ABSPATH
*
* @link https://wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpressdb' );
/** Database username */
define( 'DB_USER', 'root' );
/** Database password */
define( 'DB_PASSWORD', '123456' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );
/**#@+
* Authentication unique keys and salts.
*
* Change these to different unique phrases! You can generate these using
* the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
*
* You can change these at any point in time to invalidate all existing cookies.
* This will force all users to have to log in again.
*
* @since 2.6.0
*/
define( 'AUTH_KEY', 'put your unique phrase here' );
define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );
/**#@-*/
/**
* WordPress database table prefix.
*
* You can have multiple installations in one database if you give each
* a unique prefix. Only numbers, letters, and underscores please!
*/
$table_prefix = 'wp_';
/**
* For developers: WordPress debugging mode.
*
* Change this to true to enable the display of notices during development.
* It is strongly recommended that plugin and theme developers use WP_DEBUG
* in their development environments.
*
* For information on other constants that can be used for debugging,
* visit the documentation.
*
* @link https://wordpress.org/support/article/debugging-in-wordpress/
*/
define( 'WP_DEBUG', false );
/* Add any custom values between this line and the "stop editing" line. */
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
创建成功后再次搜索ip,就会进入这样一个界面,我们第一个web就算完成啦!
发现问题
1,重启之后,会出现http error 500;
解决过程:经过测试,在wordpress文件夹下创建test.php文档,没问题,是wp-config.php代码不完全的问题
2,搜索不到文件;
解决过程:重新设置路径,注意把root的地址更改清楚:打开文件nano /etc/httpd/conf/httpd.conf
3,网页直接出现php源码。
解决过程:重启Apache,进行test.php。
4,出现与数据库建立连接出现错误。
解决过程:经过查阅资料,发现是在wp-config文件中对数据库的引用不正确。
详见网址https://www.lsbin.com/9311.html
对实验的建议
首先理清原理和语句关系,理解每一步背后的逻辑关系,明晓问题容易出现的地方,再开始做实验。