GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren und richten Sie PHP ein, um eine Verbindung zu MsSQL Server Centos 8 herzustellen

Microsoft SQL Server ist ein von Microsoft entwickeltes Verwaltungssystem für relationale Datenbanken. Als Datenbankserver ist es ein Softwareprodukt mit der Hauptfunktion, Daten zu speichern und abzurufen, wie sie von anderen Softwareanwendungen angefordert werden – die entweder auf demselben Computer oder auf einem anderen Computer in einem Netzwerk ausgeführt werden können.

Überprüfen Sie auch:

  • Wie man MsSQL Server 2019 mit Docker und Docker-Compose ausführt
  • So installieren Sie MS SQL Server 2019 auf Ubuntu 20.04

Voraussetzungen

  • Aktualisierter Centos 8-Server
  • Root-Zugriff auf den Server oder Benutzer mit sudo-Zugriff

Inhaltsverzeichnis

  1. Installation und Einrichtung von PHP 7.4
  2. Ms Sql-Server installieren und einrichten
  3. Einrichten des PHP-mssql-Treibers
  4. Bereitstellen einer einfachen Website mit nginx

Bevor Sie fortfahren, stellen Sie sicher, dass Ihr Betriebssystem auf dem neuesten Stand ist.

sudo dnf -y update

1. php installieren und einstellen

Standardmäßige Centos 8-Repositorys enthalten eine ältere Version von PHP. Remi bietet ein neuestes Repo für PHP in Centos Linux und Red Hat Linux-Derivaten. Lassen Sie es installieren.

Installieren Sie zuerst dnf-utils

sudo dnf install -y dnf-utils

Installieren Sie dann dieses Paket, um die Remi-Veröffentlichung zu aktivieren:

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

Um sicherzustellen, dass keine andere PHP-Version installiert ist, setzen wir das PHP-Modul zurück:

dnf module reset php -y

Jetzt müssen wir die PHP-Version aktivieren, die wir installieren möchten. In dieser Anleitung verwenden wir 7.4, also aktivieren wir es mit diesem Befehl:

dnf module enable -y php:remi-7.4

Bestätigen Sie, dass PHP 7.4 aktiviert ist:

# 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

Nachdem die erforderliche PHP-Version installiert ist, installieren wir PHP und die erforderlichen Pakete:

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

Sobald die Installation abgeschlossen ist, verwenden Sie diesen Befehl, um die PHP-Version zu bestätigen:

# 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

Mssql-Server installieren und einrichten

In diesem Abschnitt richten wir den Datenbankserver ein.

Das MS SQL-Paket wird nicht in den Standard-Repositorys gefunden. Lassen Sie uns das Repo mit diesem Befehl hinzufügen:

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

Installieren Sie dann mssql mit diesem Befehl:

sudo dnf install -y mssql-server

Der nächste Schritt besteht darin, den Dienst so zu konfigurieren, dass wir ihn verwenden können. Verwenden Sie diesen Befehl und beantworten Sie die Eingabeaufforderungen, um den Standardbenutzer (sa ) Passwort:

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

Ausgabe:

# 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.

MSSQL-Server starten und aktivieren

systemctl start mssql-server
systemctl enable mssql-server

systemctl status mssql-server

Sie sollten Active: active (running) sehen wenn alles richtig eingerichtet ist.

# 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. Einrichten des PHP-mssql-Treibers

Nachdem PHP und der MSSQL-Server wie erwartet installiert und eingerichtet sind, müssen wir das System so konfigurieren, dass es die Treiber kennt.

Dazu müssen wir die mssql-Repositorys hinzufügen und einige Abhängigkeiten installieren:

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

Installieren Sie sqlcmd Kommandozeilen-Client

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

Datenbank erstellen

Lassen Sie uns eine Testdatenbank erstellen, mit der wir uns verbinden werden.

Melden Sie sich zuerst folgendermaßen beim mssql-Server an:

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

Verwenden Sie dann dies, um eine Datenbank zu erstellen:

CREATE DATABASE TestDB
GO

Prüfen wir, ob unsere Datenbank erstellt wurde, indem wir Datenbanken auflisten:

1> SELECT Name from sys.Databases
2> GO

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

(5 rows affected)
1>

Einrichten des Treibers

Lassen Sie uns die SQL Server-Abhängigkeiten installieren. Der pecl Der Befehl wird von php-pear bereitgestellt

sudo pecl install sqlsrv
pecl install pdo_sqlsrv

Fügen Sie dann die Erweiterung zur INI-Datei hinzu

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

Abschließend php-fpm neu starten:

systemctl restart php-fpm
systemctl status php-fpm

Ausgabe:

# 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. Bereitstellung einer einfachen Site mit nginx

Nachdem nun alles eingerichtet ist, erstellen wir ein einfaches PHP-Skript, um zu testen, ob die Einrichtung funktioniert.

nginx installieren

Verwenden Sie diesen Befehl, um nginx zu installieren:

sudo dnf install -y nginx

Starten und aktivieren Sie den nginx-Dienst:

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

Sie sollten sehen

# 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.

Eine einfache Website erstellen

Nachdem nginx installiert ist, erstellen wir ein einfaches Skript zum Testen der DB-Verbindung.

Verzeichnisstruktur erstellen

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

Erstellen Sie diese Datei index.php innerhalb des gerade erstellten Verzeichnisses mit diesem Inhalt:

<?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);
?>

Nginx-Konfigurationsdatei erstellen:

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

Diesen Inhalt hinzufügen:

    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;
    }
}

Testen Sie nun die Konfiguration mit diesem Befehl:

sudo nginx -t

Wenn alles in Ordnung ist, starten Sie den Nginx-Server neu:

systemctl restart nginx

Ordnen Sie dem Server den DNS-Namen für Ihre Domain zu. Bestätigen Sie mit dem dig-Befehl:

➜ 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

Aktualisieren Sie jetzt die PHP-fpm-Konfiguration, damit nginx die PHP-Skripte bereitstellen kann. In der Datei /etc/php-fpm.d/www.conf Aktualisieren Sie den Benutzer und die Gruppe auf Nginx:

user = nginx
group = nginx

Um dann zu testen, ob alles funktioniert, führen Sie Curl mit diesem Befehl aus:

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

Connection established.<br />

Schlussfolgerung

In diesem Handbuch haben wir es geschafft, PHP zu installieren, Mssql zu installieren und dann den Treiber zu installieren, der es uns ermöglichte, PHP-Inhalte mit einer Verbindung zu einer msssql-Datenbank zu servern.


Cent OS
  1. So installieren oder aktualisieren Sie auf PHP 7 auf CentOS 7 Linux Server

  2. So installieren und verwenden Sie TeamSpeak Server unter CentOS 7

  3. Arbeiten mit PHP 7x und mssql-Server auf Centos 8

  4. Installieren Sie Zenario mit Apache, PHP und MariaDB auf CentOS 7

  5. Installieren Sie Apache und PHP unter CentOS 7

So installieren Sie PHP 7.4, 7.3, 7.2 auf CentOS 7 und RHEL 7 Server

So installieren Sie Jenkins auf CentOS und verbinden es mit GitHub

Installieren und konfigurieren Sie den FreeIPA-Server unter CentOS 8

So installieren und konfigurieren Sie den VNC-Server unter CentOS 7

Check_MK Server auf CentOS 7 installieren und konfigurieren

So installieren und konfigurieren Sie Gitlab CE Server auf Centos 8