本文环境 Windows10,Ubuntu 20.04,Nginx1.8,PHP 7.3,Mysql8.0,Redis5.0\著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。
本文是Windows10下的Ubuntu下已实践,放心使用,不懂联系我
一、Ubuntu 20.04 SSH配置
先用命令查看ubuntu 是否安装ssh-server
ps -e|grep ssh如果没有显示sshd,说明未安装ssh-server
安装ssh-server
sudo apt-get install openssh-server启动ssh-server
/etc/init.d/ssh start二、安装Nginx
先更新资源列表
sudo apt-get update下面开始安装
sudo apt-get install nginx查看nginx版本
nginx -v输出:
nginx version: nginx/1.18.0 (Ubuntu)补充说明:
Nginx 网站目录是 /var/www/html\将项目代码放在这个文件夹下(类似apache/htdocs)\Nginx 网站配置文件位置是 /etc/nginx/sites-available/default
启动Nginx服务
sudo service nginx start 启动 sudo service nginx status 启动状态 sudo service nginx enable 开机自动启动 sudo service nginx disable 禁止开机自动启动 sudo service nginx stop 停止 sudo service nginx restart 重启用命令查看状态
sudo lsof -i:80也可以在虚拟机上的浏览器输入127.0.0.1可以看见Nginx页面\输入 ifconfig 查看ip 在虚拟机外访问也能看到
二、安装PHP7.3 和 PHP扩展
安装命令
sudo apt-add-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.3 php7.3-fpm如果提示:
add-apt-repository: command not found则运行下面命令即可:
sudo apt-get install software-properties-common python-software-properties查看php版本
php -v输出:
owenunix@DESKTOP-CC1MK5I:~$ php -v PHP 7.3.33-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Nov 19 2021 06:25:05) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.33-1+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies三、配置Nginx和PHP-FPM
PHP-FPM 与 Nginx 通信方式有两种:\一种是基于TCP的 Internet domain socket 方式,\一种是 UNIX domain socket 方式。\UNIX domain socket 可以使同一台操作系统上的两个或多个进程进行数据通信。\UNIX domain socket 的接口和 Internet domain socket 很像,但它不使用网络底层协议来通信。
服务器压力不大的情况下,这两种方式性能差别不大,但在压力比较满的时候,用UNIX domain socket方式,效果确实比较好。
先配置Nginx
cd /etc/nginx/sites-available sudo cp default default.bak sudo vim /etc/nginx/sites-available/default修改文件中的注释和7.4改成7.3和路径,如下图所示
php7.3-fpm启动失败
注意:我们安装的是php7.3,但nginx里缺省值是php7.4-fpm.sock.如果它们不一致,则不能解析php页面,nginx 出现502 bad gateway 错误提示,nginx log日志出现错误
sudo cat /var/log/nginx/access.log 192.168.10.85 - - [07/Jan/2022:11:08:24 +0800] "GET /test.php HTTP/1.1" 502 568 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62"接着查看PHP-FPM php.ini文件
sudo cat /etc/php/7.3/fpm/pool.d/www.conf最后分别启动Nginx和PHP-FPM
sudo /etc/init.d/nginx restart sudo /etc/init.d/php7.3-fpm start sudo /etc/init.d/php7.3-fpm restart测试一下:
进入 /var/www/html 目录下 创建文件test.php
cd /var/www/html sudo vim test.php <?php phpinfo(); ?>保存后退出在浏览器中访问 127.0.0.1/test.php或者在虚拟机外访问 http://192.168.10.85/test.php (192.168.10.85 为虚拟机ip,输入 ifconfig 查看ip)
四、安装MySQL8.0
命令
sudo apt-get install mysql-server mysql-client查看Mysql版本
owenunix@DESKTOP-CC1MK5I:/var/www/html$ mysql -V mysql Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))启动Mysql服务
如果有安装别的版本,需要先停止别的版本服务,再重启该8.0版本服务
sudo service mysql start 启动 sudo service mysql status 启动状态 sudo service mysql enable 开机自动启动 sudo service mysql disable 禁止开机自动启动 sudo service mysql stop 停止 sudo service mysql restart 重启启动Mysql失败问题解决
owenunix@DESKTOP-CC1MK5I:/var/www/html$ sudo service mysql status * MySQL is stopped. owenunix@DESKTOP-CC1MK5I:/var/www/html$ sudo service mysql restart * Stopping MySQL database server mysqld [ OK ] * Starting MySQL database server mysqld su: warning: cannot change directory to /nonexistent: No such file or directory [fail]su: warning: cannot change directory to /nonexistent: No such file or directory
解决办法如下:
sudo service mysql stop sudo usermod -d /var/lib/mysql/ mysql sudo service mysql start sudo service mysql restart运行命令来测试mysql是否能成功运行。
mysql -uroot -p您的密码首次安装密码应该是空的
修改root密码123456
//开启无密码登录skip-grant-tables sudo service mysql stop sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf skip-grant-tables sudo service mysql restart //设置登录密码123456 mysql -uroot -p use mysql; flush privileges; update mysql.user set authentication_string='', plugin='mysql_native_password' where user='root'; alter user 'root'@'localhost' identified by 'root'; set password for root@localhost = '123456'; flush privileges; quit; sudo service mysql restart //注释无密码skip-grant-tables sudo service mysql stop sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf #skip-grant-tables sudo service mysql restart修改外网可以连接Mysql
sudo service mysql stop sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 注销掉 #bind-address = 127.0.0.1 sudo service mysql restart查看mysql日志
sudo cat /var/log/mysql/error.log##1130 host is not allowed to connect to this mysql server
五、安装PHPmysql 扩展用来连接数据库
命令
sudo apt-get install php7.3-mysql写个程序测试一下,在刚才写的test.php后面加上一段数据库连接代码(可以用mysqli或者PDO但是不要用mysql,因为PHP7不支持mysql)
Mysql的PHP扩展测试
cd /var/www/html sudo vim test.php <?php echo "Mysql连接测试: \n"; $mysql = new mysqli('127.0.0.1', 'root', '123456'); if ($mysql->connect_error) { echo "连接Mysql失败: " . $mysql->connect_error ; }else{ echo "连接Mysql成功"; } ?>六、安装Redis5.0
命令
sudo apt-get update sudo apt-get install redis-server查看Redis版本
owenunix@DESKTOP-CC1MK5I:~$ redis-server -v Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923启动Redis服务器
redis-server启动Redis客户端
Redis 服务器已启动,因此您可以启动 redis 客户端以在它们之间进行通信。
redis-cli