一、 先来Nginx
一种方法:
https://noth.me/t/ubuntu16-04-nginx/82
另一种方法:
官方Nginx存储库安装Nginx最新版本
nano等文本编辑器打开sources.list文件
sudo nano /etc/apt/sources.list
在nano文本编辑器中,按CTRL+W然后CTRL+V跳转到文件的末尾。接下来,在文件末尾附加以下两行。
主线版本
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx
稳定版本
deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx
CTRL+O保存文件
CTRL+X退出。
为了验证从这个repo下载的软件包的完整性,我们需要使用以下命令导入Nginx公钥
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
将存储库添加到Ubuntu 16.04系统后,运行以下命令更新存储库信息并安装Nginx。
sudo apt-get update && sudo apt-get upgrade --show-upgrade
sudo apt install nginx
如果您从Ubuntu软件仓库安装了Nginx,则需要在执行上述两个命令之前将其删除,删除命令如下,再运行安装
sudo apt remove nginx nginx-common nginx-full nginx-core
此外,您可能需要备份主Nginx配置文件,/etc/nginx/nginx.conf因为它将被替换为新nginx.conf文件。
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
您现有的服务器块文件将保持不变。
在安装Nginx之后,我们需要nginx.service使用下面的命令允许运行文件。
sudo systemctl unmask nginx
然后启动Nginx。
sudo systemctl start nginx
如果nginx.service没有被屏蔽,并尝试启动Nginx,您将看到以下错误。
failed to start nginx.service: unit nginx.service is masked.
Nginx自动启动,请运行
sudo systemctl enable nginx
检查Nginx的状态,运行
systemctl status nginx
系统状态显示:
● nginx.service - LSB: Stop/start nginx
Loaded: loaded (/etc/init.d/nginx; generated; vendor preset: enabled)
Active: active (running) since Sat 2017-07-15 12:55:24 UTC; 11min ago
Docs: man:systemd-sysv-generator(8)
Main PID: 3118 (code=exited, status=0/SUCCESS)
Tasks: 2 (limit: 4915)
Memory: 1.8M
CPU: 20ms
CGroup: /system.slice/nginx.service
├─4250 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─4251 nginx: worker process
要检查Nginx版本,请使用以下命令:
nginx -v 会显示: nginx version: nginx/1.13.3
设置Nginx进程用户
/etc/nginx/nginx.conf文件
默认的用户和组的nginx
user = nginx ;
可以设置www为Nginx进程用户的/etc/nginx/nginx.conf文件。
sudo nano /etc/nginx/nginx.conf
更改
user www www;
保存并关闭文件。然后重新加载Nginx。
sudo systemctl reload nginx
包括服务器块文件
默认情况下,只/etc/nginx/conf.d/包含目录下的文件。如果您还想在sites-enabled目录中使用服务器块文件,请确保在文件http部分添加以下行nginx.conf。
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
二、安装MariaDB
- sudo apt install mariadb-server mariadb-client
安装完毕后,MariaDB服务器应该自动启动。使用systemctl检查其状态 - systemctl status mysql
如果没有运行,用此命令启动它 - sudo systemctl start mysql
MariaDB自动启动 - sudo systemctl enable mysql
- MariaDB设置
sudo mysql_secure_installation
要求您输入MariaDB root密码时,请按enter键,因为您尚未设置root密码。然后输入y设置MariaDB服务器的根密码
三、安装PHP7和PHP7扩展
sudo apt install php7.0-fpm php7.0-mbstring php7.0-xml php7.0-mysql php7.0-common php7.0-gd php7.0-json php7.0-cli php7.0-curl
- PHP扩展通常内容管理系统(CMS)所需要的,像WordPress。例如,如果您安装缺少php7.0的XML,然后一些你的WordPress网站页面可能为空,你可以找到在Nginx的错误日志中这样的错误:
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function xml_parser_create() - 启动php7.0-FPM
sudo systemctl start php7.0-fpm
- 检查状态
systemctl status php7.0-fpm
sudo systemctl restart php7.0-fpm
重启 - 查看php 运行用户及组
ps -aux | grep php-fpm
- 配置phpfpm
/etc/php/7.0/fpm pool.d中的www.conf unix: /run/php/php7.0-fpm.sock listen = 127.0.0.1:9000
监听9000端口为socket (默认就是socket,也可不配置) - session 目录权限
存储 session 文件的地方,是 session.save_path 配置的,现在它的值是:/var/lib/php/sessions
这个目录一般是在安装 PHP 的时候创建的,目录的拥有者会是 php-fpm,上面我们把运行 PHP-FPM 的用户修改成了 www,所以你需要把这个 session 目录的拥有者也修改成www,这样 PHP-FPM 才能写入 session 文件到这个目录的下面。
执行:chown -R www:www /var/lib/php/sessions
PHP php.ini中配置文件中session.save_path负责session文件的存放位置。 - nginx配置文件加入
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
四、LEMP命令
重启 phpsudo systemctl restart php7.0-fpm
重启 apacheservice apache2 restart
重启nginx/usr/local/nginx/sbin/nginx -s reload