centos7.9安装PHP运行环境

MySQL安装

报错:源 "MySQL 8.0 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。

解决:

yum install mysql-server -y --nogpgcheck

查询初始密码

grep 'temporary password' /var/log/mysqld.log

PHP及sqlsrv扩展安装

微软官方

Linux and macOS Installation for the Drivers for PHP - PHP drivers for SQL Server | Microsoft Learn

其他教程参考:

php7.3 centos7.9安装sqlserver扩展_centos php sqlserver-CSDN博客

这个教程可能会报错:undefined symbol: php_pdo_register_driver in Unknown on line 0

解决方案是  将pdo_sqlsrv放到 pdo.ini中去

vi /etc/php.d/20-pdo.ini

# 末尾增加一行
extension=pdo_sqlsrv

sqlsrv正常添加到 /etc/php.ini 中即可。

vi /etc/php.ini

# 找到有  extension=XXXXXX.so 的地方 添加即可
extension=sqlsrv.so

ODBC18安装

Install the Microsoft ODBC driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#RHEL 7 and Oracle Linux 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install -y msodbcsql18
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install -y unixODBC-devel

SSL连接报错

解决方案:跳过SSL校验

$DB_SQLSERVER = array(
    'db_type'  => 'sqlsrv',
	'db_user'  => 'xxxx',
	'db_pwd'   => "xxxx",
	'db_host'  => 'xxxxxxx',
	'db_port'  => '1433',
	'db_name'  => 'xxxxx',
	'db_charset' => 'UTF8',
	'db_params'  => array('PDO::ATTR_CASE' => 'PDO::CASE_UPPER'),

	// 解决报错:[08001] [Microsoft][ODBC Driver 18 for SQL Server]SSL 提供程序: 证书链是由不受信任的颁发机构颁发的
	'db_dsn' => 'sqlsrv:Database=数据库名称;Server=IP,端口号;TrustServerCertificate=true',
);

$sql = "";
$result = M(null,null,$DB_SQLSERVER)->query($sql);

Nginx连接PHP

Nginx安装就不说了。这里记录下遇到的问题:浏览器请求始终返回 File not found.

查询nginx日志error.log:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.188.1, server: localhost, request: "GET /index.php/Wap/Test/test HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.188.130"

排除以下原因后,依然报错。

进一步验证,直接在 nginx配置的root目录下 创建静态文件 test.txt,赋予(chmod 777)权限,依然一样。说明是nginx本身问题。(我之前一直以为是php-fpm问题)

同时 nginx安装的默认首页又是能访问的。改成自己的项目地址,就不对了。

文件确认存在,路径配置正确,赋予所有用户及用户组可以访问权限,最后还是访问不到。说明就是文件权限问题了。

解决方案:关闭 selinux 即可。它的作用简单说就是:增强型访问控制,限制到最小访问权限。

# 临时关闭,重启系统后还会开启
setenforce 0


# 永久关闭:输入命令
vi /etc/selinux/config

# 设置值为disabled即可。重启生效。
SELINUX=disabled
  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值