GNU/Linux >> Znalost Linux >  >> Cent OS

Nainstalujte a nastavte php pro připojení k MsSQL Server Centos 8

Microsoft SQL Server je systém pro správu relačních databází vyvinutý společností Microsoft. Jako databázový server se jedná o softwarový produkt s primární funkcí ukládání a získávání dat podle požadavků jiných softwarových aplikací – které mohou běžet buď na stejném počítači, nebo na jiném počítači v síti.

Zkontrolujte také:

  • Jak spustit MsSQL Server 2019 pomocí Docker a Docker-Compose
  • Jak nainstalovat Ms SQL Server 2019 na Ubuntu 20.04

Předpoklady

  • Aktualizovaný server Centos 8
  • Kořenový přístup k serveru nebo uživateli s přístupem sudo

Obsah

  1. Instalace a nastavení php 7.4
  2. Instalace a nastavení serveru Ms Sql
  3. Nastavení ovladače php mssql
  4. Poskytování jednoduchého webu pomocí nginx

Než budete pokračovat, ujistěte se, že váš operační systém je aktuální.

sudo dnf -y update

1. Instalace a nastavení php

Výchozí úložiště Centos 8 obsahují starší verzi PHP. Remi poskytuje nejnovější repo pro php v derivátech Centos Linux a Red Hat Linux. Pojďme to nainstalovat.

Nejprve nainstalujte dnf-utils

sudo dnf install -y dnf-utils

Poté nainstalujte tento balíček, abyste umožnili vydání remi:

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Abyste zajistili, že nebude nainstalována žádná jiná verze php, resetujte modul php:

dnf module reset php -y

Nyní musíme povolit verzi php, kterou chceme nainstalovat. V této příručce budeme používat verzi 7.4, takže ji povolíme tímto příkazem:

dnf module enable -y php:remi-7.4

Ověřte, že je povoleno php 7.4:

# dnf module list php

Last metadata expiration check: 0:00:34 ago on Fri 10 Sep 2021 05:13:49 AM UTC.
CentOS Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language

Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 [e] common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Nyní, když je nainstalována požadovaná verze php, pojďme nainstalovat php a požadované balíčky:

dnf install -y \
    php \
    php-fpm \
    php-pdo \
    php-pear \
    php-devel

Po dokončení instalace použijte tento příkaz k potvrzení verze php:

# php -v

PHP 7.4.23 (cli) (built: Aug 24 2021 16:33:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.23, Copyright (c), by Zend Technologies

Instalace a nastavení serveru mssql

V této části nastavíme databázový server.

Balíček MS SQL není ve výchozím úložišti nalezen. Přidáme repo pomocí tohoto příkazu:

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo

Poté nainstalujte mssql pomocí tohoto příkazu:

sudo dnf install -y mssql-server

Dalším krokem je konfigurace služby, abychom ji mohli používat. Použijte tento příkaz a odpovězte na výzvy, abyste vytvořili výchozího uživatele (sa ) heslo:

sudo /opt/mssql/bin/mssql-conf setup

Výstup:

# sudo /opt/mssql/bin/mssql-conf setup

usermod: no changes
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.

Details about editions can be found at https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409

Use of PAID editions of this software requires separate licensing through a Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate number of licenses in place to install and run this software.

Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409

The privacy statement can be viewed at:

https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409

Do you accept the license terms? [Yes/No]:Yes
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...

ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.

Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /usr/lib/systemd/system/mssql-server.service.

Setup has completed successfully. SQL Server is now starting.

Spusťte a povolte server mssql

systemctl start mssql-server
systemctl enable mssql-server

systemctl status mssql-server

Měli byste vidět Active: active (running) když je vše správně nastaveno.

# systemctl status mssql-server

● mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-09-10 05:24:51 UTC; 1min 22s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 264891 (sqlservr)
Tasks: 136
Memory: 703.6M
CGroup: /system.slice/mssql-server.service
├─264891 /opt/mssql/bin/sqlservr
└─264918 /opt/mssql/bin/sqlservr

Sep 10 05:24:56 test-db-server sqlservr[264891]: [158B blob data]

3. Nastavení ovladače php mssql

Nyní, když je php a server mssql nainstalován a nastaven podle očekávání, musíme nakonfigurovat systém tak, aby věděl o ovladačích.

K tomu musíme přidat repozitáře mssql a nainstalovat některé závislosti:

curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo
sudo ACCEPT_EULA=Y dnf -y install msodbcsql17

# Install this for unixODBC development headers
sudo dnf -y install unixODBC-devel

Nainstalujte sqlcmd klient příkazového řádku

sudo dnf install -y mssql-tools

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

source ~/.bashrc

Vytvořit databázi

Vytvořme testovací databázi, ke které se připojíme.

Nejprve se přihlaste k serveru mssql pomocí tohoto:

sqlcmd -S localhost -U SA -P 'goK7GBU4Cp4UPYz'

Poté použijte toto k vytvoření databáze:

CREATE DATABASE TestDB
GO

Zkontrolujeme, že naše databáze byla vytvořena výpisem databází:

1> SELECT Name from sys.Databases
2> GO

Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
TestDB

(5 rows affected)
1>

Nastavení ovladače

Pojďme nainstalovat závislosti serveru SQL. pecl příkaz poskytuje php-pear

sudo pecl install sqlsrv
pecl install pdo_sqlsrv

Poté přidejte příponu do souboru ini

echo extension=pdo_sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/30-pdo_sqlsrv.ini
echo extension=sqlsrv.so >> `php --ini | grep "Scan for additional .ini files" | sed -e "s|.*:\s*||"`/20-sqlsrv.ini

Nakonec restartujte php-fpm:

systemctl restart php-fpm
systemctl status php-fpm

Výstup:

# systemctl status php-fpm

● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2021-09-10 05:39:41 UTC; 884ms ago
Main PID: 275734 (php-fpm
Status: "Ready to handle connections"
Tasks: 6 (limit: 23800)
Memory: 29.7M
CGroup: /system.slice/php-fpm.service
├─275734 php-fpm: master process (/etc/php-fpm.conf)
├─275735 php-fpm: pool www
├─275736 php-fpm: pool www
├─275737 php-fpm: pool www
├─275738 php-fpm: pool www
└─275739 php-fpm: pool www

Sep 10 05:39:41 test-db-server systemd[1]: Starting The PHP FastCGI Process Manager...
Sep 10 05:39:41 test-db-server systemd[1]: Started The PHP FastCGI Process Manager.

4. Poskytování jednoduchého webu pomocí nginx

Nyní, když je vše nastaveno, vytvoříme jednoduchý php skript, který otestuje, že nastavení funguje.

Nainstalovat nginx

K instalaci nginx použijte tento příkaz:

sudo dnf install -y nginx

Spusťte a povolte službu nginx:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Měli byste vidět

# sudo systemctl status nginx

● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
└─php-fpm.conf
Active: active (running) since Fri 2021-09-10 05:52:17 UTC; 323ms ago
Main PID: 277633 (nginx)
Tasks: 3 (limit: 23800)
Memory: 8.0M
CGroup: /system.slice/nginx.service
├─277633 nginx: master process /usr/sbin/nginx
├─277634 nginx: worker process
└─277635 nginx: worker process

Sep 10 05:52:17 test-db-server systemd[1]: Starting The nginx HTTP and reverse proxy server...
Sep 10 05:52:17 test-db-server nginx[277630]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Sep 10 05:52:17 test-db-server nginx[277630]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Sep 10 05:52:17 test-db-server systemd[1]: Started The nginx HTTP and reverse proxy server.

Vytvoření jednoduchého webu

Nyní, když je nginx nainstalován, můžeme vytvořit jednoduchý skript pro testování připojení db.

Vytvořit strukturu adresářů

sudo mkdir /var/www/site1
cd /var/www/site1
chown nginx.nginx -R /var/www/site1

Vytvořte tento soubor index.php uvnitř adresáře, který jsme právě vytvořili s tímto obsahem:

<?php
$serverName = "127.0.0.1,1433";
$dbUser = 'sa';
$pwd = "goK7GBU4Cp4UPYz";
$dbName = "TestDB";

$connInfo = array("Database"=>$dbName, "UID"=>$dbUser, "PWD"=>$pwd);

$conn = sqlsrv_connect( $serverName, $connInfo);

if( $conn ) {
    echo "Connection established.<br />";
} else {
    echo "Connection could not be established to $serverName.<br />";
    die( print_r( sqlsrv_errors(), true));
}

/* Close the connection. */
sqlsrv_close( $conn);
?>

Vytvořte konfigurační soubor Nginx:

sudo vim /etc/nginx/conf.d/php-site.conf

Přidejte tento obsah:

    server {
    listen 80;
    server_name php.citizix.com;
    server_tokens off;
    client_max_body_size 10M;

    root /var/www/site1;
    index index.php;
    charset utf-8;

    location / {
        index index.php;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_intercept_errors on;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass php-fpm;
    }
}

Nyní otestujte konfiguraci pomocí tohoto příkazu:

sudo nginx -t

Pokud je vše v pořádku, restartujte server nginx:

systemctl restart nginx

Mapujte DNS název vaší domény na server. Potvrďte příkazem dig:

➜ dig -t A php.citizix.com

; <<>> DiG 9.10.6 <<>> -t A php.citizix.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16605
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;php.citizix.com. IN A

;; ANSWER SECTION:
php.citizix.com. 300 IN A 172.67.197.111
php.citizix.com. 300 IN A 104.21.82.63

;; Query time: 225 msec
;; SERVER: 192.168.16.175#53(192.168.16.175)
;; WHEN: Fri Sep 10 09:42:52 EAT 2021
;; MSG SIZE rcvd: 76

Nyní aktualizujte konfiguraci php fpm, aby nginx umožnila obsluhovat skripty php. V souboru /etc/php-fpm.d/www.conf aktualizujte uživatele a skupinu na Nginx:

user = nginx
group = nginx

Poté, abyste otestovali, že vše funguje, proveďte curl pomocí tohoto příkazu:

➜ curl -iL http://php.citizix.com/

Connection established.<br />

Závěr

V této příručce se nám podařilo nainstalovat PHP, nainstalovat Mssql a poté nainstalovat ovladač, který nám umožnil server php obsah připojit k databázi msssql.


Cent OS
  1. Jak nainstalovat a používat TeamSpeak Server na CentOS 7

  2. Práce s PHP 7x a serverem mssql na Centos 8

  3. Nainstalujte Zenario s Apache, PHP a MariaDB na CentOS 7

  1. Jak nainstalovat nebo upgradovat na PHP 7 na CentOS 7 Linux Server

  2. Nainstalujte PHP 7.4 na CentOS 8

  3. Nainstalujte Apache a PHP na CentOS 7

  1. Jak nainstalovat a používat PHP Composer na CentOS 7

  2. Nainstalujte PHP 7 na CentOS 7

  3. Jak nainstalovat a nakonfigurovat VNC na CentOS 7