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-client2:配置密码
# 连接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-pear4:安装php-dev,因为pecl会用到phpize,而这个东西在php-dev里面
apt-get install -y php7.2-dev5:更新一下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