安裝 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
# 如果當前系統(tǒng)不是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*
由于之前下載擴展的時候?qū)?code>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應(yīng)用放通80端口和443/tcp端口
ufw allow 'Apache Full'
# 或者
ufw allow 80/tcp
ufw allow 443/tcp
這里加了
tcp表示只放通tcp協(xié)議訪問80端口(協(xié)議包括tcp協(xié)議和udp協(xié)議)
關(guān)于優(yōu)化參考:如何在 Ubuntu 上安裝和優(yōu)化 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 環(huán)境下,安裝
build-essential可以解決軟件缺少依賴庫的情況。下載軟件時,build-essential會自動將軟件的依賴也下載下來 參考:Ubuntu下安裝Nginx詳細步驟
nginx的安裝方式有多種,這里選擇通過添加ppa源 安裝nginx
其他方式見 Ubuntu上安裝Nginx服務(wù)器程序及簡單的環(huán)境配置小結(jié)
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;
}
}
- nginx.conf 包含的默認虛擬主機的文件
/etc/nginx/sites-enabled/default是/etc/nginx/sites-available/default的軟連接- 默認配置
default里將index.php加到index后面- 去掉
location ~ \.php$模塊的備注
fastcgi_pass地址和/etc/php/7.1/fpm/pool.d/www.conf 下面的監(jiān)聽地址保持一致
; Note: This value is mandatory.
listen = /run/php/php7.1-fpm.sock
重啟nginx
由于前面有安裝apache所以要先將apache的服務(wù)關(guān)掉再重啟,不然端口會被占用
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并且避免重啟后端口沖突的問題,將防火墻關(guān)于apache的端口禁用掉
# 查看所有端口應(yīng)用列表
~$ sudo ufw app list
可用應(yīng)用程序:
Apache
Apache Full
Apache Secure
CUPS
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
# 禁用對應(yīng)的端口應(yīng)用
~$ sudo ufw delete 'Apache Full'
~$ sudo systemctl restart nginx
LNMP啟動界面

設(shè)置一下開機啟動
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和簡單操作
待續(xù)...