LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
selinux可能会致使编译安装失败,我们先禁用它。永久禁用,需要重启生效
1 | sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config |
临时禁用,不需要重启
1 | setenforce 0 |
添加防火墙规则允许80端口
1 | iptables -I INPUT -p tcp --dport 80 -j ACCEPT |
安装依赖的软件
1 | yum -y install gcc automake autoconf libtool make gcc-c++ glibc libxslt-devel \ |
说明:
pcre`
opensslzlib
是安装
nginx时需要的
cmake是安装
MySQL`时需要的
配置下载地址
1 | cat > /usr/local/src/url << "EOF" |
下载Nginx PHP MySQL
1 | wget -P /usr/local/src -i /usr/local/src/url |
解压
1 | cd /usr/local/src |
安装cmake
1 | cd cmake-2.8.10.2 |
创建mysql安装目录、组、账号,安装mysql
1 | groupadd mysql ; useradd -g mysql -s /sbin/nologin mysql |
开始编译
1 | cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ |
初始化数据库 拷贝配置文件到指定目录
1 | cd /usr/local/mysql/ |
添加启动目录
1 | vim /etc/profile |
按G移动光标到最后一行o插入以下两行
1 | PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH |
更新配置文件
1 | source /etc/profile |
设置开机启动并启动
1 | chkconfig mysqld on |
登陆测试,默认是没有密码,直接回车就可进入
1 | mysql -uroot -p |
设置mysql密码
1 | SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password'); |
查看用户
1 | select user,host from mysql.user; |
删除不必要的用户
1 | drop user ""@localhost; |
赋予账号远程访问的权限
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的密码' WITH GRANT OPTION; |
针对数据库创建一个全部权限的用户
1 | grant all onwordpress.* to 'admin'@'localhost' identified by '123456'; UPDATE user SET password=PASSWORD('123456') WHERE user='root'; |
其它一些信息查询: 检查mysql版本
1 | mysql -uroot -p"密码" -e "select version();" |
安装php
1 | cd /usr/local/src/php-5.6.30 |
编译安装
1 | ./configure \ |
1 | make && make install |
创建用户
1 | groupadd www ; useradd -g www -s /sbin/nologin www |
设置配置文件
1 | cp php.ini-production /usr/local/php/etc/php.ini |
保存配置文件后,检验配置是否正确的方法, 如果出现诸如 test is successful
字样,说明配置没有问题。
1 | /usr/local/php/sbin/php-fpm -t |
添加启动文件,启动php-fpm1
2
3
4cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
service php-fpm start
chkconfig php-fpm on
查看PHP进程是否启动:
1 | ps aux |grep php-fpm |
看看是不是有很多个进程(大概20多个)。
进入nginx目录,准备安装nginx
1 | cd ../nginx-1.8.1 |
开始编译安装
1 | ./configure \ |
1 | make && make install |
因为nginx比较小,所以很快就会安装完,而且也不会出什么错误
编写nginx启动脚本,并加入系统服务
1 | cat > /etc/init.d/nginx <<"EOF" |
保存后,更改权限添加自启动:
1 | chmod 755 /etc/init.d/nginx |
更改nginx配置
首先把原来的配置文件清空: 写入如下内容:
1 | cat > /usr/local/nginx/conf/nginx.conf << "EOF" |
创建站点配置文件夹和默认站点配置文件考虑到安全性,防止盗链默认站点一般指向空或者无访问权限的目录
1
2
3
4
5
6
7
8
9
10
11
12mkdir -p /usr/local/nginx/conf/vhosts
cat > /usr/local/nginx/conf/vhosts/default.conf << "EOF"
server
{
listen 80 default_server;
server_name localhost;
index index.html index.htm index.php;
root /tmp/403;
deny all;
}
EOF
创建测试站点配置文件
1 | mkdir -p /data/www/test |
保存配置后,先检验一下配置文件是否有错误存在:
1 | /usr/local/nginx/sbin/nginx -t |
启动看是否有进程。
1 | service nginx start |
测试是否解析php文件
1 | cat > /data/www/test/2.php << "EOF" |
1 | curl -x127.0.0.1:80 test.com/2.php |