全部博文(103)
分类: LINUX
2016-06-15 17:03:14
Nginx (读”engine x”) 是一款免费、开源的高性能 HTTP 服务。Nginx 稳定、丰富的功能集、配置简单、资源消耗低。本教程介绍了如何通过PHP5.6(通过PHP-FPM)和MySQL5.7(LNMP= LINUX + nginx(发音为“engine x”)+ MySQL5.7+ PHP)以及zabbix3.0在 16.04服务器搭建lnmp环境。
对我这个刚接触ubuntu没多久的小菜鸟搭建这个环境费了不少时间。
希望这个文档可以帮到像我一样的那些伙伴们!
安装 MySQL 运行命令:
apt-get -y install mysql-server mysql-client
你会被要求提供MySQL的root用户密码 :
New password for the MySQL “root” user: <– yourrootsqlpassword
Repeat password for the MySQL “root” user: <– yourrootsqlpassword
为了确保数据库服务器,并删除匿名用户和测试数据库,运行mysql_secure_installation命令。
mysql_secure_installation
你会问这些问题:
root@server1:~# mysql_secure_installation
保护MySQL服务器部署。
Enter password for user root: <– Enter the MySQL root password
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No: <– Press y if you want this function or press Enter otherwise.
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : <– Press enter
… skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : <– 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? (Press y|Y for Yes, any other key for No) : <– y
Success.
By default, MySQL 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? (Press y|Y for Yes, any other key for No) : <– y
– 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? (Press y|Y for Yes, any other key for No) : <– y
Success.
All done!
MySQL is secured now.
mysql初始化完毕后,我们现在来创建zabbix数据库及其用户,使用如下命令:
mysql -uroot -p`zabbix’ -e “create database zabbix default character set utf8 collate utf8_bin;”
mysql -uroot -p`zabbix’ -e “grant all on zabbix.* to ‘zabbix’@’%’ identified by ‘zabbix’;”
现在来测试刚刚创建的zabbix用户,是否可以连接mysql数据库,如下:
mysql -uzabbix -pzabbix
mysql> show databases;
--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| zabbix |
+--------------------+
5 rows in set (0.06 sec)
通过上图,我们可以很明显的看出zabbix用户是可以正常连接数据库的。
在你已经安装了Apache2的话,那么使用这些命令先删除再安装nginx:
service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2
Ubuntu16.04有Nginx安装包,我们可以安装。
apt-get -y install nginx
Start nginx afterwards:
service nginx start
输入您的Web服务器的IP地址或主机名到浏览器(例如),你应该看到如下页面:
在Ubuntu16.04的默认nginx的文档根目录为/var/www/html
我在Ubuntu16.04桌面系统安装php5时,提示Package php5 have no installation candidate,在上面找到了答案。
However if you like you can add a PPA to get those packages anyways:
Add the PPA
打开配置文件 /etc/nginx/nginx.conf:
nano /etc/nginx/nginx.conf
配置是很容易理解 (你可以点击官方教程: 或:)
首先(这是可选)调整keepalive_timeout到一个合理的值:
[...] keepalive_timeout 2; [...]
虚拟主机服务器{}容器定义。默认的虚拟主机是在文件中定义的/etc/nginx/sites-available/default – 让我们来修改它,如下所示:
sudo cat /etc/nginx/sites-available/default | grep -v '#'下面是我的配置:sudo service nginx reload
下一步打开 /etc/php/5.6/fpm/php.ini…
nano /etc/php/5.6/fpm/php.ini
设置 cgi.fix_pathinfo=0:
service php5.6-fpm reload
建立探针文件/var/www/html:
sudo vim /var/www/html/info.php
浏览器访问 (e.g. /info.php):