跳转至

Ubuntu20 04安装LAMP和phpmyadmin

ubuntu20.04安装LAMP

参考链接

0.更换软件源(仅国内主机需要更换)

vim /etc/apt/sources.list

#阿里云镜像源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

中科大镜像源

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

1.更新软件

sudo apt-get update
sudo apt-get upgrade

2.安装Apache

sudo apt install apache2 -y

systemctl status apache2 #查看Apache运行状态,如果设置了域名解析到这个IP,此时应该可以正常通过域名访问,看到Apache首页。或者是127.0.0.1访问本地主页也是一样。 Apache服务器操作命令 apache2 start apache2 stop

3.安装Mysql 5.7

sudo apt install mysql-server mysql-client

测试mysql是否正常安装 mysql如果进入mysql>说明正常

4.安装PHP

sudo apt-get install php

php -v测试,如果出现版本信息说明正常。

4.1 关联Apache2和php

sudo apt-get install libapache2-mod-php

4.2 关联mysql和php

sudo apt-get install php-mysql

4.3 修改Apache的配置文件的第一行

vim /etc/apache2/mod-available/php7.4.conf

把第一行从 <FilesMatch ".+.ph(ar|p|tml)$">修改为 <FilesMatch ".+.(ph(ar|p|tml)|html|htm)$"> 注意,原博主,此处少写了一个右括号。 重启Apache2

sudo /etc/init.d/apache2 restart

5.访问测试页面

127.0.0.1 #应该是Apache2的页面 127.0.1.1/test.html #应该是PHP的页面 127.0.0.1/test.php #应该是PHP的页面


上述已经完成LAMP的安装、配置工作。后续内容属于优化、管理维护。

6.添加服务器swap空间(虚拟内存)

因本服务器内存较小512M,故增大虚拟内存(SWAP)1G. free -m查看现有内存大小

cd /var/
#此处的count=1048576=1024*1024M,如果想增大SWAP到512M,此处count=524288
dd if=/dev/zero of =swapfile bs=1024 count=1048576
##创建文件/激活
/sbin/mkswap swapfile
/sbin/swapon swapfile
##添加到启动项
echo `/var/swapfile swap swap defaults 0 0` >>/etc/fstab
##重启服务器,查看内存已经生效。

7.mysql命令

创建用户root,密码为你的密码

mysql -u root -p
CREATE USER 'root' @'localhost' INENTIFIED BY '你的密码';
CREATE USER 'root' @'%' IDENTIFIED BY '你的密码';


8.安装phpmyadmin

sudo apt install phpmyadmin

选择服务器apache2,一直下一步即可。最后一步是配置,mysql登录密码。

8.1 登录phpadmin页面

访问127.0.0.1/phpmyadmin/无法打开。修复方法:

echo `Include /etc/phpmyadmin/apache.conf` >>/etc/apache2/apache2.conf
sudo systemctl restart apache2 #重启Apache2

以下mysql的报错解决方案,都是基于MYSQL 8.0版本,网上一堆答案都是5.6版本的,不同版本的命令不一样。 此时可以正常访问网页的phpmyadmin,但是无法登录。登录报错,1698错误。

8.2 1698错误修复

原因是root用户的插件和预期的不一致,新建一个用户,并赋予完全权限即可。

sudo mysql -u root
mysql>
create user chm@localhost identified by 'yourpassword';
grant all privileges on *.* to chm@localhost with grant option;

刷新权限并退出:
flush privileges;
exit;

8.3 mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法

1449错误都是没有权限,添加权限,刷新即可

mysql -u root -p
CREATE USER 'root'@'%' IDENTIFIED BY '****密码****'; 
GRANT ALL ON *.* TO 'root'@'%'; 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '****密码****';
use mysql;
flush privileges;
select host, user from user;

查看用户是否同时有%和local,缺少某一个都会报错1449.

回到页面顶部