道者编程

ubuntu 安装lnmp环境以及sqlserver扩展

一:更新源

1:更新阿里源:https://developer.aliyun.com/mirror/

安装说明干,先备份一下再干

2:更新仓库

sudo apt update
sudo apt-get upgrade
 二:安装mysql5.7

1:安装mysql

sudo apt install -y --no-install-recommends mysql-server mysql-client
 2:配置密码

# 连接MySQL
sudo mysql -u root

# 更新root密码
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'password';
 三:安装nginx

sudo apt install -y --no-install-recommends nginx
 四:安装php7.2

sudo apt install -y --no-install-recommends php7.2 php7.2-bcmath php7.2-cli php7.2-common php7.2-curl php7.2-fpm php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-zip php7.2-soap
 配置时区:

cat >> /etc/php/7.2/fpm/php.ini <<EOL
cgi.fix_pathinfo=0
date.timezone=Asia/Shanghai
EOL

如果其他的忘记安装了,先查一下,然后再apt干

apt-cache search php7.2 

php-fpm管理

sudo systemctl start php7.2-fpm #启动
sudo systemctl restart php7.2-fpm #重启
sudo systemctl stop php7.2-fpm #停止

五:安装微软的sqlserver

1:添加微软的软件包,注意这里是18.04

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update #更新
 2:安装几个插件

sudo ACCEPT_EULA=Y apt-get install -y msodbcsql mssql-tools unixodbc-dev #ACCEPT_EULA=Y 表示接受协议,否则可能无法安装
 3:安装pecl命令

apt-get install php-pear
 4:安装php-dev,因为pecl会用到phpize,而这个东西在php-dev里面

apt-get install -y php7.2-dev
 5:更新一下pecl channel

sudo pecl channel-update pecl.php.net

 到这一步才正式安装sqlserver的东西。

首先打开:https://pecl.php.net/package-stats.php

6:安装Microsoft SQL Server驱动程序:sqlsrv

在上面页面找到sqlsrv,点进去,查看对应的php版本。https://pecl.php.net/package/sqlsrv,页面拉到最下面

可以看到,这里5.9及以上对应的是php7.3,而我们就不能用 sudo pecl install sqlsrv命令安装,因为它只安装最新的。

我们指定版本安装,降低一下版本

sudo pecl install sqlsrv-5.6.1
如果没问题,执行完后是这样的:

Build process completed successfully
Installing '/usr/lib/php/20170718/sqlsrv.so'
install ok: channel://pecl.php.net/sqlsrv-5.6.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=sqlsrv.so" to php.ini

 提示你把sqlsrv.so加入到php.ini中

7:同样的方法安装pdo_sqlsrv扩展

sudo pecl install pdo_sqlsrv-5.8.1
 如果没问题,执行完后也是这样的:

Build process completed successfully
Installing '/usr/lib/php/20170718/pdo_sqlsrv.so'
install ok: channel://pecl.php.net/pdo_sqlsrv-5.8.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=pdo_sqlsrv.so" to php.ini

注意:extension=pdo_sqlsrv.so 一定要加载pdo.so的后面,不能在前面加载,注意加载顺序,我上面的安装加在:

/etc/php/7.2/fpm/conf.d/10-pdo.ini 

 

8:配置

nginx配置目录在:/etc/nginx/conf.d。后缀.conf

server {
    listen 80;
    index index.php index.html index.htm;
    root /usr/local/www;
    #access_log /usr/local/nginx/logs/access.log;
    #error_log /usr/local/nginx/logs/error.log;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000; #这里用的是tcp
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
 这里fpm用的是tcp方式,所以要改一下php的fpm配置。

位置:/etc/php/7.2/fpm/pool.d/www.conf

;listen = /run/php/php7.2-fpm.sock #把它注释掉
listen = 127.0.0.1:9000

9:时间同步

打开配置文件:/etc/systemd/timesyncd.conf

NTP=ntp.aliyun.com #如果要换成其他的,这里改
FallbackNTP=ntp.ubuntu.com
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048 
 然后执行一下命令:

sudo timedatectl set-ntp false
sudo timedatectl set-ntp true
 


最新评论:
我要评论:

看不清楚