银河麒麟(申威架构sw_64)安装nginx+php+mysql笔记记录

写在前面的注意事项:

  • sw_64(申威架构CPU)银河麒麟系统仅提供了一个Packages:https://update.cs2c.com.cn/NS/V10/V10SP1/os/adv/lic/base/sw_64/Packages/
    所以不用各种在去搜索别的没有用的了,官方给出的就是兼容好的最新Packages了。
  • 能使用官方包的一定要使用官方的包,不用自我发挥的要去浪费时间
  • nginx麒麟官方给的是nginx1.16 够用了
  • mysql麒麟官方在申威(sw_64)下给提供的是mysql8.0 够用了
  • php麒麟官方在申威(sw_64)下给提供的是7.2.10 ,对于PHP项目来说这个版本明显还是差点,但是没有办法只能让程序去适配,不要幻想的去源码包编译之类的(或许可能有大佬能行)
  • 如果麒麟系统安装不完整的话,像yum、dnf这些命令完全使用不起来,如果yum search 包名 ,明显可以搜出来,但是无法使用yum install 包名 直接重新安装麒麟系统就行了,不用各种修补了。
  • 【重要】注意只要动了配置文件就去重启一下相应的服务,尤其是mysqld.service、nginx.service、php-fpm.service

随手常用的一些命令:

  • 防火墙的
# 安装防火墙
    yum install firewalld
# 防火墙状态
    systemctl status firewalld

# 启动防火墙
    systemctl enable firewalld.service
    systemctl start firewalld.service

# 停止防火墙
    systemctl stop firewalld
    systemctl disable firewalld
  • 端口占用情况
# 查看所有端口占用情况
    netstat -tuln
# 查看指定端口
    netstat -tuln | grep 端口号

# -tuln说明
    -t 表示显示TCP端口
    -u 表示显示UDP端口
    -l 表示显示监听状态的端口
    -n 表示直接使用数字形式显示地址和端口号
  • mysql8.0 远程访问
问题: Navicat Premium 12远程无法连接麒麟系统 mysql8.0 :
解决:按如下步骤逐一排查校验
    - 1、关闭本机windows的防火墙
    - 2、ping一下麒麟服务器的IP地址是否畅通
    - 3、关闭麒麟服务器的防火墙,或者将麒麟服务器的3306端口释放出来
    - 4、查看3306端口是否ping通。打开cmd运行窗口,输入命令“telnet ip地址 3306”
    - 5、检查麒麟服务器上的3306端口状态,使用命令 netstat -anp| grep 3306
        如果显示mysql 3306前面的ip不是0.0.0.0,则需要修改掉;
        修改/etc/mysql/mysql.conf.d/mysqld.cnf
        将 bind-address = 127.0.0.1 改为 bind-address = 0.0.0.0
    - 6、开启mysql远程访问权限,允许远程连接
        麒麟系统上登入mysql,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将"localhost"改为"%  
        mysql -u root -p(输入root密码)
        USE mysql;
        update user set Host = '%'  where  User = 'root';
        更改完毕后使用命令 “flush privilege”更新权限
            FLUSH PRIVILEGES;
    - 7、Navicat连接mysql8.0:提示无法加载身份验证插件“caching_sha2_password”
        参考文档:https://blog.csdn.net/annita2019/article/details/132736944
  • phpMyAdmin4.8.5 无法运行
问题: 部署完phpmyadmin,访问主页报错:
     Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.
解决:找到php.inc文件修改如下参数
    session.save_path = "var/lib/php/session"

问题: 部署完phpmyadmin,root无法免密登录,如下修改:
1、phpmyadmin 根目录下的文件config.sample.inc.php
    $cfg['Servers'][$i]['AllowNoPassword'] = true;(将false改成true),如果还是无法登录,就直接使用mysql的命令去给root设置个密码吧,别折腾了。
2、使用mysql命令给root设置密码
    - 登录到MySQL:mysql -u root
    - 选择MySQL数据库:USE mysql;
    - 更新root用户的密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    - 刷新权限:FLUSH PRIVILEGES;
  • 变更项目的PHP版本为7.2.10
问题: 修改本地windows电脑的Composer PHP版本为7.2.10,并开启PHP中的相应扩展如curl、openssl等等:
解决:修改系统的环境变量为php7.2.10,使用php -v查看,如果版本还没有切换过来,就直接重启电脑
        PHP 7.2.10 (cli) (built: Sep 13 2018 00:47:25) ( NTS MSVC15 (Visual C++ 2017) x64 )
        Copyright (c) 1997-2018 The PHP Group
        Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

问题: PHP版本要求不一致:
     Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0". You are running 7.2.33. in /www/wwwroot/web/vendor/composer/platform_check.php on line 24
解决:删除项目内vendor,使用如下命令进行忽略平台的安装
    composer install --ignore-platform-reqs

问题: 删除或者更换依赖包不兼容PHP7.2.10的:
解决:直接删除
        composer remove 包名  --ignore-platform-reqs
  • PHP 调试模式报错的处理
问题: Undefined variable错误:
解决:一般情况下php是不需要定义变量的,但如果服务器什么都报错的,就会出现错误。
        修改php.ini的配置
        在 error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting = E_ALL & ~E_NOTICE。
        在register_globals设置: 找到register_globals = Off; 修改为register_globals = On; Notice: Undefined variable: email in D:\PHP7\ENOTE\ADDNOTE.PHP on line 9 。
        如果什么错误都不想让显示,直接修改: display_errors = Off  如果你没有php.ini的修改权限,可在php头部加入 ini_set("error_reporting","E_ALL & ~E_NOTICE"); 即可。
发表评论 / Comment

用心评论~