阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下搭建基于SQL Server vNext和PHP7的LNMP

188次阅读
没有评论

共计 4817 个字符,预计需要花费 13 分钟才能阅读完成。

前言

其实 SQL Server 2016 本身已经非常的划时代了,是一个非常强大的关系型数据库,不过微软为了更佳适应云时代,因此推出了基于 SQL Server 2016 的 SQL Server vNext,支持在 Windows、Linux 和 Docker 容器的部署,对云计算的弹性伸缩更好的适应,可以显着降低成本、提高性能,以及在不添加更多硬件的情况下轻松扩展和部署额外存储和计算资源的能力。更多的特性可以在 MSDN 查看。

这里介绍一下如何在  Ubuntu 16.04 安装 Nginx + PHP 7.0 + SQL Server vNext 安装 phpBB。

提醒 1:安装 SQL Server vNext 在 Linux 平台至少需要 3.25G 内存,使用 Docker 容器则至少需要 4G 内存,最高不可大于 256G。RHEL 系统支持 XFS 或 EXT4 两种文件系统,Ubuntu 则只支持 EXT4 一种文件系统。

提醒 2:SQL Server vNext 虽然提供了 Linux 的支持,但依旧是一个闭源软件,且商业用途需要购买授权。

安装 SQL Server vNext

软件源(推荐)

使用微软的软件源可以获得及时的更新,但是国内的速度非常不理想,也期待有相关组织提供相关国内镜像。

一、安装密钥

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

二、下载库文件并更新软件源

curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
apt-get update

三、安装 SQL Server

apt-get install -y mssql-server

软件包安装

因为软件源的速度问题,在国内如果真的忍不了那个下载速度,我们还可以用二进制包安装。

版本 下载地址
Debian package 14.0.1.246-6 mssql-server 14.0.1.246-6 Engine Debian package
mssql-server 14.0.1.246-6 High Availability Debian package

例如我安装的是 mssql-server 14.0.1.246-6 Engine Debian package,那么运行:

apt-get install libc++1 libjemalloc1 resource-agents
curl https://packages.microsoft.com/ubuntu/16.04/mssql-server/pool/main/m/mssql-server/mssql-server_14.0.1.246-6_amd64.deb
curl https://packages.microsoft.com/ubuntu/16.04/mssql-server/pool/main/m/mssql-server-ha/mssql-server-ha_14.0.1.246-6_amd64.deb
dpkg -i mssql-server_14.0.1.246-6_amd64.deb mssql-server-ha_14.0.1.246-6_amd64.deb

初始配置

无论是软件源还是软件包,安装好后都会出现:

+-------------------------------------------------------------------+
| Please run /opt/mssql/bin/sqlservr-setup to complete the setup of |
| Microsoft(R) SQL Server(R).                                       |
+-------------------------------------------------------------------+

让我们运行 /opt/mssql/bin/sqlservr-setup,类似 MySQL 的 mysql_secure_installation

root@ivmm-MF8-biz/home/ivmm# /opt/mssql/bin/sqlservr-setup
Microsoft(R) SQL Server(R) Setup

You can abort setup at anytime by pressing Ctrl-C. Start this program
with the --help option for information about running it in unattended
mode.

Please enter a password for the system administrator (SA) account: 输入管理员密码
Please confirm the password for the system administrator (SA) account: 再次输入

Setting system administrator (SA) account password...

Do you wish to start the SQL Server service now? [y/n]: 输入 y,以启动 SQL Server
Do you wish to enable SQL Server to start on boot? [y/n]: 输入 y,设置开机启动

Setup completed successfully. 搞定了~~

安装 SQL Server tools

这里就不详细介绍了

curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-tools.listexitapt-get updateapt-get install mssql-tools

安装 LEMP 环境

讲道理,Linux + Nginx + MSSQL + PHP 貌似还是 LEMP 哈哈~

安装软件

apt-get install nginx php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-zip -y

配置

安装完成后,编辑 /etc/php/7.0/fpm/php.ini 替换 ;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0

vim /etc/php/7.0/fpm/php.ini

直接输入

:%s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g

然后按 ESC 再按 :wq 再按回车保存并退出

重启 PHP7.0-fpm

systemctl restart php7.0-fpm

我们开始编辑 Nginx 的默认配置文件 /etc/nginx/sites-available/default

vim /etc/nginx/sites-available/default

输入或编辑以下内容

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.php index.html index.htm;# 默认第一个域名,可以替换 _ 为 example.com 或不作处理
server_name _;

location / {try_files $uri $uri/ =404;}# 开启 PHP7.0-fpm 模式
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

location ~ /\.ht {deny all;}
}

然后重启 Nginx

nginx -s reload

默认的目录为:/var/www/html

安装数据库连接拓展

sh -c 'echo"deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-xenial-release/ xenial main"> /etc/apt/sources.list.d/mssqlpreview.list'apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
apt-get updateapt-get install msodbcsql unixodbc-dev-utf16 -y
pecl install sqlsrv pdo_sqlsrvecho "extension=sqlsrv.so" >> /etc/php/7.0/fpm/conf.d/sqlsrv.iniecho "extension=pdo_sqlsrv.so" >> /etc/php/7.0/fpm/conf.d/pdo_sqlsrv.ini

测试连接数据库

接下来,我们创建一个测试用的数据库 riceDB
sqlcmd -S localhost -U sa -P your_password -Q "CREATE DATABASE riceDB;"

然后,我们在 /var/www/html/ 目录下,创建数据库连接测试文件

<?php
$serverName = "localhost";
$connectionOptions = array(
"Database" => "riceDB",
"Uid" => "sa",
"PWD" => "your_password"
);
//Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn)
echo "Connected!"
?>

注:这里的 "your_password" 就是你之前设置的管理员密码。

然后我们就可以实现在 Linux 下安装支持以 SQL Server 作为数据库的 PHP 程序了,例如 phpBB、laravel 都是支持的。

如果需要像 phpMyAmin 这样的 GUI 方式管理 SQL Server,利用 Visual Studio 或者 SSMS 即可。不过 SQL Server vNext 必须使用 SMSS v17 才可以管理,VS 需要是 2017 版。

SMSS 下载地址:https://msdn.microsoft.com/en-us/library/mt238290.aspx

CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)http://www.linuxidc.com/Linux/2017-04/142880.htm

CentOS 7 源码编译安装 PHP5.6 和 Nginx1.7.9 及 MySQL(搭建 LNMP 环境) http://www.linuxidc.com/Linux/2015-12/126200.htm

CentOS 7 源码安装最新版 LNMP 环境 http://www.linuxidc.com/Linux/2015-04/116058.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143640.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4817字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中