Apache 服务器的安装与配置

因为之前已经安装过 yum 了,所以直接在线安装,我的服务器系统是 CentOS 7
主配置文件的目录为: /etc/httpd/conf/httpd.conf

在线安装

yum list 看看有没有可安装的包 yum list httpd
有的话就可以以安装 yum install httpd.x86_64

配置端口

默认端口是 80 端口,可以不修改,根据个人情况决定,我将其改为了 8080端口,配置文件的目录为
etc/httpd/conf/httpd.conf
vi httpd.conf 命令打开文件,按下 i 键就可以开始修改,要注意开始的时候展示的并不是文件的全部,需要按几次回车才能看到修改端口的地方,修改完成后按 Esc 键退出编辑状态,输入命令 :wq 回车退出并保存。

设置 httpd 服务开机启动

etc/httpd 目录下输入 /sbin/chkconfig httpd on 命令,回车,看到结果:

Note: Forwarding request to 'systemctl enable httpd.service'.
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

启动 httpd 服务

还是在 httpd 这个目录下,输入 /sbin/service httpd start 命令,看到结果为:
Redirecting to /bin/systemctl start httpd.service 表示启动了 Apache 服务器,访问 ip 验证一下,如果看到了测试页面说明启动成功。注意:如果你修改了你的监听端口号的话,那么在你访问 ip 地址的时候后面应该加上你的端口号,中间用冒号隔开

我的阿里云的服务器,需要配置安全组规则,允许设置的那个端口被外网访问

systemctl start httpd.service //启动
systemctl restart httpd.service //停止
systemctl status httpd.service //查看状态
systemctl restart httpd.service //重启
systemctl enable httpd.service //开机启动

httpd 的卸载

rpm -qa | grep httpd 或者 yum list | grep httpd 先确认是否有安装过,因为我安装过,所以我的显示是这样的:

rpm -qa | grep httpd
httpd-2.4.6-67.el7.centos.6.x86_64
httpd-tools-2.4.6-67.el7.centos.6.x86_64

下面开始卸载 httpd ,首先要停止 httpd 服务,
systemctl stop httpd.service

然后通过 rpm -e 或者 yum -erase 命令都可以,不过 rpm -e 命名必须要自己先卸载依赖包,所以我用 yum -erase 命令卸载,命令如下:
yum erase httpd.x86_64

MySQL 安装与配置

最好对 MySQL 的命令有一定理解能力,不然光看着教程也不知道是咋回事,就数据库用户名和密码那块不理解就很难办,因为要确保用户名和密码还有数据库名字的一致,如果出现不一致的地方,就会出现数据库连接错误。

首先检测系统是否有自带安装 MySQL

rpm -qa | grep mysql
如果你的系统有安装,那可以选择进行卸载
rpm -e mysql 普通删除模式
rpm -e --nodeps mysql 强力删除模式,如果使用上面命令删除时,提示有依赖的其他文件,则用该命令可以对其进行强力删除

安装 MySQL

因为在 CentOS 7 版本, 由于 MySQL 数据库已从默认的程序列表中移除,可以使用 mariadb 代替,安装命令为:
yum install mariadb-server mariadb
mariadb 数据库的相关命令是:

  • systemctl start mariadb #启动 MariaDB
  • systemctl stop mariadb #停止 MariaDB
  • systemctl restart mariadb #重启 MariaDB
  • systemctl enable mariadb #设置开机启动
开机启动成功:
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

验证 MySQL 安装

在成功安装 MySQL 后,一些基础表会表初始化,在服务器启动后,可以通过简单的测绘师来验证 MySQL 是否工作正常。使用 mysqladmin 工具来获取服务器状态,该文件位于 /usr/bin

mysqladmin --version
mysqladmin  Ver 9.0 Distrib 5.5.56-MariaDB, for Linux on x86_64

如果命令未输出任何信息,说明你的 MySQL 未安装成功

配置 MySQL

运行 mysql_secure_installation 安全配置向导
它会告诉你由于你是刚安装完所以默认密码是空的,只需要回车即可,然后设置新密码,再次输入新密码
然后问你是否删除匿名用户,生产环境建议删除
Remove anonymous users? [Y/n] y
是否禁止 root 远程登录
Disallow root login remotely? [Y/n] n
是否删除 test 数据库
Remove test database and access to it?[Y/n] y
是够重新加载权限表
Reload privilege tables now? [Y/n] y

配置 mariadb 的字符集

查看 /etc/my.cnf 文件内容,其中包含一句 !includedir/etc/my.cnf.d ,说明在该配置文件中引入了 /etc/my.cnf.d 目录下的配置文件

cd /etc/my.cnf.d
  1. 使用 vi server.cnf 命令编辑 server.cnf 文件,如果 /etc/my.cnf.d 目录下无 server.cnf ,文件,则直接在 /etc/my.cnf 文件的 [mysqld]标签下添加以下内容
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
  1. vi client.cnf 命令编辑 /etc/my.cnf.d/client.cnf ,在 [client] 标签下添加
    default-character-set=utf8
  2. vi mysql-clients.cnf 命令编辑 /etc/my.cnf.d/mysql-clients.cnf 文件, 在 [mysql] 标签下添加 default-character-set=utf8 配置完成后 systemctl restart mariadb 重启服务
  3. 进入到数据库 mysql -u root -p 输入 show variables like "%character%";show variables like "%collation%"; 查看字符设置

卸载 MySQL

要注意由于在 CentOS 7 中安装的是 mariadb

  1. 检查 mariadb 是否安装
    rpm -qa | grep mariadb

输出为:

mariadb-5.5.56-2.el7.x86_64
mariadb-libs-5.5.56-2.el7.x86_64
mariadb-server-5.5.56-2.el7.x86_64
  1. 卸载 mariadb
    根据 httpd 的卸载,我用 yum erase 命令卸载

yum erase mariadb

  1. 卸载 mariadb 依赖
    在上一步之后再执行

rpm -qa | grep mariadb
结果为:
mariadb-libs-5.5.56-2.el7.x86_64
执行:
yum erase mariadb-libs
再用命令 rpm -qa | grep mariadb 查看,已经没有输出了,卸载完毕

重置 MySQL 密码

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接 MySQL 数据库。
因为在重新设置 MySQLroot 密码的期间, MySQL 数据库完全出于没有密码保护的
状态下,其他的用户也可以任意地登录和修改 MySQL 的信息。可以采用将 MySQL
外的端口封闭,并且停止 Apache 以及所有的用户进程的方法实现服务器的准安全
状态。最安全的状态是到服务器的 Console 上面操作,并且拔掉网线。

2.修改 MySQL 的登录设置:
# vi /etc/my.cnf
[mysqld] 的段中加上一句: skip-grant-tables
保存并且退出。

3.重新启动 mariadb
# systemctl restart mariadb

4.登录并修改 MySQLroot 密码

# mysql 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 3 to server version: 3.23.56 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 
mysql> USE mysql; 
Database changed 
mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ; 
Query OK, 0 rows affected (0.00 sec) 
Rows matched: 2 Changed: 0 Warnings: 0 
mysql> flush privileges ; 
Query OK, 0 rows affected (0.01 sec) 
mysql> quit

5.将 MySQL 的登录设置修改回来
# vi /etc/my.cnf
将刚才在 [mysqld] 的段中加上的 skip-grant-tables 删除
保存并且退出 vi

6.重新启动 mariadb
# systemctl restart mariadb

MySQL 远程连接

允许 root 用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:
在本机先使用 root 用户登录 mysql
mysql -u root -p"youpassword"
进行授权操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出 mysql 数据库:
exit

安装 PHP

安装命令:
yum install php

Apche 的目录下面新建一文件 test.php

cd /var/www/html
vi test.php

可以键入相关 PHP 代码,以输入 hello world 为例,

<?php
    echo "hello world";
?>

访问网站 ip:port/test.php ,如果正常解析,则说明 PHP 环境完成。没有修改端口号就不用加端口号了,修改了端口号的话还要改别的配置,所以我又把端口号改回了 80 ,访问可看到网页显示 hello world

安装 WordPress

MySQL 创建用户

MariaDB [(none)]> insert into mysql.user(Host,User,Password) 
    -> values("localhost","phpphp",password("111111"));
Query OK, 1 row affected, 4 warnings (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

一定要执行 flush privileges; 刷新权限列表后,你新建的用户名和密码才能生效,不然用新建的用户名登录会提示错误

mysql -u phpphp -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'phplamp'@'localhost' (using password: YES)

WordPress 创建数据库

[root@izwz934uda0vhx21ipksh8z ~]# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

// 创建一个名为 wordpress 的数据库库
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

// 将数据库 wordpress 的所有权限授予名字为 username 密码为 password 的用户
MariaDB [(none)]> grant all privileges on wordpress.* to username@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

// 刷新权限列表
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit
Bye

安装 WordPress

  1. 在我们下载 WordPress 之前,有一个 PHP 模块,我们需要安装,以确保它正常工作。没有此模块, WordPress 将无法调整图像大小以创建缩略图。用 yum 来安装
    sudo yum install php-gd
  2. 现在我们需要重启 Apache ,以便它识别新的模块:
    sudo service httpd restart
  3. 安装 WordPress
cd ~
wget http://wordpress.org/latest.tar.gz
  1. 这将下载一个压缩的归档文件,其中包含我们所需的所有WordPress文件。 我们可以提取归档文件与重建的 WordPress 目录 tar
    tar xzvf latest.tar.gz
  2. 现在,您将有一个目录名为 wordpress 在你的主目录。 我们可以通过将解压缩的文件传输到 Apache 的文档根目录来完成安装,在那里它可以提供给我们网站的访问者。 我们可以有我们的传输文件的 WordPress rsync ,这将保存文件的默认权限
    sudo rsync -avP ~/wordpress/ /var/www/html/
  3. PS :我直接在 /var/www/html/ 目录下下下载并解压了,因为第一次文件传输失败了
  4. rysnc 将安全的所有的内容从你解压文档根目录的目录复制 /var/www/html/ 。 但是,我们仍然需要为 WordPress 添加一个文件夹来存储上传的文件。 我们可以做到这一点用 mkdir 命令:
    mkdir /var/www/html/wp-content/uploads
  5. 现在我们需要为我们的 WordPress 文件和文件夹分配正确的所有权和权限。 这将增加安全性,同时仍然允许 WordPress 按预期工作。 要做到这一点,我们将使用 chown 授予所有权 Apache 的用户和组:
    sudo chown -R apache:apache /var/www/html/*
  6. 通过此更改 Web 服务器将能够创建和修改 WordPress 文件,并且还将允许我们将内容上传到服务器

配置 WordPress

使用 WordPress 所需的大多数配置将通过以后的 Web 界面完成。 但是,我们需要从命令行做一些工作,以确保 WordPress 可以连接到我们为其创建的 MySQL 数据库。

  1. 首先进入安装 WordPressApache 根目录:
    cd /var/www/html
  2. WordPress 的依赖于主配置文件称为 wp-config.php 。 默认情况下,包括大多数匹配我们需要的设置的示例配置文件。 我们需要做的是将其复制到默认配置文件位置,以便 WordPress 可以识别和使用该文件:
    cd wordpress

cp wp-config-sample.php wp-config.php

  1. 现在我们有一个要使用的配置文件,让我们在文本编辑器中打开它:
    vi wp-config.php
  2. 我们需要对此文件进行的唯一修改是保存我们的数据库信息的参数。 我们需要找到段名为 MySQL settings 和更改 DB_NAMEDB_USERDB_PASSWORD 为了变量 WordPress 的正确连接和认证,我们创建的数据库。
    使用您创建的数据库的信息填写这些参数的值。 它应该看起来像这样:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'wordpressuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

这些是您需要更改的唯一值,因此在完成后保存并关闭文件。

通过 Web 界面完成安装

输入 ip:port/wordpress 将导航到 WordPress 安装页面,剩下的只需要按照要求来即可

遇到的错误

配置完成后输入 url 地址
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
先是提示 PHP 没有安装 MySQL 扩展,安装扩展:
yum install -y php-mysql
service httpd restart
安装完扩展又出现如下错误:
Error establishing a database connection 多半是和数据库的连接出了问题,检查你的用户名和密码配置的是否正确,此处需要熟悉一下数据库命令的意思
告诫大家,不懂的地方不要瞎改,不然就要解决到弄懂这个东西,尤其是 WordPress 修改设置也没有个确认按钮,很难受,网站说呲就呲了

参考文档

  1. (MySQL配置参考)[http://www.jianshu.com/p/25c2711efa23]

标签: none

添加新评论