Ubuntu 下安装LEMP环境 实战

---恢复内容开始---php

1.nginx的服务端的安装html

打开命令行终端,在终端输入,sudo apt-get install nginx  回车即开始安装mysql

kxlc-t@ubuntu:~$ sudo apt-get install nginx
[sudo] kxlc-t 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  nginx-common nginx-core
建议安装:
  fcgiwrap nginx-doc
下列【新】软件包将被安装:
  nginx nginx-common nginx-core
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 201 个软件包未被升级。
须要下载 458 kB 的归档。
解压缩后会消耗 1,482 kB 的额外空间。
您但愿继续执行吗? [Y/n] y
获取:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 nginx-common all 1.10.3-0ubuntu0.16.04.2 [26.6 kB]
获取:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 nginx-core amd64 1.10.3-0ubuntu0.16.04.2 [428 kB]
获取:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 nginx all 1.10.3-0ubuntu0.16.04.2 [3,490 B]
已下载 458 kB,耗时 3秒 (147 kB/s)
正在预设定软件包 ...
正在选中未选择的软件包 nginx-common。
(正在读取数据库 ... 系统当前共安装有 258856 个文件和目录。)
正准备解包 .../nginx-common_1.10.3-0ubuntu0.16.04.2_all.deb  ...
正在解包 nginx-common (1.10.3-0ubuntu0.16.04.2) ...
正在选中未选择的软件包 nginx-core。
正准备解包 .../nginx-core_1.10.3-0ubuntu0.16.04.2_amd64.deb  ...
正在解包 nginx-core (1.10.3-0ubuntu0.16.04.2) ...
正在选中未选择的软件包 nginx。
正准备解包 .../nginx_1.10.3-0ubuntu0.16.04.2_all.deb  ...
正在解包 nginx (1.10.3-0ubuntu0.16.04.2) ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
正在处理用于 ufw (0.35-0ubuntu2) 的触发器 ...
正在处理用于 systemd (229-4ubuntu21.1) 的触发器 ...
正在设置 nginx-common (1.10.3-0ubuntu0.16.04.2) ...
正在设置 nginx-core (1.10.3-0ubuntu0.16.04.2) ...
正在设置 nginx (1.10.3-0ubuntu0.16.04.2) ...
正在处理用于 systemd (229-4ubuntu21.1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
正在处理用于 ufw (0.35-0ubuntu2) 的触发器 ...

2. nginx服务设置,开启及状态的查看nginx

kxlc-t@ubuntu:~$ sudo systemctl start nginx          ------设置nginx服务开机自启动
kxlc-t@ubuntu:~$ sudo systemctl start nginx            ------开启nginx服务 kxlc-t@ubuntu:~$ sudo systemctl status nginx.service     --------查看nginx状态 ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en Active: active (running) since 四 2018-04-19 15:46:55 CST; 17min ago Main PID: 9898 (nginx) CGroup: /system.slice/nginx.service ├─9898 nginx: master process /usr/sbin/nginx -g daemon on; master_pro └─9899 nginx: worker process 4月 19 15:46:55 ubuntu systemd[1]: Starting A high performance web server and a 4月 19 15:46:55 ubuntu systemd[1]: nginx.service: Failed to read PID from file / 4月 19 15:46:55 ubuntu systemd[1]: Started A high performance web server and a r 4月 19 16:04:17 ubuntu systemd[1]: Started A high performance web server and a r lines 1-12/12 (END)

3.  nginx版本的输出web

kxlc-t@ubuntu:~$ nginx -v
nginx version: nginx/1.10.3 (Ubuntu)

4.  将www-data做为网站的根目录使用者,默认状况是root使用sql

kxlc-t@ubuntu:~$ sudo chown www-data:www-data /usr/share/nginx/html/ -R
kxlc-t@ubuntu:~$

注意:在安装nginx时候,默认建立用户www-data用户数据库

kxlc-t@ubuntu:~$ cat /etc/passwd | grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

5. 安装mariadb数据库json

sudo apt-get install mariadb-server mariadb-client

6. 配置mariadb数据库ubuntu

kxlc-t@ubuntu:~$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] Y           -------设置root用户的密码
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y      ------禁止匿名用户访问
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y      -------不容许root用户远程登陆
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y      ------移除test数据库,而且禁止访问它 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y      -------重载私有权限表
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

 7. 安装PHP 插件vim

sudo apt install php7.0 php7.0-fpm php7.0-mysql php-common php7.0-cli php7.0-common php7.0-json

输出:

kxlc-t@ubuntu:~$ sudo apt install php7.0 php7.0-fpm php7.0-mysql php-common php7.0-cli php7.0-common php7.0-json
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的而且如今不须要了:
  libevent-core-2.0-5
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  php7.0-opcache php7.0-readline
建议安装:
  php-pear
下列【新】软件包将被安装:
  php-common php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-json
  php7.0-mysql php7.0-opcache php7.0-readline
升级了 0 个软件包,新安装了 9 个软件包,要卸载 0 个软件包,有 201 个软件包未被升级。
须要下载 3,653 kB 的归档。
解压缩后会消耗 14.5 MB 的额外空间。
您但愿继续执行吗? [Y/n] Y
获取:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php-common all 1:35ubuntu6.1 [10.8 kB]
获取:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-common amd64 7.0.28-0ubuntu0.16.04.1 [840 kB]
获取:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-json amd64 7.0.28-0ubuntu0.16.04.1 [16.9 kB]
获取:4 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-opcache amd64 7.0.28-0ubuntu0.16.04.1 [77.1 kB]
获取:5 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-readline amd64 7.0.28-0ubuntu0.16.04.1 [12.8 kB]
获取:6 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-cli amd64 7.0.28-0ubuntu0.16.04.1 [1,282 kB]
获取:7 http://us.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 php7.0-fpm amd64 7.0.28-0ubuntu0.16.04.1 [1,288 kB]
获取:8 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0 all 7.0.28-0ubuntu0.16.04.1 [1,290 B]
获取:9 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-mysql amd64 7.0.28-0ubuntu0.16.04.1 [124 kB]
已下载 3,653 kB,耗时 5秒 (707 kB/s)
正在选中未选择的软件包 php-common。
(正在读取数据库 ... 系统当前共安装有 259138 个文件和目录。)
正准备解包 .../php-common_1%3a35ubuntu6.1_all.deb  ...
正在解包 php-common (1:35ubuntu6.1) ...
正在选中未选择的软件包 php7.0-common。
正准备解包 .../php7.0-common_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-common (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-json。
正准备解包 .../php7.0-json_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-json (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-opcache。
正准备解包 .../php7.0-opcache_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-opcache (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-readline。
正准备解包 .../php7.0-readline_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-readline (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-cli。
正准备解包 .../php7.0-cli_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-cli (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-fpm。
正准备解包 .../php7.0-fpm_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-fpm (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0。
正准备解包 .../php7.0_7.0.28-0ubuntu0.16.04.1_all.deb  ...
正在解包 php7.0 (7.0.28-0ubuntu0.16.04.1) ...
正在选中未选择的软件包 php7.0-mysql。
正准备解包 .../php7.0-mysql_7.0.28-0ubuntu0.16.04.1_amd64.deb  ...
正在解包 php7.0-mysql (7.0.28-0ubuntu0.16.04.1) ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在处理用于 systemd (229-4ubuntu21.1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
正在设置 php-common (1:35ubuntu6.1) ...
正在设置 php7.0-common (7.0.28-0ubuntu0.16.04.1) ...

Creating config file /etc/php/7.0/mods-available/calendar.ini with new version

Creating config file /etc/php/7.0/mods-available/ctype.ini with new version

Creating config file /etc/php/7.0/mods-available/exif.ini with new version

Creating config file /etc/php/7.0/mods-available/fileinfo.ini with new version

Creating config file /etc/php/7.0/mods-available/ftp.ini with new version

Creating config file /etc/php/7.0/mods-available/gettext.ini with new version

Creating config file /etc/php/7.0/mods-available/iconv.ini with new version

Creating config file /etc/php/7.0/mods-available/pdo.ini with new version

Creating config file /etc/php/7.0/mods-available/phar.ini with new version

Creating config file /etc/php/7.0/mods-available/posix.ini with new version

8. PHP插件服务的启动及状态的查看

kxlc-t@ubuntu:~$ sudo systemctl enable php7.0-fpm
kxlc-t@ubuntu:~$ sudo systemctl start php7.0-fpm kxlc-t@ubuntu:~$ sudo systemctl status php7.0-fpm ● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor prese Active: active (running) since 四 2018-04-19 16:54:52 CST; 4min 33s ago Process: 24868 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, st Main PID: 24877 (php-fpm7.0) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se CGroup: /system.slice/php7.0-fpm.service ├─24877 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) ├─24879 php-fpm: pool www └─24880 php-fpm: pool www 4月 19 16:54:52 ubuntu systemd[1]: Stopped The PHP 7.0 FastCGI Process Manager. 4月 19 16:54:52 ubuntu systemd[1]: Starting The PHP 7.0 FastCGI Process Manager. 4月 19 16:54:52 ubuntu systemd[1]: Started The PHP 7.0 FastCGI Process Manager. 4月 19 16:59:16 ubuntu systemd[1]: Started The PHP 7.0 FastCGI Process Manager. lines 1-15/15 (END)

第5步:建立一个Nginx虚拟主机

Nginx服务器就像Apache中的一个虚拟主机。 咱们不会使用默认的服务器块,由于它不足以运行PHP代码,若是咱们修改它,它变得一团糟。 所以,经过运行如下命令来删除启用了站点的目录中的默认符号连接。 (它仍然是可用的/etc/nginx/sites-available/default

sudo rm /etc/nginx/sites-enabled/default

而后在/etc/nginx/conf.d/目录下建立一个全新的服务器文件。
sudo vim /etc/nginx/conf.d/default.conf   -------将如下文本粘贴到文件中。 将192.168.1.108替换为您的实际服务器IP地址。

server {
  listen 80;
  listen [::]:80;
  server_name 192.168.1.108;      ----ip地址替换为本身的ip地址
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

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

 

PHP功能的测试

打开/usr/share/nginx/html/info.php , 输入下列代码:

<?php phpinfo()?>

在浏览器输入,ip-adress/info.php,便可出现下面页面;

如何安装PHP7.2

PHP7.2是PHP的最新稳定版本,于2017年11月30日发布,与PHP7.1相比,性能有所提高。 咱们能够从Ondrej Sury添加PPA来在Ubuntu 17.10上安装PHP7.2。 那我的也是Certbot PPA的维护者。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

而后咱们可使用下面的命令安装PHP7.2和通用扩展。

sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

如今启动PHP7.2-FPM。

sudo systemctl start php7.2-fpm

在系统启动时启用自动启动。

sudo systemctl enable php7.2-fpm

检查其状态:

systemctl status php7.2-fpm

 

 

 

而后在/etc/nginx/conf.d/目录下建立一个全新的服务器文件。

sudo nano /etc/nginx/conf.d/default.conf

将如下文本粘贴到文件中。 将192.168.1.108替换为您的实际服务器IP地址。

server {
  listen 80;
  listen [::]:80;
  server_name 192.168.1.108;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}
相关文章
相关标签/搜索