备注:以下代码均在bash中运行测试成功过
Linux Apache MariaDB(Mysql) Php
这里我采用的是PDO操作数据库
这里采用的阿里云的云服务器,99一年的超轻量级入门玩耍机器。
初始化系统选择Centos - 8.1,设置密码即可
cat /etc/redhat-release
-CentOS Linux release 8.1.1911 (Core)
yum -y install httpd.*
systemctl enable httpd #设置开机启动
systemctl start httpd #启动
(有安全组配置的服务器请提前放行80端口,比如现在用的阿里云)
在浏览器地址栏输入服务器的公网IP,如果出现这玩意说明安装启动成功
systemctl status httpd #查看Apache的状态,正常应该是 active (running)
systemctl stop httpd #关闭Apache
systemctl restart httpd #重启Apache
apachectl -v #查看版本
apachectl -l #查看编译中就加载的模块
apachectl -t -D DUMP_MODULES #直接列出全部加载的模块
Centos 8.1默认的yum安装的是php7 而不是centos7 默认的 php5
yum -y install php
# 安装php-pdo-mysql的插件,不安装的话php是没有驱动操作数据库的
yum -y install php-pdo
yum -y install php-pdo_mysql
这里安装pdo、mysql驱动真的恶心。一大堆帖子将什么配置文件,浪费了我一天的时间-.- /(ㄒoㄒ)/~~
php -v
正常应该是这样子的
PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# 进入Apache的默认网站目录
cd /var/www/html
#建立主页文件
vim index.php
#按键盘的i进入写入模式,写入主页内容如下
<?php
phpinfo();
?>
#按两次Esc后输入:wc保存退出
#重启apache服务
systemctl restart httpd
然后在浏览器地址栏输入公网IP,出现这个页面则表示PHP和Apache正常工作
Centos默认支持的是MariaDB,作为mysql的替代品
yum install -y mariadb-server
#设置开机自启动
systemctl enable mariadb
#开启
systemctl start mariadb
mysql_secure_installation
1.回车后会要你输入数据库超级管理员root的密码,默认为空,回车即可
2.设置密码 回车
3.确认新密码 输入新密码
回车
4.确认新密码 再次输入新密码
回车
5.删除测试账户 回车
6.拒绝root远程登录 回车
7.删除测试数据库 回车
8.重启服务 回车
mysql -u root -p
回车后输入密码(暗文不显示密码),输对了就会进入mysql,输错了重新输入mysql -r root -p 继续尝试
成功登录之后是这个样子的
这里用建立一个远程root账户(密码为*-123456789*-)为例子
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is xx
Server version: 10.3.17-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
MariaDB [(none)]> grant all on *.* to root@'%' IDENTIFIED BY '*-123456789*-' with GRANT OPTION;
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> \q
Bye
输入\q回车即可退出mysql
由于MariaDB默认字符编码为latin1 ,如果使用默认编码的话会出现中文乱码问题.
首先查看默认字符编码,然后把不是utf8的修改为utf8
//查看当前编码
MariaDB [mysql]> show variables like 'character_set%';show variables like "%collation%";
+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mariadb/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.001 sec)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.001 sec)
(filesystem的编码不要改)我这里显示两个为latin1的,下面修改为utf8
[root@ecs ~]# vim /etc/my.cnf.d
-----
./
auth_gssapi.cnf
client.cnf
enable_encryption.preset
mariadb-server.cnf
mysql-clients.cnf
在client.cnf一行回车进入该区,在[client]下面按i建切入到输入模式加入一行 default-character-set=utf8
,如下图
[client]
default-character-set=utf8
#This group is not read by mysql client library,
-----
输入完之后按Esc,输入:wq
保存退出
然后编辑mariadb-server.cnf,在[mysqld]下面按i建切入到输入模式加入一行 character-set-server = utf8
,如下图
[root@ecs ~]# vim /etc/my.cnf.d
----
mariadb-server.cnf //在这里回车
--------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
character-set-server = utf8
输入完之后按Esc,输入:wq
保存退出
随后重启数据库即可
[root@ecs ~]# systemctl restart mariadb