- APT库">在安装前先更新APT库
- 一、安装Apache2">一、安装Apache2
- 四、安装phpmyadmin">四、安装phpmyadmin
- mysql -u root -p
- 五、安装其他模块">五、安装其他模块
- 卸载软件
- (警告)卸载所有自动安装且不再使用的软件包
- 卸载并清除软件包的配置
- (警告)卸载、清除配置、卸载所有自动安装且不再使用的软件包
在安装前先更新APT库
update更新软件列表1| sudo apt-get update
upgrade更新软件2| sudo apt-get upgrade
一、安装Apache2
sudo apt-get install apache2 测试Apache2 在地址栏输入以下地址,出现如图所示照片,则表明安装成功重启apache2服务
sudo /etc/init.d/apache2 restart ‘restart’->’stop’关闭服务; ‘restart’->’start’启动服务 设置apache2状态: service apache2 status/start/stop/restart Web目录: /var/www 安装目录: /etc/apache2/ 全局配置: /etc/apache2/apache2.conf 监听端口: /etc/apache2/ports.conf 虚拟主机: /etc/apache2/sites-enabled/000-default.conf ## 二、安装最新版PHP sudo apt-get install php ## 三、安装Mysql 输入以下命令安装,安装过程会让你填写mysql的用户名和密码 sudo apt-get install mysql-server sudo apt-get install mysql-client 上边安装完后,会让你设置root密码,输入后按enter键,并再次确认 MySQL8.0采用了新的加密方式,与Ubuntu18.04有兼容问题; 故选择下面的旧版本5.x的加密方式 停止mysql服务sudo /etc/init.d/mysql stop
我们需要用 sudo cat /etc/mysql/debian.cnf 来查找默认用户名密码登录输入用户名与密码,看是否安装成功
登录mysql数据库可以通过如下命令: mysql -u root -p -u 表示选择登陆的用户名, -p 表示登陆的用户密码,现在是mysql数据库是没有密码的,Enter password:处直接回车,就能够进入mysql数据库。 然后通过 show databases; 就可以查看当前的所有数据库。 停止mysql服务sudo /etc/init.d/mysql stop
启动mysql服务 sudo service mysql start 重启mysql服务 sudo service mysql restart 查看MySQL服务状态sudo service mysql status
ubuntu 20.04 中mysql-8.0.20,的卸载与安装
停止mysql进程sudo /etc/init.d/mysql stop
卸载:
sudo apt-get remove —purge mysql* sudo apt-get autoremove mysql* —purge sudo apt-get remove apparmor sudo rm /var/lib/mysql/ -R //非常重要 sudo rm /etc/mysql/ -R //非常重要 重启电脑,再次利用命令 sudo apt-get install mysql-server 顺利安装成功! 如果卸载报错:E: Sub-process /usr/bin/dpkg returned an error code (1) mysql-server-8.0
sudo fuser -v /var/cache/debconf/config.dat
sudo kill -9 90210
sudo fuser -v -k /var/cache/debconf/config.dat
最后再次执行卸载命令
sudo apt-get remove —purge mysql*清除残留数据:dpkg -l|grep ^rc|awk ‘{print$2}’|sudo xargs dpkg -P
查看剩余依赖
dpkg —list|grep mysql
继续删除剩余依赖项,
比如:sudo apt-get autoremove —purge mysql-apt-config
使用命令查看有哪些mysql在运行,并杀死他们。
ps -ef | grep mysql
再,更新系统
sudo apt-get update
然后,修复安装错误,会提示输入mysql用户名密码
sudo apt-get —fix-broken install
然后,检索mysql安装包,并删除检索出的依赖包,然后是删除/var/lib/mysql,最后重装mysql。
四、安装phpmyadmin
安装过程中选择apache2,下一步选择是要配置数据库,并输入密码。 sudo apt-get install phpmyadmin 测试phpmyadmin 执行以下命令 sudo ln -s /usr/share/phpmyadmin /var/www 然后地址栏输入以下地址,出现登陆界面则表明成功,如图http://8.142.87.125/phpmyadmin
Include /etc/phpmyadmin/apache.conf
mysql8.0.1修改mysqlroot密码
安装完 最新版的 mysql8.0.1后忘记了密码,重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql- vim /etc/mysql/mysql.cnf
- skip-grant-tables
- mysql //或者
- mysql -u root -p //password直接回车
select host, user, authentication_string, plugin from user;
host: 允许用户登录的ip‘位置’%表示可以远程; user:当前数据库的用户名; authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数; plugin: 密码加密方式;use mysql;
update user set authentication_string=’’ where user=’root’; 3.3 退出mysql, 删除/etc/my.cnf文件最后的 skip-grant-tables 重庆mysql服务; 3.4 使用root用户进行登录,因为上面设置了authentication_string为空,所以可以免密码登录;- mysql -u root -p
- passwrod:直接回车;
- ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘Mys862394’;
- update user set password = password(‘new-password’) where user = ‘root’ ;
- or
- update user set authentication_string= password(‘new-password’) where user = ‘root’ ;

- use mysql;
- update user set authentication_string=”Mys862394” where user=”root”;
Ubuntu 下修改mysqlroot密码
重新启动MySQL
sudo /etc/init.d/mysql restart
1、安全模式登入MySQL a、停止mysql进程sudo /etc/init.d/mysql stop
/usr/bin/mysqld_safe —skip-grant-tables —skip-networking &
sudo /usr/bin/mysqld_safe —skip-grant-tables —skip-networking &
g、打开一个新窗口,登录进入mysql
update user set authentication_string=PASSWORD(“Mys862394”) where User
=’root’;
flush privileges;
mysql配置root账号远程访问
配置mysql的root用户访问权限
命令行登录 mysql,输入用户名,密码
mysql -u root -p
2.切换到 mysql库
use mysql;
3.查看用户表,可以看到当前host是localhost,只允许本地访问
select host, user, authentication_string, plugin from user;
select host,user from user;
+—————-+—————————+
| host | user |
+—————-+—————————+
| localhost | root |
+—————-+—————————+
1 rows in set (0.00 sec)
4.更新user用户表
update user set host
= ‘localhost’ where user
= ‘root’ LIMIT 1;
update user set host
= ‘%’ where user
= ‘root’ LIMIT 1;
5.分配所有访问权限,如果已分配过,该步骤可跳过
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root密码’ WITH GRANT OPTION;
6.强制刷新权限
flush privileges;
7.再次查看用户表,root用户的host变成%,即允许所有的ip远程访问,如果需要指定具体的ip,就写上具体的ip即可
select host,user from user;
+—————-+—————————+
| Host | User |
+—————-+—————————+
| % | root |
+—————-+—————————+
1 rows in set (0.00 sec)
修改mysql配置文件 /etc/mysql/my.cnf
1.查看端口监听状态如下所示,绑定了127.0.0.1,只允许本地访问,需要修改配置文件:
netstat -nltp|grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
2.修改my.cnf,注释掉bind-address 127.0.0.1属性,修改后如下图所示
注释掉bind-address
3.重启mysql服务
service mysql restart
再次使用命令netstat -an|grep 3306查看端口监听状态
netstat -nltp|grep mysql
tcp 0 0 127.0.0.1:55074 127.0.0.1:3306 TIME_WAIT
tcp6 0 0 :::3306 :::* LISTEN
配置阿里云安全组规则
登录阿里云进入控制台,依次访问网络和安全->安全组->配置规则,在入方向上开放MySQL监听端口3306即可
MySQL配置文件my.cnf的理解
配置防火墙
开放3306端口:ufw allow 3306开启防火墙:ufw enable 关闭防火墙:ufw disable
查看防火墙状态:ufw status
五、安装其他模块
sudo apt-get install libapache2-mod-php
sudo apt-get install libapache2-mod-auth-mysql sudo apt-get install php-mysqlnd sudo apt-get install php-gd sudo apt-get install php-json sudo apt-get install php-curlsudo apt-get install php-gmp
sudo apt-get install php-opcache
sudo apt-get install php-readline
sudo apt-get install php-sqlite3
sudo apt-get install php-tidy
sudo apt-get install php-xml
sudo apt-get install php-bcmath
sudo apt-get install php-posixsudo apt-get install php-bz2
sudo apt-get install php-intl
sudo apt-get install php-mbstring
sudo apt-get install php-soap
sudo apt-get install php-xsl
sudo apt-get install php-zip
sudo apt-get install php-dev
sudo apt-get install libevent-dev安装swoole
sudo pecl install swoole 配置 PHP.ini php -i |grep php.ini(查看php.ini位置)extension=swoole.so(写入php.ini文件中) 卸载swoole sudo pecl uninstall swoole php -m 会列出命令行 PHP CLI 已经安装的扩展,结果类似如下 php —ini查找php.ini文件位置
安装pcntl 与 posix 两个扩展实现的 PHP 多进程
composer require fingerqin/phpthread 1.0 卸载composer 警告:建议只执行第一条卸载命令,以免影响到其他,导致不可预料的崩溃sudo apt-get remove composer
purge : 卸载并清除软件包的配置
卸载软件
sudo apt-get remove composer
(警告)卸载所有自动安装且不再使用的软件包
sudo apt-get remove —auto-remove composer
卸载并清除软件包的配置
sudo apt-get purge composer
(警告)卸载、清除配置、卸载所有自动安装且不再使用的软件包
sudo apt-get purge —auto-remove composer
六、重启服务
service apache2 restart
service mysql restart
vim /var/www/html/phpinfo.php
文件代码为:
<?php echo phpinfo();?>
查看本机php版本,运行 php -v七、修改/var/www/html 权限
sudo chmod 777 /var/www/html ## 八、ubuntu安装swoole ### [Swoole] 在Ubuntu下安装、快速开始 ### 安装 Swoole 卸载swoole pecl uninstall swoole九:Ubuntu查看端口使用情况
telnet是一个用于测试远程主机是否可连接的命令行工具telnet 127.0.0.1 9000
telnet 8.142.87.125 9000
标准退出telnet
关于telnet退出,还有一个最标准的退出方法是。ctrl+] 组合键,可以退出到telnet命令行 接着然后采用quit退出telnet 的测试使用netstat命令:
查看哪些端口是开放的,分别是什么进程在监听 sudo netstat -nultp sudo netstat -tlpn 查看已经连接的服务端口(ESTABLISHED) netstat -a 查看所有的服务端口(LISTEN,ESTABLISHED) netstat -ap 查看指定端口,可以结合grep命令: netstat -ap | grep 8080 也可以使用lsof命令: lsof -i:8888 若要关闭使用这个端口的程序,使用kill + 对应的pid kill -9 PID号ps:kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。
netstat -an
配置防火墙
开放3306端口:ufw allow 3306开启防火墙:ufw enable
查看防火墙状态:ufw status 关闭防火墙:sudo ufw disable
stop关闭后再用disable(有效)
systemctl stop ufw sudo ufw disable网络信息 netstat命令详解
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义
执行netstat后,其输出结果为 Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 2 210.34.6.89:telnet 210.34.6.96:2873 ESTABLISHED
tcp 296 0 210.34.6.89:1165 210.34.6.84:netbios-ssn ESTABLISHED
tcp 0 0 localhost.localdom:9001 localhost.localdom:1162 ESTABLISHED
tcp 0 0 localhost.localdom:1162 localhost.localdom:9001 ESTABLISHED
tcp 0 80 210.34.6.89:1161 210.34.6.10:netbios-ssn CLOSE
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 16178 @000000dd
unix 1 [ ] STREAM CONNECTED 16176 @000000dc
unix 9 [ ] DGRAM 5292 /dev/log
unix 1 [ ] STREAM CONNECTED 16182 @000000df
从整体上看,netstat的输出结果可以分为两个部分: 一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。 另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
常见参数
-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态 -p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。 提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
查看所有的进程和端口使用情况
使用命令:netstat –apn
十:Ubuntu中Apache运行php-fpm
一、安装并创建相应软连接
- root@linux:~# apt install apache2 php-fpm
- root@linux:~# cd /etc/apache2/conf-enabled/
- root@linux:/etc/apache2/conf-enabled# ln -sv ../conf-available/php7.2-fpm.conf .
- ‘./php7.2-fpm.conf’ -> ‘../conf-available/php7.2-fpm.conf’
- root@linux:/etc/apache2/conf-enabled# a2enmod proxy_fcgi
- Considering dependency proxy for proxy_fcgi:
- Enabling module proxy.
- Enabling module proxy_fcgi.
- To activate the new configuration, you need to run:
- systemctl restart apache2
- root@linux:/etc/apache2/conf-enabled# systemctl restart apache2
- root@linux:/etc/apache2/conf-enabled#
二、Ubuntu Apache 配置注意事项
php-fpm 需要apache 支持proxy_fcgi模块
apache2 启用模块使用 a2enmod 来启动。
apache2 查看当前工作模式
root@linux:/etc/apache2/conf-enabled# a2query -M prefork
root@linux:/etc/apache2/conf-enabled#
Apache 命令的用法 en是打开,dis是关闭
管理conf 文件
a2disconf
a2enconf
管理mod
a2dismod
a2enmod
管理站点
a2dissite
a2ensite
范例,启用关闭proxy_fcgi模块
root@linux:/etc/apache2/conf-enabled# a2dismod proxy_fcgi
root@linux:/etc/apache2/conf-enabled# a2enmod proxy_fcgi
请注意:如果您安装了PHP 7 apache模块(mod_php),可能会发生这种情况,例如,当您开始使用ISP的LAMP服务器设置,而不是像本教程中那样使用空的服务器时,则可能需要禁用mod_php,如下所示。
a2dismod php7.0
并重新启动apache:
systemctl restart apache2.service
范例,启用关闭php文件(其实就是做了软连接,把conf-available里的文件链接到enabled)
root@linux:/etc/apache2/conf-enabled# a2enconf php7.2-fpm
Enabling conf php7.2-fpm.
To activate the new configuration, you need to run:
systemctl reload apache2
root@linux:/etc/apache2/conf-enabled# ll
total 8
drwxr-xr-x 2 root root 4096 Jan 12 08:48 ./
drwxr-xr-x 8 root root 4096 Jan 12 08:21 ../
lrwxrwxrwx 1 root root 30 Jan 8 12:52 charset.conf -> ../conf-available/charset.conf
lrwxrwxrwx 1 root root 44 Jan 8 12:52 localized-error-pages.conf -> ../conf-available/localized-error-pages.conf
lrwxrwxrwx 1 root root 46 Jan 8 12:52 other-vhosts-access-log.conf -> ../conf-available/other-vhosts-access-log.conf
lrwxrwxrwx 1 root root 33 Jan 12 08:48 php7.2-fpm.conf -> ../conf-available/php7.2-fpm.conf
lrwxrwxrwx 1 root root 31 Jan 8 12:52 security.conf -> ../conf-available/security.conf
lrwxrwxrwx 1 root root 36 Jan 8 12:52 serve-cgi-bin.conf -> ../conf-available/serve-cgi-bin.conf
root@linux:/etc/apache2/conf-enabled#
root@linux:/etc/apache2/conf-enabled# a2disconf php7.2-fpm
Conf php7.2-fpm disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
root@linux:/etc/apache2/conf-enabled# ll
total 8
drwxr-xr-x 2 root root 4096 Jan 12 08:53 ./
drwxr-xr-x 8 root root 4096 Jan 12 08:21 ../
lrwxrwxrwx 1 root root 30 Jan 8 12:52 charset.conf -> ../conf-available/charset.conf
lrwxrwxrwx 1 root root 44 Jan 8 12:52 localized-error-pages.conf -> ../conf-available/localized-error-pages.conf
lrwxrwxrwx 1 root root 46 Jan 8 12:52 other-vhosts-access-log.conf -> ../conf-available/other-vhosts-access-log.conf
lrwxrwxrwx 1 root root 31 Jan 8 12:52 security.conf -> ../conf-available/security.conf
lrwxrwxrwx 1 root root 36 Jan 8 12:52 serve-cgi-bin.conf -> ../conf-available/serve-cgi-bin.conf
root@linux:/etc/apache2/conf-enabled#