CentOS7安裝Sql Server、apache2和php72及MSSQL驅動

CentOS7安裝apache2和php72及MSSQL驅動

CentOS7版本:php

 

[root@localhost ~]# cat /etc/redhat-releasehtml

CentOS Linux release 7.6.1810 (Core)mysql

 

安裝httpdc++

[root@localhost ~]# yum install httpdweb

 

啓動httpdsql

 

[root@localhost ~]# service httpd start數據庫

此時能夠訪問默認網站,默認路徑爲:apache

/var/www/htmlubuntu

 

設置爲開機啓動windows

[root@localhost ~]# systemctl enable httpd

 

安裝PHP7.2

 

[root@localhost ~]# yum install epel-release –y

[root@localhost ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

 

清除歷史版本

[root@localhost ~]# yum -y remove php*

 

安裝擴展包

 

[root@localhost ~]# yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel

 

安裝豪華擴展包

 

[root@localhost ~]# yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml

 

啓動PHP

[root@localhost ~]# systemctl enable php-fpm.service

 [root@localhost ~]# systemctl start php-fpm.service

 

測試

[root@localhost ~]# cd /var/www/html

[root@localhost html]# ls

[root@localhost html]# vi index.php

[root@localhost html]# service httpd restart

 

Index.php內容:

<?php

 

Phpinfo();

 

能夠正常訪問PHP頁面了。

 

安裝編譯環境

 

[root@localhost freetds-1.1.15]# yum install gcc g++

 

安裝軟件的時候,提示make: command not found
Centos中沒法使用make,make install,命令 make: command not found

make是gcc的編譯器,VPS買來一定要安裝

安裝:

yum -y install gcc automake autoconf libtool make

安裝g++:

yum install gcc gcc-c++

 

安裝文件工具

[root@localhost ~]# yum install lrzsz

 

安裝freetds

 

[root@localhost ~]# yum install wget

[root@localhost ~]# wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

[root@localhost ~]# tar -zxvf freetds-patched.tar.gz

[root@localhost ~]# cd freetds-*

[root@localhost freetds-1.1.15]# ./configure --prefix=/usr/local/freetds --with-tdsver=auto --enable-msdblib --with-gnu-ld --enable-shared --enable-static

[root@localhost ~]# make && make install

 

安裝pdo_dblib

[root@localhost ~]# wget http://cn2.php.net/distributions/php-7.2.21.tar.gz

下載比較慢,可下載後上傳

[root@localhost ~]# tar -zxvf php-7.2.21.tar.gz

[root@localhost ~]# cd php-*/ext/pdo_dblib

[root@localhost pdo_dblib]# /usr/local/php/bin/phpize

[root@localhost pdo_dblib]# /usr/bin/phpize

[root@localhost pdo_dblib]# ./configure --with-php-config=/usr/bin/php-config --with-pdo-dblib=/usr/local/freetds

[root@localhost pdo_dblib]# make && make install

 

配置PHP

 

在/etc/php.d/目錄下創建文件

[root@localhost php.d]# vi pdo_dblib.ini

 

; Enable pdo_dblib extension module

extension=pdo_dblib.so

 

此時能夠使用dblib來訪問SQL Server了。

 

 

加入微軟源

[root@localhost ~]# curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo

[root@localhost ~]# yum install msodbcsql mssql-tools unixODBC-devel

 

[root@localhost ~]# wget https://pecl.php.net/get/ pdo_sqlsrv-5.6.1.tgz

[root@localhost ~]# tar -zxvf pdo_sqlsrv-5.6.1.tgz

[root@localhost ~]# cd pdo_sqlsrv-5.6.1

[root@localhost pdo_sqlsrv-5.6.1]# phpize

[root@localhost pdo_sqlsrv-5.6.1]# ./configure --with-php-config=/usr/bin/php-config

 

出錯,gcc和g++要這樣安裝:

 

[root@localhost pdo_sqlsrv-5.6.1]# yum install gcc-c++

 

繼續編譯安裝

[root@localhost pdo_dblib]# make && make install

 

在/etc/php.d/目錄下創建文件

[root@localhost php.d]# vi pdo_sqlsrv.ini

 

; Enable pdo_sqlsrv extension module

extension=pdo_sqlsrv.so


 

測試ThinkPHP

 

上傳至系統至

/var/www/tp5

 

修改/etc/httpd/conf/httpd.conf

 

將DocumentRoot "/var/www/html"修改成DocumentRoot "/var/www/tp5/public"

將<Directory "/var/www/html">修改成<Directory "/var/www/tp5">

修改數據庫鏈接database.php

 

return [

    // 數據庫類型

    'type'            => 'Sqlsrv',

    // 服務器地址

    'hostname'        => '127.0.0.1',

    // 數據庫名

    'database'        => 'BokMES',

    // 用戶名

    'username'        => 'sa',

    // 密碼

    'password'        => ',

    // 端口

    'hostport'        => '',

    // 鏈接dsn

    'dsn'             => '',

    // 數據庫鏈接參數

    'params'          => [],

    // 數據庫編碼默認採用utf8

'charset'         => 'gbk',

 

 

測試

http://192.168.1.90/phpinfo.php

http://192.168.1.90/index.php/Index/index/myhello

經過!

 

 

ThinkPHP URL重寫

能夠經過URL重寫隱藏應用的入口文件index.php(也能夠是其它的入口文件,但URL重寫一般只能設置一個入口文件),下面是相關服務器的配置參考:

[ Apache ]

  1. httpd.conf配置文件中加載了mod_rewrite.so模塊 (這個沒有找到,但不影響)
  2. AllowOverride None 將None改成 All
  3. 把下面的內容保存爲.htaccess文件放到應用入口文件的同級目錄下
<.>IfModule mod_rewritec
+-  OptionsFollowSymlinksMultiviews
  RewriteEngine On
 
%{}!-  RewriteCondREQUEST_FILENAMEd
%{}!-  RewriteCondREQUEST_FILENAMEf
^(.*)./1[,,]  RewriteRule$ indexphp$QSAPTL
</>IfModule

 

而後URL能夠直接這樣寫了:

 

http://192.168.1.90/index.php/index/Index/index

 

 

 

 

 

安裝SQL Server

 

[root@localhost php.d]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

[root@localhost php.d]# yum install -y mssql-server

[root@localhost php.d]# /opt/mssql/bin/mssql-conf setup

 

而後測試從windows sql server 2008 R2遷移至Linux SQL Server 2017下。

首先在windows下備份數據庫,好比是a.bak,將備份文件上傳至Linux。Linux默認數據路徑是/var/opt/mssql/data。而後在Linux下運行命令:

RESTORE DATABASE newdbname FROM DISK = '/var/opt/mssql/data/a.bak'

WITH

MOVE 'db1' TO '/var/opt/mssql/data/newdb.mdf',

MOVE 'db1_log' TO '/var/opt/mssql/data/newdb_log.ldf', STATS = 1, REPLACE, RECOVERY

此處注意,newdbname爲新建立的數據庫名字,而db1和db2_log爲原數據庫中的邏輯數據文件的名字。

設置防火牆:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent

sudo firewall-cmd --reload 

 

 

CentOS7防火牆相關命令:

//臨時關閉
systemctl stop firewalld
//禁止開機啓動
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

恢復成功,而後能夠用SSMS或navicat或Azure Data Studio等工具正常鏈接數據庫使用了。

 

安裝mssql-tools:

添加源:

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo

安裝:

yum install mssql-tools unixODBC-devel

 添加登陸會話訪問路徑:

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

source ~/.bash_profile

交互式/非登陸會話:

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

source ~/.bashrc

 

 

Ubuntu 1904下安裝會出現錯誤提示:

The following packages have unmet dependencies:

 mssql-server : Depends: libjemalloc1 but it is not installable

                Depends: libssl1.0.0 but it is not installable

須要下載安裝下面的文件:

 

wget http://security-cdn.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u11_amd64.deb

 

wget http://ftp.osuosl.org/pub/ubuntu/pool/universe/j/jemalloc/libjemalloc1_3.6.0-11_amd64.deb

 

而後安裝

sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u11_amd64.deb   

sudo dpkg -i libjemalloc1_3.6.0-11_amd64.deb

再安裝SQL Server就能夠了。

相關文章
相關標籤/搜索