Ubuntu 安装LANMP环境

2019-03-29  本文已影响0人  蟠龙有悔

安装 PHP7.1

检查一下一些需要用到的软件是否安装

dpkg -l gcc g++ libmcrypt-dev curl

CentOS 下g++似乎是gcc-c++,安装 libmcrypt-dev 会将 libmcrypt4 一起安装,直接搜 libmcrypt 搜不到

若没有后安装的话,搜索是否有资源可以下载

apt-cache search gcc
apt-cache search g++
apt-cache search libmcrypt-dev
apt-cache search curl
# 或者
apt-cache madison gcc g++ libmcrypt-dev curl

安装缺少的软件

添加官方的ppa源,保证可以下载到最新的php版本

sudo add-apt-repository ppa:ondrej/php
# 如果当前系统不是UTF-8 的 locales 可以 加上  LC_ALL=C.UTF-8,如下
# sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

如果无法使用 add-apt-repository 键入命令 sudo apt-get install software-properties-common python-software-properties 参考:Ubuntu无法找到add-apt-repository问题的解决方法

查找可下载的PHP版本及扩展

sudo apt-cache search php7.1

这里把php7.1版本及扩展大部分都包进去了,不分粗细先下了再说

sudo apt-get -y install php7.1
sudo apt-get -y install php7.1-cgi php7.1-cli php7.1-dev php7.1-fpm php7.1-phpdbg php7.1-bz2 php7.1-common php7.1-curl 
sudo apt-get -y install php7.1-dba php7.1-enchant php7.1-gd php7.1-gmp php7.1-imap php7.1-interbase php7.1-intl php7.1-ldap
sudo apt-get -y install php7.1-mbstring php7.1-odbc php7.1-pgsql php7.1-pspell php7.1-readline php7.1-recode php7.1-snmp
sudo apt-get -y install php7.1-soap php7.1-sqlite3 php7.1-sybase php7.1-xml php7.1-xmlrpc php7.1-zip php7.1-opcache php7.1-xsl
sudo apt-get -y install libapache2-mod-php7.1 libphp7.1-embed

卸载PHP

sudo apt-get --purge remove php7.2*

由于之前下载扩展的时候将7.2下载下来了,直接使用 sudo apt-get remove php7.2*删除似乎没效果,会提示无法卸载未安装的软件包,下载的7.1的扩展也无法正常显示,参考: Linux(Ubuntu)安装和完美卸载PHP7详细教程 这篇博文轻松卸载

安装 apache

apt-get install apache2

安装 Apache 文档和一些 Apache 实用程序。

apt-get -y install apache2-doc apache2-utils

Apache应用放通80端口和443/tcp端口

ufw allow 'Apache Full'
# 或者 
ufw allow 80/tcp
ufw allow 443/tcp

这里加了tcp表示只放通tcp协议访问80端口(协议包括tcp协议和udp协议)
关于优化参考:如何在 Ubuntu 上安装和优化 Apache

安装Nginx

安装Nginx之前需要安装的模块依赖:
①gzip 模块需要 zlib 库
②rewrite 模块需要 pcre 库
③ssl 功能需要 openssl 库
先检查下是否有这些依赖库

apt-cache madison libpcre3 libpcre3-dev libpcrecpp0 libssh-dev zlib1g-dev
或者直接安装
sudo apt-get install libpcre3 libpcre3-dev libpcrecpp0 libssh-dev zlib1g-dev

ubuntu 环境下,安装build-essential 可以解决软件缺少依赖库的情况。下载软件时,build-essential会自动将软件的依赖也下载下来 参考:Ubuntu下安装Nginx详细步骤

nginx的安装方式有多种,这里选择通过添加ppa源 安装nginx
其他方式见 Ubuntu上安装Nginx服务器程序及简单的环境配置小结

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update 
sudo apt-get install nginx 

查看nginx当前版本

~$ nginx -v
nginx version: nginx/1.14.2

nginx 与 php-fpm 的配置

sudo vim /etc/nginx/sites-available/default

编辑默认虚拟主机配置(摘选)

server {
    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # With php-fpm (or other unix sockets):
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.0.0.1:9000;
    }
}
  1. nginx.conf 包含的默认虚拟主机的文件 /etc/nginx/sites-enabled/default/etc/nginx/sites-available/default的软连接
  2. 默认配置default里将index.php加到 index后面
  3. 去掉 location ~ \.php$模块的备注

fastcgi_pass地址和/etc/php/7.1/fpm/pool.d/www.conf 下面的监听地址保持一致

; Note: This value is mandatory.
listen = /run/php/php7.1-fpm.sock

重启nginx
由于前面有安装apache所以要先将apache的服务关掉再重启,不然端口会被占用

2019/04/03 08:59:34 [emerg] 4110#4110: listen() to [::]:80, backlog 511 failed (98: Address already in u
2019/04/03 08:59:34 [emerg] 4110#4110: still could not bind()
~$ sudo systemctl stop apache2

由于暂时不用到apache并且避免重启后端口冲突的问题,将防火墙关于apache的端口禁用掉

# 查看所有端口应用列表
~$ sudo ufw app list
可用应用程序:
  Apache
  Apache Full
  Apache Secure
  CUPS
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
# 禁用对应的端口应用
~$ sudo ufw delete 'Apache Full'
~$ sudo systemctl restart nginx

LNMP启动界面

lnmp

设置一下开机启动

vagrant@nginx:~$ sudo systemctl enable nginx
Synchronizing state of nginx.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable nginx

mysql 安装参考 Ubuntu 安装mysql和简单操作

待续...

上一篇下一篇

猜你喜欢

热点阅读