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.