一、基于Linux安装php8
首先登录ubuntu系统后运行命令:sudo apt update
更新完之后,安装我们需要的软件:
sudo apt install nginx
安装 mysql
。运行命令sudo apt install mysql-server
添加PHP的PPA(个人软件包存档),因为PHP 8.2可能还不在默认的存储库中:
运行命令:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
安装PHP 8.2及其常用的模块:
sudo apt install php8.2 php8.2-cli php8.2-common php8.2-fpm php8.2-opcache php8.2-mysql php8.2-mbstring php8.2-xml php8.2-gd php8.2-curl
二、Linux线上连接数据库问题
刚装完mysql
后navicat
连接数据库报错
SQLSTATE[HY000] [2002] Connection refused
修改MySQL配置文件sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
,注释掉bind-address
这一行,或者将其值设置为0.0.0.0
修改后保存文件并重启MySQL服务:
sudo systemctl restart mysql
后如果又报错
1130 - Host '110.87.110.15' is not allowed to connect to this MySQL server
这个错误表示客户端主机 110.87.110.15'
试图连接到MySQL
服务器,但是这个主机没有被授权访问服务器。这通常是因为MySQL
的用户权限设置导致的。
表示这个用户只能本地窗口连接,没有开放远程连接权限。
首先我们本地登录mysql
:
然后use mysql
进入到mysql
这个库:
查看user表中的数据:select Host, User from user;
可以看到都是localhost
本地连接,所以我们要改变用户可以远程连接的权限
update user set Host=‘%’ where User=‘debian-sys-maint’;
然后flush privileges;最后刷新一下
重新启动sudo service mysqld restart
这下重新去测试下:
可以看到已经连接上了。
三、关于线上nginx报错问题
如果nginx
刚配置完报错502
的话,那么运行命令:sudo cat /var/log/nginx/error.log
可以查看报错日志。
项目部署线上后出现mkdir(): Permission denied
,那么考虑由于一般情况自动生成的目录为 runtime
,那么开放runtime
权限给用户即可。那首先我们得知道有哪些用户。运行命令:ps aux|grep nginx
查看nginx用户:
运行命令:chown -R www-data(用户名) runtime(你的runtime路径)
然后在sudo service nginx restart
。
在学习的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。